applied patch from arg. thanks :) - surf - surf browser, a WebKit2GTK based browser
Log
Files
Refs
README
LICENSE
---
commit 25b9ae3ce442f03e7667eeb54efee83fa1368524
parent d2a44361231d7bc576cacf08e74ad8d6584de0e1
Author: Enno Boland (tox) 
Date:   Thu, 17 Sep 2009 01:09:00 +0200

applied patch from arg. thanks :)
Diffstat:
  config.def.h                        |      48 ++++++++++++++++----------------
  surf.c                              |      74 +++++++++++++------------------

2 files changed, 56 insertions(+), 66 deletions(-)
---
diff --git a/config.def.h b/config.def.h
@@ -4,29 +4,29 @@ static gchar *progress_trust = "#00FF00";
 #define MODKEY GDK_CONTROL_MASK
 static Key keys[] = {
     /* modifier                    keyval      function    arg             Focus */
-    { 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|SEARCHBAR },
-    { MODKEY|GDK_SHIFT_MASK,GDK_n,      searchtext, { .b = FALSE }, BROWSER|SEARCHBAR },
-    { 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|SearchBar },
+    { MODKEY|GDK_SHIFT_MASK,GDK_n,      searchtext, { .b = FALSE }, Browser|SearchBar },
+    { 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
@@ -10,7 +10,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -25,7 +24,7 @@ union Arg {
         const gboolean b;
         const gint i;
         const void *v;
-} ;
+};
 
 ttypedef struct Client {
         GtkWidget *win, *scroll, *vbox, *urlbar, *searchbar, *indicator;
@@ -45,10 +44,10 @@ typedef struct Cookie {
 } Cookie;
 
 ttypedef enum {
-    BROWSER = 0x0001,
-    SEARCHBAR = 0x0010,
-    URLBAR = 0x0100,
-    ALWAYS = ~0,
+        Browser = 0x0001,
+        SearchBar = 0x0010,
+        UrlBar = 0x0100,
+        Any = ~0,
 } KeyFocus;
 
 ttypedef struct {
@@ -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);
@@ -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 gchar* title, Client *c);
 static void scroll(Client *c, const Arg *arg);
 static void searchtext(Client *c, const Arg *arg);
 static void source(Client *c, const Arg *arg);
@@ -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].keyval
@@ -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);
@@ -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 LICENSE for details\n");
-                        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]) == 0)
-                        loadfile(c, argv[optind]);
+        c = newclient();
+        if(arg.v) {
+                if(strchr("./", ((char *)arg.v)[0]) || strcmp("-", (char *)arg.v) == 0)
+                        loadfile(c, (char *)arg.v);
                 else
                         loaduri(c, &arg);
-
         }
-        else if(optind != argc)
-                usage();
-        if(!clients)
-                newclient();
-
-
         gtk_main();
         cleanup();
         return EXIT_SUCCESS;