Introduction
Introduction Statistics Contact Development Disclaimer Help
tadding copystr(). - surf - customized build of surf, the suckless webkit brows…
git clone git://src.adamsgaard.dk/surf
Log
Files
Refs
README
LICENSE
---
commit f8c3b223bdcae0cd3bacb279c5daaf690d38bb99
parent 03afc9d985bed1dd77576b28a74c45b0abb4804e
Author: Enno Boland (tox) <[email protected]>
Date: Thu, 10 Sep 2009 08:57:47 +0200
adding copystr().
Diffstat:
M surf.c | 46 ++++++++++++++++++++---------…
1 file changed, 30 insertions(+), 16 deletions(-)
---
diff --git a/surf.c b/surf.c
t@@ -72,6 +72,7 @@ extern gint optind;
static void cleanup(void);
static void clipboard(Client *c, const Arg *arg);
+static gchar *copystr(gchar **str, const gchar *src);
static void destroyclient(Client *c);
static void destroywin(GtkWidget* w, Client *c);
static void die(char *str);
t@@ -111,7 +112,7 @@ static void showurl(Client *c, const Arg *arg);
static void stop(Client *c, const Arg *arg);
static void titlechange(WebKitWebView* view, WebKitWebFrame* frame, const gcha…
static void usage();
-static void update(Client *c, const gchar *title);
+static void update(Client *c);
static void zoom(Client *c, const Arg *arg);
#include "config.h"
t@@ -125,12 +126,25 @@ cleanup(void) {
void
clipboard(Client *c, const Arg *arg) {
gboolean paste = *(gboolean *)arg;
+
if(paste)
gtk_clipboard_request_text(gtk_clipboard_get(GDK_SELECTION_PRI…
else
gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELECTION_PRIMARY…
}
+gchar *
+copystr(gchar **str, const gchar *src) {
+ gchar *tmp;
+ tmp = g_strdup(src);
+
+ if(str && *str) {
+ g_free(*str);
+ *str = tmp;
+ }
+ return tmp;
+}
+
void
destroyclient(Client *c) {
Client *p;
t@@ -199,7 +213,7 @@ download(WebKitDownload *o, GParamSpec *pspec, Client *c) {
if(status == WEBKIT_DOWNLOAD_STATUS_STARTED || status == WEBKIT_DOWNLO…
c->progress = (gint)(webkit_download_get_progress(c->download)…
}
- update(c, NULL);
+ update(c);
}
gboolean
t@@ -223,7 +237,9 @@ initdownload(WebKitWebView *view, WebKitDownload *o, Clien…
g_signal_connect(c->download, "notify::progress", G_CALLBACK(download)…
g_signal_connect(c->download, "notify::status", G_CALLBACK(download), …
webkit_download_start(c->download);
- update(c, filename);
+
+ c->title = copystr(&c->title, filename);
+ update(c);
g_free(html);
return TRUE;
}
t@@ -233,7 +249,7 @@ geturi(Client *c) {
gchar *uri;
if(!(uri = (gchar *)webkit_web_view_get_uri(c->view)))
- uri = g_strdup("about:blank");
+ uri = copystr(NULL, "about:blank");
return uri;
}
t@@ -279,7 +295,7 @@ linkhover(WebKitWebView* page, const gchar* t, const gchar…
if(l)
gtk_window_set_title(GTK_WINDOW(c->win), l);
else
- update(c, NULL);
+ update(c);
}
void
t@@ -296,7 +312,7 @@ loadcommit(WebKitWebView *view, WebKitWebFrame *f, Client …
void
loadstart(WebKitWebView *view, WebKitWebFrame *f, Client *c) {
c->progress = 0;
- update(c, NULL);
+ update(c);
}
void
t@@ -327,7 +343,8 @@ loadfile(Client *c, const gchar *f) {
arg.v = uri = g_strdup_printf("file://%s", f);
loaduri(c, &arg);
}
- update(c, uri);
+ c->title = copystr(&c->title, uri);
+ update(c);
g_free(uri);
}
t@@ -341,8 +358,9 @@ loaduri(Client *c, const Arg *arg) {
: g_strdup_printf("http://%s", uri);
webkit_web_view_load_uri(c->view, u);
c->progress = 0;
- update(c, u);
+ c->title = copystr(&c->title, u);
g_free(u);
+ update(c);
}
void
t@@ -504,7 +522,7 @@ proccookies(SoupMessage *m, Client *c) {
void
progresschange(WebKitWebView* view, gint p, Client *c) {
c->progress = p;
- update(c, NULL);
+ update(c);
}
void
t@@ -604,7 +622,8 @@ stop(Client *c, const Arg *arg) {
void
titlechange(WebKitWebView *v, WebKitWebFrame *f, const gchar *t, Client *c) {
- update(c, t);
+ c->title = copystr(&c->title, t);
+ update(c);
}
void
t@@ -614,14 +633,9 @@ usage() {
}
void
-update(Client *c, const char *title) {
+update(Client *c) {
gchar *t;
- if(title) {
- if(c->title)
- g_free(c->title);
- c->title = g_strdup(title);
- }
if(c->progress == 100)
t = g_strdup(c->title);
else
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.