sorting functions alphabetical.

This commit is contained in:
Enno Boland (tox) 2009-10-28 20:43:30 +01:00
parent 9d4953691d
commit ae42cfde8f

206
surf.c
View file

@ -72,6 +72,7 @@ static void cleanup(void);
static void clipboard(Client *c, const Arg *arg); static void clipboard(Client *c, const Arg *arg);
static void context(WebKitWebView *v, GtkMenu *m, Client *c); static void context(WebKitWebView *v, GtkMenu *m, Client *c);
static char *copystr(char **str, const char *src); static char *copystr(char **str, const char *src);
static WebKitWebView *createwindow(WebKitWebView *v, WebKitWebFrame *f, Client *c);
static gboolean decidedownload(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, gchar *m, WebKitWebPolicyDecision *p, Client *c); static gboolean decidedownload(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, gchar *m, WebKitWebPolicyDecision *p, Client *c);
static gboolean decidewindow(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, WebKitWebNavigationAction *n, WebKitWebPolicyDecision *p, Client *c); static gboolean decidewindow(WebKitWebView *v, WebKitWebFrame *f, WebKitNetworkRequest *r, WebKitWebNavigationAction *n, WebKitWebPolicyDecision *p, Client *c);
static void destroyclient(Client *c); static void destroyclient(Client *c);
@ -80,8 +81,9 @@ static void die(char *str);
static void download(Client *c, const Arg *arg); static void download(Client *c, const Arg *arg);
static void drawindicator(Client *c); static void drawindicator(Client *c);
static gboolean exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c); static gboolean exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c);
static char *geturi(Client *c); static void find(Client *c, const Arg *arg);
static const char *getatom(Client *c, Atom a); static const char *getatom(Client *c, Atom a);
static char *geturi(Client *c);
static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c); static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c);
static void itemclick(GtkMenuItem *mi, Client *c); static void itemclick(GtkMenuItem *mi, Client *c);
static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c); static gboolean keypress(GtkWidget *w, GdkEventKey *ev, Client *c);
@ -92,27 +94,25 @@ static void loaduri(Client *c, const Arg *arg);
static void navigate(Client *c, const Arg *arg); static void navigate(Client *c, const Arg *arg);
static Client *newclient(void); static Client *newclient(void);
static void newwindow(Client *c, const Arg *arg); static void newwindow(Client *c, const Arg *arg);
static WebKitWebView *createwindow(WebKitWebView *v, WebKitWebFrame *f, Client *c);
static void pasteuri(GtkClipboard *clipboard, const char *text, gpointer d); static void pasteuri(GtkClipboard *clipboard, const char *text, gpointer d);
static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer d);
static void print(Client *c, const Arg *arg); static void print(Client *c, const Arg *arg);
static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer d);
static void progresschange(WebKitWebView *v, gint p, Client *c); static void progresschange(WebKitWebView *v, gint p, Client *c);
static void reloadcookies();
static void reload(Client *c, const Arg *arg); static void reload(Client *c, const Arg *arg);
static void reloadcookies();
static void resize(GtkWidget *w, GtkAllocation *a, Client *c); static void resize(GtkWidget *w, GtkAllocation *a, Client *c);
static void sigchld(int unused); static void scroll(Client *c, const Arg *arg);
static void setatom(Client *c, Atom a, const char *v); static void setatom(Client *c, Atom a, const char *v);
static void setup(void); static void setup(void);
static void spawn(Client *c, const Arg *arg); static void sigchld(int unused);
static void scroll(Client *c, const Arg *arg);
static void find(Client *c, const Arg *arg);
static void source(Client *c, const Arg *arg); static void source(Client *c, const Arg *arg);
static void spawn(Client *c, const Arg *arg);
static void stop(Client *c, const Arg *arg); static void stop(Client *c, const Arg *arg);
static void titlechange(WebKitWebView *v, WebKitWebFrame* frame, const char* title, Client *c); static void titlechange(WebKitWebView *v, WebKitWebFrame* frame, const char* title, Client *c);
static void usage(void);
static void update(Client *c); static void update(Client *c);
static void updatedownload(WebKitDownload *o, GParamSpec *pspec, Client *c); static void updatedownload(WebKitDownload *o, GParamSpec *pspec, Client *c);
static void updatewinid(Client *c); static void updatewinid(Client *c);
static void usage(void);
static void windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c); static void windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c);
static void zoom(Client *c, const Arg *arg); static void zoom(Client *c, const Arg *arg);
@ -209,28 +209,10 @@ copystr(char **str, const char *src) {
return tmp; return tmp;
} }
void WebKitWebView *
destroyclient(Client *c) { createwindow(WebKitWebView *v, WebKitWebFrame *f, Client *c) {
int i; Client *n = newclient();
Client *p; return n->view;
gtk_widget_destroy(c->indicator);
gtk_widget_destroy(GTK_WIDGET(c->view));
gtk_widget_destroy(c->scroll);
gtk_widget_destroy(c->vbox);
gtk_widget_destroy(c->win);
for(i = 0; i < LENGTH(items); i++)
gtk_widget_destroy(c->items[i]);
free(c->items);
for(p = clients; p && p->next != c; p = p->next);
if(p)
p->next = c->next;
else
clients = c->next;
free(c);
if(clients == NULL)
gtk_main_quit();
} }
gboolean gboolean
@ -255,6 +237,30 @@ decidewindow(WebKitWebView *view, WebKitWebFrame *f, WebKitNetworkRequest *r, We
return FALSE; return FALSE;
} }
void
destroyclient(Client *c) {
int i;
Client *p;
gtk_widget_destroy(c->indicator);
gtk_widget_destroy(GTK_WIDGET(c->view));
gtk_widget_destroy(c->scroll);
gtk_widget_destroy(c->vbox);
gtk_widget_destroy(c->win);
for(i = 0; i < LENGTH(items); i++)
gtk_widget_destroy(c->items[i]);
free(c->items);
for(p = clients; p && p->next != c; p = p->next);
if(p)
p->next = c->next;
else
clients = c->next;
free(c);
if(clients == NULL)
gtk_main_quit();
}
void void
destroywin(GtkWidget* w, Client *c) { destroywin(GtkWidget* w, Client *c) {
destroyclient(c); destroyclient(c);
@ -266,6 +272,21 @@ die(char *str) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
void
download(Client *c, const Arg *arg) {
char *uri;
WebKitNetworkRequest *r;
WebKitDownload *dl;
if(arg->v)
uri = (char *)arg->v;
else
uri = c->linkhover ? c->linkhover : geturi(c);
r = webkit_network_request_new(uri);
dl = webkit_download_new(r);
initdownload(c->view, dl, c);
}
void void
drawindicator(Client *c) { drawindicator(Client *c) {
gint width; gint width;
@ -296,18 +317,12 @@ exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c) {
} }
void void
download(Client *c, const Arg *arg) { find(Client *c, const Arg *arg) {
char *uri; const char *s;
WebKitNetworkRequest *r;
WebKitDownload *dl;
if(arg->v) s = getatom(c, findprop);
uri = (char *)arg->v; gboolean forward = *(gboolean *)arg;
else webkit_web_view_search_text(c->view, s, FALSE, forward, TRUE);
uri = c->linkhover ? c->linkhover : geturi(c);
r = webkit_network_request_new(uri);
dl = webkit_download_new(r);
initdownload(c->view, dl, c);
} }
const char * const char *
@ -329,6 +344,15 @@ getatom(Client *c, Atom a) {
return buf; return buf;
} }
char *
geturi(Client *c) {
char *uri;
if(!(uri = (char *)webkit_web_view_get_uri(c->view)))
uri = "about:blank";
return uri;
}
gboolean gboolean
initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) { initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) {
const char *filename; const char *filename;
@ -356,15 +380,6 @@ initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) {
return TRUE; return TRUE;
} }
char *
geturi(Client *c) {
char *uri;
if(!(uri = (char *)webkit_web_view_get_uri(c->view)))
uri = "about:blank";
return uri;
}
void void
itemclick(GtkMenuItem *mi, Client *c) { itemclick(GtkMenuItem *mi, Client *c) {
int i; int i;
@ -559,12 +574,6 @@ newwindow(Client *c, const Arg *arg) {
spawn(NULL, &a); spawn(NULL, &a);
} }
WebKitWebView *
createwindow(WebKitWebView *v, WebKitWebFrame *f, Client *c) {
Client *n = newclient();
return n->view;
}
void void
pasteuri(GtkClipboard *clipboard, const char *text, gpointer d) { pasteuri(GtkClipboard *clipboard, const char *text, gpointer d) {
Arg arg = {.v = text }; Arg arg = {.v = text };
@ -572,6 +581,11 @@ pasteuri(GtkClipboard *clipboard, const char *text, gpointer d) {
loaduri((Client *) d, &arg); loaduri((Client *) d, &arg);
} }
void
print(Client *c, const Arg *arg) {
webkit_web_frame_print(webkit_web_view_get_main_frame(c->view));
}
GdkFilterReturn GdkFilterReturn
processx(GdkXEvent *e, GdkEvent *event, gpointer d) { processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
Client *c = (Client *)d; Client *c = (Client *)d;
@ -597,11 +611,6 @@ processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
return GDK_FILTER_CONTINUE; return GDK_FILTER_CONTINUE;
} }
void
print(Client *c, const Arg *arg) {
webkit_web_frame_print(webkit_web_view_get_main_frame(c->view));
}
void void
progresschange(WebKitWebView *v, gint p, Client *c) { progresschange(WebKitWebView *v, gint p, Client *c) {
c->progress = p; c->progress = p;
@ -634,19 +643,6 @@ reloadcookies() {
g_object_unref(jar); g_object_unref(jar);
} }
void
scroll(Client *c, const Arg *arg) {
gdouble v;
GtkAdjustment *a;
a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll));
v = gtk_adjustment_get_value(a);
v += gtk_adjustment_get_step_increment(a) * arg->i;
v = MAX(v, 0.0);
v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a));
gtk_adjustment_set_value(a, v);
}
void void
resize(GtkWidget *w, GtkAllocation *a, Client *c) { resize(GtkWidget *w, GtkAllocation *a, Client *c) {
double zoom; double zoom;
@ -661,10 +657,16 @@ resize(GtkWidget *w, GtkAllocation *a, Client *c) {
} }
void void
sigchld(int unused) { scroll(Client *c, const Arg *arg) {
if(signal(SIGCHLD, sigchld) == SIG_ERR) gdouble v;
die("Can't install SIGCHLD handler"); GtkAdjustment *a;
while(0 < waitpid(-1, NULL, WNOHANG));
a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll));
v = gtk_adjustment_get_value(a);
v += gtk_adjustment_get_step_increment(a) * arg->i;
v = MAX(v, 0.0);
v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a));
gtk_adjustment_set_value(a, v);
} }
void void
@ -705,6 +707,13 @@ setup(void) {
reloadcookies(); reloadcookies();
} }
void
sigchld(int unused) {
if(signal(SIGCHLD, sigchld) == SIG_ERR)
die("Can't install SIGCHLD handler");
while(0 < waitpid(-1, NULL, WNOHANG));
}
void void
source(Client *c, const Arg *arg) { source(Client *c, const Arg *arg) {
Arg a = { .b = FALSE }; Arg a = { .b = FALSE };
@ -715,24 +724,6 @@ source(Client *c, const Arg *arg) {
reload(c, &a); reload(c, &a);
} }
void
find(Client *c, const Arg *arg) {
const char *s;
s = getatom(c, findprop);
gboolean forward = *(gboolean *)arg;
webkit_web_view_search_text(c->view, s, FALSE, forward, TRUE);
}
void
stop(Client *c, const Arg *arg) {
if(c->download)
webkit_download_cancel(c->download);
else
webkit_web_view_stop_loading(c->view);
c->download = NULL;
}
void void
spawn(Client *c, const Arg *arg) { spawn(Client *c, const Arg *arg) {
if(fork() == 0) { if(fork() == 0) {
@ -747,15 +738,18 @@ spawn(Client *c, const Arg *arg) {
} }
void void
titlechange(WebKitWebView *v, WebKitWebFrame *f, const char *t, Client *c) { stop(Client *c, const Arg *arg) {
c->title = copystr(&c->title, t); if(c->download)
update(c); webkit_download_cancel(c->download);
else
webkit_web_view_stop_loading(c->view);
c->download = NULL;
} }
void void
usage(void) { titlechange(WebKitWebView *v, WebKitWebFrame *f, const char *t, Client *c) {
fputs("surf - simple browser\n", stderr); c->title = copystr(&c->title, t);
die("usage: surf [-e Window] [-x] [uri]\n"); update(c);
} }
void void
@ -790,6 +784,12 @@ updatewinid(Client *c) {
(int)GDK_WINDOW_XID(GTK_WIDGET(c->win)->window)); (int)GDK_WINDOW_XID(GTK_WIDGET(c->win)->window));
} }
void
usage(void) {
fputs("surf - simple browser\n", stderr);
die("usage: surf [-e Window] [-x] [uri]\n");
}
void void
windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c) { windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSObjectRef win, Client *c) {
JSStringRef jsscript; JSStringRef jsscript;