Introduction
Introduction Statistics Contact Development Disclaimer Help
tgetting rid or most gpointers, sorting functions alphabetical, using gchar * w…
git clone git://src.adamsgaard.dk/surf
Log
Files
Refs
README
LICENSE
---
commit a122748ae79d46b841c221669cf6a33cb6641b30
parent 1a88579f3e35869b6736e195755fb127a1aeda78
Author: Enno Boland (Gottox) <[email protected]>
Date: Tue, 9 Jun 2009 10:29:47 +0200
getting rid or most gpointers, sorting functions alphabetical, using gchar * wh…
Diffstat:
M surf.c | 120 ++++++++++++++---------------…
1 file changed, 55 insertions(+), 65 deletions(-)
---
diff --git a/surf.c b/surf.c
t@@ -38,28 +38,28 @@ extern int optind;
static void cleanup(void);
static void destroyclient(Client *c);
-static void destroywin(GtkWidget* w, gpointer d);
+static void destroywin(GtkWidget* w, Client *c);
static void die(char *str);
-static void download(WebKitDownload *o, GParamSpec *pspec, gpointer d);
-static gboolean initdownload(WebKitWebView *view, WebKitDownload *o, gpointer …
+static void download(WebKitDownload *o, GParamSpec *pspec, Client *c);
+static gboolean initdownload(WebKitWebView *view, WebKitDownload *o, Client *c…
static gchar *geturi(Client *c);
static void hidesearch(Client *c);
static void hideurl(Client *c);
-static gboolean keypress(GtkWidget* w, GdkEventKey *ev, gpointer d);
-static void linkhover(WebKitWebView* page, const gchar* t, const gchar* l, gpo…
-static void loadcommit(WebKitWebView *view, WebKitWebFrame *f, gpointer d);
-static void loadstart(WebKitWebView *view, WebKitWebFrame *f, gpointer d);
+static gboolean keypress(GtkWidget* w, GdkEventKey *ev, Client *c);
+static void linkhover(WebKitWebView* page, const gchar* t, const gchar* l, Cli…
+static void loadcommit(WebKitWebView *view, WebKitWebFrame *f, Client *c);
+static void loadstart(WebKitWebView *view, WebKitWebFrame *f, Client *c);
static void loadfile(Client *c, const gchar *f);
static void loaduri(Client *c, const gchar *uri);
static Client *newclient();
-static WebKitWebView *newwindow(WebKitWebView *v, WebKitWebFrame *f, gpointer…
-static void progresschange(WebKitWebView *view, gint p, gpointer d);
-static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer d…
+static WebKitWebView *newwindow(WebKitWebView *v, WebKitWebFrame *f, Client *…
+static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer d…
+static void progresschange(WebKitWebView *view, gint p, Client *c);
static void setup(void);
static void showsearch(Client *c);
static void showurl(Client *c);
static void stop(Client *c);
-static void titlechange(WebKitWebView* view, WebKitWebFrame* frame, const gcha…
+static void titlechange(WebKitWebView* view, WebKitWebFrame* frame, const gcha…
static void usage();
static void updatetitle(Client *c, const gchar *title);
t@@ -90,9 +90,7 @@ destroyclient(Client *c) {
}
void
-destroywin(GtkWidget* w, gpointer d) {
- Client *c = (Client *)d;
-
+destroywin(GtkWidget* w, Client *c) {
destroyclient(c);
}
t@@ -103,8 +101,7 @@ die(char *str) {
}
void
-download(WebKitDownload *o, GParamSpec *pspec, gpointer d) {
- Client *c = (Client *) d;
+download(WebKitDownload *o, GParamSpec *pspec, Client *c) {
WebKitDownloadStatus status;
status = webkit_download_get_status(c->download);
t@@ -118,11 +115,9 @@ download(WebKitDownload *o, GParamSpec *pspec, gpointer d…
}
gboolean
-initdownload(WebKitWebView *view, WebKitDownload *o, gpointer d) {
- Client *c = (Client *) d;
+initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) {
const gchar *home, *filename;
- gchar *uri, *path;
- GString *html = g_string_new("");
+ gchar *uri, *path, *html;
stop(c);
c->download = o;
t@@ -134,15 +129,14 @@ initdownload(WebKitWebView *view, WebKitDownload *o, gpo…
webkit_download_set_destination_uri(c->download, uri);
c->progress = 0;
g_free(uri);
- html = g_string_append(html, "Downloading <b>");
- html = g_string_append(html, filename);
- html = g_string_append(html, "</b>...");
- webkit_web_view_load_html_string(c->view, html->str,
+ html = g_strdup_printf("Download <b>%s</b>...", filename);
+ webkit_web_view_load_html_string(c->view, html,
webkit_download_get_uri(c->download));
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);
updatetitle(c, filename);
+ g_free(html);
return TRUE;
}
t@@ -168,9 +162,7 @@ hideurl(Client *c) {
}
gboolean
-keypress(GtkWidget* w, GdkEventKey *ev, gpointer d) {
- Client *c = (Client *)d;
-
+keypress(GtkWidget* w, GdkEventKey *ev, Client *c) {
if(ev->type != GDK_KEY_PRESS)
return FALSE;
if(GTK_WIDGET_HAS_FOCUS(c->searchbar)) {
t@@ -258,9 +250,7 @@ keypress(GtkWidget* w, GdkEventKey *ev, gpointer d) {
}
void
-linkhover(WebKitWebView* page, const gchar* t, const gchar* l, gpointer d) {
- Client *c = (Client *)d;
-
+linkhover(WebKitWebView* page, const gchar* t, const gchar* l, Client *c) {
if(l)
gtk_window_set_title(GTK_WINDOW(c->win), l);
else
t@@ -268,8 +258,7 @@ linkhover(WebKitWebView* page, const gchar* t, const gchar…
}
void
-loadcommit(WebKitWebView *view, WebKitWebFrame *f, gpointer d) {
- Client *c = (Client *)d;
+loadcommit(WebKitWebView *view, WebKitWebFrame *f, Client *c) {
gchar *uri;
ignore_once = TRUE;
t@@ -280,24 +269,24 @@ loadcommit(WebKitWebView *view, WebKitWebFrame *f, gpoin…
}
void
-loadstart(WebKitWebView *view, WebKitWebFrame *f, gpointer d) {
- Client *c = (Client *)d;
-
+loadstart(WebKitWebView *view, WebKitWebFrame *f, Client *c) {
if(c->download)
stop(c);
+ c->progress = 0;
+ updatetitle(c, NULL);
}
void
loadfile(Client *c, const gchar *f) {
GIOChannel *chan = NULL;
GError *e = NULL;
- GString *code = g_string_new("");
- GString *uri = g_string_new(f);
- gchar *line;
+ GString *code;
+ gchar *line, *uri;
if(strcmp(f, "-") == 0) {
chan = g_io_channel_unix_new(STDIN_FILENO);
if (chan) {
+ code = g_string_new("");
while(g_io_channel_read_line(chan, &line, NULL, NULL,
&e) == G_IO_STATUS_NORMAL) {
g_string_append(code, line);
t@@ -306,24 +295,27 @@ loadfile(Client *c, const gchar *f) {
webkit_web_view_load_html_string(c->view, code->str,
"file://.");
g_io_channel_shutdown(chan, FALSE, NULL);
+ g_string_free(code, TRUE);
}
+ uri = g_strdup("stdin");
}
else {
- g_string_prepend(uri, "file://");
- loaduri(c, uri->str);
+ uri = g_strdup_printf("file://%s", f);
+ loaduri(c, uri);
}
- updatetitle(c, uri->str);
+ updatetitle(c, uri);
+ g_free(uri);
}
void
loaduri(Client *c, const gchar *uri) {
- GString* u = g_string_new(uri);
- if(g_strrstr(u->str, ":") == NULL)
- g_string_prepend(u, "http://");
- webkit_web_view_load_uri(c->view, u->str);
+ gchar *u;
+ u = g_strrstr(uri, ":") ? g_strdup(uri)
+ : g_strdup_printf("http://%s", uri);
+ webkit_web_view_load_uri(c->view, u);
c->progress = 0;
- updatetitle(c, u->str);
- g_string_free(u, TRUE);
+ updatetitle(c, u);
+ g_free(u);
}
Client *
t@@ -402,23 +394,15 @@ newclient(void) {
}
WebKitWebView *
-newwindow(WebKitWebView *v, WebKitWebFrame *f, gpointer d) {
- Client *c = newclient();
- return c->view;
-}
-
-void
-progresschange(WebKitWebView* view, gint p, gpointer d) {
- Client *c = (Client *)d;
-
- c->progress = p;
- updatetitle(c, NULL);
+newwindow(WebKitWebView *v, WebKitWebFrame *f, Client *c) {
+ Client *n = newclient();
+ return n->view;
}
GdkFilterReturn
processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
- XPropertyEvent *ev;
Client *c = (Client *)d;
+ XPropertyEvent *ev;
Atom adummy;
int idummy;
unsigned long ldummy;
t@@ -440,6 +424,12 @@ processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
return GDK_FILTER_CONTINUE;
}
+void
+progresschange(WebKitWebView* view, gint p, Client *c) {
+ c->progress = p;
+ updatetitle(c, NULL);
+}
+
void setup(void) {
dpy = GDK_DISPLAY();
urlprop = XInternAtom(dpy, "_SURF_URL", False);
t@@ -473,9 +463,7 @@ stop(Client *c) {
}
void
-titlechange(WebKitWebView *v, WebKitWebFrame *f, const gchar *t, gpointer d) {
- Client *c = (Client *)d;
-
+titlechange(WebKitWebView *v, WebKitWebFrame *f, const gchar *t, Client *c) {
updatetitle(c, t);
}
t@@ -487,7 +475,7 @@ usage() {
void
updatetitle(Client *c, const char *title) {
- char t[512];
+ gchar *t;
if(title) {
if(c->title)
t@@ -495,10 +483,12 @@ updatetitle(Client *c, const char *title) {
c->title = g_strdup(title);
}
if(c->progress == 100)
- snprintf(t, LENGTH(t), "%s", c->title);
+ t = g_strdup(c->title);
else
- snprintf(t, LENGTH(t), "%s [%i%%]", c->title, c->progress);
+ t = g_strdup_printf("%s [%i%%]", c->title, c->progress);
gtk_window_set_title(GTK_WINDOW(c->win), t);
+ g_free(t);
+
}
int main(int argc, char *argv[]) {
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.