| tapplied patch from arg. thanks :) - surf - customized build of surf, the suckl… | |
| git clone git://src.adamsgaard.dk/surf | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit 25b9ae3ce442f03e7667eeb54efee83fa1368524 | |
| parent d2a44361231d7bc576cacf08e74ad8d6584de0e1 | |
| Author: Enno Boland (tox) <[email protected]> | |
| Date: Thu, 17 Sep 2009 01:09:00 +0200 | |
| applied patch from arg. thanks :) | |
| Diffstat: | |
| M config.def.h | 48 ++++++++++++++++-------------… | |
| M surf.c | 74 +++++++++++++----------------… | |
| 2 files changed, 56 insertions(+), 66 deletions(-) | |
| --- | |
| diff --git a/config.def.h b/config.def.h | |
| t@@ -4,29 +4,29 @@ static gchar *progress_trust = "#00FF00"; | |
| #define MODKEY GDK_CONTROL_MASK | |
| static Key keys[] = { | |
| /* modifier keyval function arg Foc… | |
| - { MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE }, ALWAYS }, | |
| - { MODKEY, GDK_r, reload, { .b = FALSE }, ALWAYS }, | |
| - { MODKEY, GDK_g, showurl, { 0 }, ALWAYS }, | |
| - { MODKEY, GDK_slash, showsearch, { 0 }, ALWAYS }, | |
| - { 0, GDK_Escape, hidesearch, { 0 }, ALWAYS }, | |
| - { 0, GDK_Escape, hideurl, { 0 }, ALWAYS }, | |
| - { MODKEY|GDK_SHIFT_MASK,GDK_p, print, { 0 }, ALWAYS }, | |
| - { MODKEY, GDK_p, clipboard, { .b = TRUE }, BROWSER }, | |
| - { MODKEY, GDK_y, clipboard, { .b = FALSE }, BROWSER }, | |
| - { MODKEY|GDK_SHIFT_MASK,GDK_j, zoom, { .i = -1 }, BROWSER }, | |
| - { MODKEY|GDK_SHIFT_MASK,GDK_k, zoom, { .i = +1 }, BROWSER }, | |
| - { MODKEY|GDK_SHIFT_MASK,GDK_i, zoom, { .i = 0 }, BROWSER }, | |
| - { MODKEY, GDK_l, navigate, { .i = +1 }, BROWSER }, | |
| - { MODKEY, GDK_h, navigate, { .i = -1 }, BROWSER }, | |
| - { MODKEY, GDK_j, scroll, { .i = +1 }, BROWSER }, | |
| - { MODKEY, GDK_k, scroll, { .i = -1 }, BROWSER }, | |
| - { 0, GDK_Escape, stop, { 0 }, BROWSER }, | |
| - { MODKEY, GDK_o, source, { 0 }, BROWSER }, | |
| - { MODKEY, GDK_n, searchtext, { .b = TRUE }, BROWSER|SE… | |
| - { MODKEY|GDK_SHIFT_MASK,GDK_n, searchtext, { .b = FALSE }, BROWSER|SE… | |
| - { 0, GDK_Return, searchtext, { .b = TRUE }, SEARCHBAR … | |
| - { GDK_SHIFT_MASK, GDK_Return, searchtext, { .b = FALSE }, SEARCHBAR … | |
| - { 0, GDK_Return, loaduri, { .v = NULL }, URLBAR }, | |
| - { 0, GDK_Return, hideurl, { 0 }, URLBAR }, | |
| + { MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE }, Any }, | |
| + { MODKEY, GDK_r, reload, { .b = FALSE }, Any }, | |
| + { MODKEY, GDK_g, showurl, { 0 }, Any }, | |
| + { MODKEY, GDK_slash, showsearch, { 0 }, Any }, | |
| + { 0, GDK_Escape, hidesearch, { 0 }, Any }, | |
| + { 0, GDK_Escape, hideurl, { 0 }, Any }, | |
| + { MODKEY|GDK_SHIFT_MASK,GDK_p, print, { 0 }, Any }, | |
| + { MODKEY, GDK_p, clipboard, { .b = TRUE }, Browser }, | |
| + { MODKEY, GDK_y, clipboard, { .b = FALSE }, Browser }, | |
| + { MODKEY|GDK_SHIFT_MASK,GDK_j, zoom, { .i = -1 }, Browser }, | |
| + { MODKEY|GDK_SHIFT_MASK,GDK_k, zoom, { .i = +1 }, Browser }, | |
| + { MODKEY|GDK_SHIFT_MASK,GDK_i, zoom, { .i = 0 }, Browser }, | |
| + { MODKEY, GDK_l, navigate, { .i = +1 }, Browser }, | |
| + { MODKEY, GDK_h, navigate, { .i = -1 }, Browser }, | |
| + { MODKEY, GDK_j, scroll, { .i = +1 }, Browser }, | |
| + { MODKEY, GDK_k, scroll, { .i = -1 }, Browser }, | |
| + { 0, GDK_Escape, stop, { 0 }, Browser }, | |
| + { MODKEY, GDK_o, source, { 0 }, Browser }, | |
| + { MODKEY, GDK_n, searchtext, { .b = TRUE }, Browser|Se… | |
| + { MODKEY|GDK_SHIFT_MASK,GDK_n, searchtext, { .b = FALSE }, Browser|Se… | |
| + { 0, GDK_Return, searchtext, { .b = TRUE }, SearchBar … | |
| + { GDK_SHIFT_MASK, GDK_Return, searchtext, { .b = FALSE }, SearchBar … | |
| + { 0, GDK_Return, loaduri, { .v = NULL }, UrlBar }, | |
| + { 0, GDK_Return, hideurl, { 0 }, UrlBar }, | |
| }; | |
| diff --git a/surf.c b/surf.c | |
| t@@ -10,7 +10,6 @@ | |
| #include <gdk/gdkkeysyms.h> | |
| #include <string.h> | |
| #include <unistd.h> | |
| -#include <getopt.h> | |
| #include <stdlib.h> | |
| #include <stdio.h> | |
| #include <webkit/webkit.h> | |
| t@@ -25,7 +24,7 @@ union Arg { | |
| const gboolean b; | |
| const gint i; | |
| const void *v; | |
| -} ; | |
| +}; | |
| typedef struct Client { | |
| GtkWidget *win, *scroll, *vbox, *urlbar, *searchbar, *indicator; | |
| t@@ -45,10 +44,10 @@ typedef struct Cookie { | |
| } Cookie; | |
| typedef enum { | |
| - BROWSER = 0x0001, | |
| - SEARCHBAR = 0x0010, | |
| - URLBAR = 0x0100, | |
| - ALWAYS = ~0, | |
| + Browser = 0x0001, | |
| + SearchBar = 0x0010, | |
| + UrlBar = 0x0100, | |
| + Any = ~0, | |
| } KeyFocus; | |
| typedef struct { | |
| t@@ -69,8 +68,6 @@ static GdkNativeWindow embed = 0; | |
| static gboolean showxid = FALSE; | |
| static gboolean ignore_once = FALSE; | |
| static gchar *workdir; | |
| -extern char *optarg; | |
| -extern gint optind; | |
| static void cleanup(void); | |
| static void clipboard(Client *c, const Arg *arg); | |
| t@@ -104,8 +101,7 @@ static void reload(Client *c, const Arg *arg); | |
| static void rereadcookies(void); | |
| static void setcookie(char *name, char *val, char *dom, char *path, long exp); | |
| static void setup(void); | |
| -static void titlechange(WebKitWebView* view, WebKitWebFrame* frame, | |
| - const gchar* title, Client *c); | |
| +static void titlechange(WebKitWebView* view, WebKitWebFrame* frame, const gcha… | |
| static void scroll(Client *c, const Arg *arg); | |
| static void searchtext(Client *c, const Arg *arg); | |
| static void source(Client *c, const Arg *arg); | |
| t@@ -277,11 +273,11 @@ keypress(GtkWidget* w, GdkEventKey *ev, Client *c) { | |
| if(ev->type != GDK_KEY_PRESS) | |
| return FALSE; | |
| if(GTK_WIDGET_HAS_FOCUS(c->searchbar)) | |
| - focus = SEARCHBAR; | |
| + focus = SearchBar; | |
| else if(GTK_WIDGET_HAS_FOCUS(c->urlbar)) | |
| - focus = URLBAR; | |
| + focus = UrlBar; | |
| else | |
| - focus = BROWSER; | |
| + focus = Browser; | |
| for(i = 0; i < LENGTH(keys); i++) { | |
| if(focus & keys[i].focus | |
| && gdk_keyval_to_lower(ev->keyval) == keys[i].… | |
| t@@ -585,6 +581,10 @@ setup(void) { | |
| SoupSession *s; | |
| FILE *tmp; | |
| + gtk_init(NULL, NULL); | |
| + if (!g_thread_supported()) | |
| + g_thread_init(NULL); | |
| + | |
| dpy = GDK_DISPLAY(); | |
| session = webkit_get_default_session(); | |
| urlprop = XInternAtom(dpy, "_SURF_URL", False); | |
| t@@ -719,45 +719,35 @@ zoom(Client *c, const Arg *arg) { | |
| } | |
| int main(int argc, char *argv[]) { | |
| - Client *c; | |
| - gint o, a; | |
| + int i; | |
| Arg arg; | |
| + Client *c; | |
| - gtk_init(NULL, NULL); | |
| - if (!g_thread_supported()) | |
| - g_thread_init(NULL); | |
| - while((o = getopt(argc, argv, "vhxe:")) != -1) | |
| - switch(o) { | |
| - case 'x': | |
| + /* command line args */ | |
| + for(i = 1, arg.v = NULL; i < argc; i++) { | |
| + if(!strcmp(argv[i], "-x")) | |
| showxid = TRUE; | |
| - break; | |
| - case 'e': | |
| - if(!(a = atoi(optarg))) | |
| + else if(!strcmp(argv[i], "-e")) { | |
| + if(++i < argc) | |
| + embed = atoi(argv[i]); | |
| + else | |
| usage(); | |
| - embed = a; | |
| - break; | |
| - case 'v': | |
| + } | |
| + else if(!strcmp(argv[i], "-v")) | |
| die("surf-"VERSION", © 2009 surf engineers, see LICEN… | |
| - break; | |
| - default: | |
| + else if(argv[i][0] == '-') | |
| usage(); | |
| - } | |
| + else | |
| + arg.v = argv[i]; | |
| + } | |
| setup(); | |
| - if(optind + 1 == argc) { | |
| - c = newclient(); | |
| - arg.v = argv[optind]; | |
| - if(strchr("./", argv[optind][0]) || strcmp("-", argv[optind]) … | |
| - loadfile(c, argv[optind]); | |
| + c = newclient(); | |
| + if(arg.v) { | |
| + if(strchr("./", ((char *)arg.v)[0]) || strcmp("-", (char *)arg… | |
| + loadfile(c, (char *)arg.v); | |
| else | |
| loaduri(c, &arg); | |
| - | |
| } | |
| - else if(optind != argc) | |
| - usage(); | |
| - if(!clients) | |
| - newclient(); | |
| - | |
| - | |
| gtk_main(); | |
| cleanup(); | |
| return EXIT_SUCCESS; |