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; |