iAdd a way to toggle proxy usage while running. - surf - Surf web browser. Err gopher.r-36.net 70 i Err gopher.r-36.net 70 1Log /scm/surf//log.gph gopher.r-36.net 70 1Files /scm/surf//files.gph gopher.r-36.net 70 1Refs /scm/surf//refs.gph gopher.r-36.net 70 1README /scm/surf//file/README.gph gopher.r-36.net 70 1LICENSE /scm/surf//file/LICENSE.gph gopher.r-36.net 70 i--- Err gopher.r-36.net 70 1commit 993c62a6f9f3bd27c65034478313955ccbf93d4d /scm/surf//commit/993c62a6f9f3bd27c65034478313955ccbf93d4d.gph gopher.r-36.net 70 1parent 6c8da4c851b85c6167f3104158089d9a4fe11ca7 /scm/surf//commit/6c8da4c851b85c6167f3104158089d9a4fe11ca7.gph gopher.r-36.net 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net gopher.r-36.net 70 iDate: Sun, 5 Feb 2017 08:57:22 +0100 Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iAdd a way to toggle proxy usage while running. Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iDiffstat: Err gopher.r-36.net 70 i config.def.h | 2 ++ Err gopher.r-36.net 70 i surf.1 | 3 +++ Err gopher.r-36.net 70 i surf.c | 38 ++++++++++++++++++++++++++++++- Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i3 files changed, 42 insertions(+), 1 deletion(-) Err gopher.r-36.net 70 i--- Err gopher.r-36.net 70 1diff --git a/config.def.h b/config.def.h /scm/surf//file/config.def.h.gph gopher.r-36.net 70 i@@ -127,6 +127,7 @@ static Key keys[] = { Err gopher.r-36.net 70 i { MODKEY|GDK_SHIFT_MASK,GDK_m, togglestyle, { 0 } }, Err gopher.r-36.net 70 i { MODKEY|GDK_SHIFT_MASK,GDK_b, togglescrollbars, { 0 } }, Err gopher.r-36.net 70 i { MODKEY|GDK_SHIFT_MASK,GDK_g, togglegeolocation, { 0 } }, Err gopher.r-36.net 70 i+ { MODKEY|GDK_SHIFT_MASK,GDK_y, toggleproxy, { 0 } }, Err gopher.r-36.net 70 i }; Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i /* button definitions */ Err gopher.r-36.net 70 i@@ -139,3 +140,4 @@ static Button buttons[] = { Err gopher.r-36.net 70 i { ClkAny, 0, 8, navigate, { .i = -1 } }, Err gopher.r-36.net 70 i { ClkAny, 0, 9, navigate, { .i = +1 } }, Err gopher.r-36.net 70 i }; Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 1diff --git a/surf.1 b/surf.1 /scm/surf//file/surf.1.gph gopher.r-36.net 70 i@@ -221,6 +221,9 @@ Toggle script execution. This will reload the page. Err gopher.r-36.net 70 i Toggle the enabling of plugins on that surf instance. This will reload the Err gopher.r-36.net 70 i page. Err gopher.r-36.net 70 i .TP Err gopher.r-36.net 70 i+.B Ctrl\-Shift\-y Err gopher.r-36.net 70 i+Toggle if a proxy should be used (if one is set in the environment). Err gopher.r-36.net 70 i+.TP Err gopher.r-36.net 70 i .B F11 Err gopher.r-36.net 70 i Toggle fullscreen mode. Err gopher.r-36.net 70 i .SH INDICATORS OF OPERATION Err gopher.r-36.net 70 1diff --git a/surf.c b/surf.c /scm/surf//file/surf.c.gph gopher.r-36.net 70 i@@ -198,6 +198,7 @@ static void scroll_v(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void scroll(GtkAdjustment *a, const Arg *arg); Err gopher.r-36.net 70 i static void setatom(Client *c, int a, const char *v); Err gopher.r-36.net 70 i static void setup(void); Err gopher.r-36.net 70 i+static void setup_proxy(void); Err gopher.r-36.net 70 i static void sigchld(int unused); Err gopher.r-36.net 70 i static void sighup(int unused); Err gopher.r-36.net 70 i static void source(Client *c, const Arg *arg); Err gopher.r-36.net 70 i@@ -208,6 +209,7 @@ static void titlechangeleave(void *a, void *b, Client *c); Err gopher.r-36.net 70 i static void toggle(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void togglecookiepolicy(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void togglegeolocation(Client *c, const Arg *arg); Err gopher.r-36.net 70 i+static void toggleproxy(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void togglescrollbars(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void togglestyle(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void updatetitle(Client *c); Err gopher.r-36.net 70 i@@ -1323,7 +1325,6 @@ void Err gopher.r-36.net 70 i setup(void) Err gopher.r-36.net 70 i { Err gopher.r-36.net 70 i int i; Err gopher.r-36.net 70 i- char *proxy, *new_proxy, *no_proxy, **new_no_proxy; Err gopher.r-36.net 70 i char *styledirfile, *stylepath; Err gopher.r-36.net 70 i GProxyResolver *pr; Err gopher.r-36.net 70 i SoupSession *s; Err gopher.r-36.net 70 i@@ -1399,6 +1400,19 @@ setup(void) Err gopher.r-36.net 70 i g_object_set(G_OBJECT(s), "tls-database", tlsdb, NULL); Err gopher.r-36.net 70 i g_object_set(G_OBJECT(s), "ssl-strict", strictssl, NULL); Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i+ setup_proxy(); Err gopher.r-36.net 70 i+} Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+void Err gopher.r-36.net 70 i+setup_proxy(void) Err gopher.r-36.net 70 i+{ Err gopher.r-36.net 70 i+ char *proxy, *new_proxy, *no_proxy, **new_no_proxy; Err gopher.r-36.net 70 i+ GProxyResolver *pr; Err gopher.r-36.net 70 i+ SoupSession *s; Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+ /* request handler */ Err gopher.r-36.net 70 i+ s = webkit_get_default_session(); Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i /* proxy */ Err gopher.r-36.net 70 i if ((proxy = getenv("http_proxy")) && strcmp(proxy, "")) { Err gopher.r-36.net 70 i new_proxy = g_strrstr(proxy, "http://") Err gopher.r-36.net 70 i@@ -1416,6 +1430,8 @@ setup(void) Err gopher.r-36.net 70 i g_free(new_proxy); Err gopher.r-36.net 70 i g_strfreev(new_no_proxy); Err gopher.r-36.net 70 i usingproxy = 1; Err gopher.r-36.net 70 i+ } else { Err gopher.r-36.net 70 i+ usingproxy = 0; Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i@@ -1480,6 +1496,7 @@ void Err gopher.r-36.net 70 i ttitlechange(WebKitWebView *view, GParamSpec *pspec, Client *c) Err gopher.r-36.net 70 i { Err gopher.r-36.net 70 i const gchar *t = webkit_web_view_get_title(view); Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i if (t) { Err gopher.r-36.net 70 i c->title = copystr(&c->title, t); Err gopher.r-36.net 70 i updatetitle(c); Err gopher.r-36.net 70 i@@ -1558,6 +1575,25 @@ twitch(Client *c, const Arg *arg) Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i void Err gopher.r-36.net 70 i+ttoggleproxy(Client *c, const Arg *arg) Err gopher.r-36.net 70 i+{ Err gopher.r-36.net 70 i+ SoupSession *s; Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+ /* request handler */ Err gopher.r-36.net 70 i+ s = webkit_get_default_session(); Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+ if (usingproxy) { Err gopher.r-36.net 70 i+ g_object_set(G_OBJECT(s), "proxy-resolver", NULL, NULL); Err gopher.r-36.net 70 i+ usingproxy = 0; Err gopher.r-36.net 70 i+ } else { Err gopher.r-36.net 70 i+ setup_proxy(); Err gopher.r-36.net 70 i+ } Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+ updatetitle(c); Err gopher.r-36.net 70 i+ /* Do not reload. */ Err gopher.r-36.net 70 i+} Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+void Err gopher.r-36.net 70 i ttogglescrollbars(Client *c, const Arg *arg) Err gopher.r-36.net 70 i { Err gopher.r-36.net 70 i GtkPolicyType vspolicy; Err gopher.r-36.net 70 .