Unify all the patch per file and add UserAgent hunk patch. - pkgsrc-localpatches - leot's pkgsrc LOCALPATCHES
(HTM) hg clone https://bitbucket.org/iamleot/pkgsrc-localpatches
(DIR) Log
(DIR) Files
(DIR) Refs
---
(DIR) changeset eae716b2fb06c6806140ea5fd5cb28871ea032c1
(DIR) parent a3bb5710584d93c5f56ce1006325968899130b03
(HTM) Author: Leonardo Taccari <iamleot@gmail.com>
Date: Sat, 8 Jun 2019 18:18:20
Unify all the patch per file and add UserAgent hunk patch.
Diffstat:
wip/surf-git/clickplumb.patch | 30 ------
wip/surf-git/patch-config.def.h | 36 +++++++
wip/surf-git/patch-config.h | 9 +-
wip/surf-git/patch-surf.c | 181 ++++++++++++++++++++++++++++++++++++++++
wip/surf-git/userscript.patch | 159 -----------------------------------
5 files changed, 222 insertions(+), 193 deletions(-)
---
diff -r a3bb5710584d -r eae716b2fb06 wip/surf-git/clickplumb.patch
--- a/wip/surf-git/clickplumb.patch Sat Jun 08 15:13:28 2019 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-$NetBSD$
-
-Add support to invoke plumb via a button.
-
---- surf.c.orig 2019-03-06 11:19:52.000000000 +0000
-+++ surf.c
-@@ -236,6 +236,7 @@ static void find(Client *c, const Arg *a
- static void clicknavigate(Client *c, const Arg *a, WebKitHitTestResult *h);
- static void clicknewwindow(Client *c, const Arg *a, WebKitHitTestResult *h);
- static void clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h);
-+static void clickplumb(Client *c, const Arg *a, WebKitHitTestResult *h);
-
- static char winid[64];
- static char togglestats[12];
-@@ -1971,6 +1972,15 @@ clickexternplayer(Client *c, const Arg *
- spawn(c, &arg);
- }
-
-+void
-+clickplumb(Client *c, const Arg *a, WebKitHitTestResult *h)
-+{
-+ Arg arg;
-+
-+ arg = (Arg)PLUMB(c->targeturi ? c->targeturi : geturi(c));
-+ spawn(c, &arg);
-+}
-+
- int
- main(int argc, char *argv[])
- {
diff -r a3bb5710584d -r eae716b2fb06 wip/surf-git/patch-config.def.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wip/surf-git/patch-config.def.h Sat Jun 08 18:18:20 2019 +0200
@@ -0,0 +1,36 @@
+$NetBSD$
+
+Add support for UserAgent and UserScript.
+
+--- config.def.h.orig
++++ config.def.h
+@@ -3,6 +3,7 @@ static int surfuseragent = 1; /* Append Surf version to default WebKit user
+ static char *fulluseragent = ""; /* Or override the whole user agent string */
+ static char *scriptfile = "~/.surf/script.js";
+ static char *styledir = "~/.surf/styles/";
++static char *scriptdir = "~/.surf/script/";
+ static char *certdir = "~/.surf/certificates/";
+ static char *cachedir = "~/.surf/cache/";
+ static char *cookiefile = "~/.surf/cookies.txt";
+@@ -46,6 +47,8 @@ static Parameter defconfig[ParameterLast] = {
+ [SpellLanguages] = { { .v = ((char *[]){ "en_US", NULL }) }, },
+ [StrictTLS] = { { .i = 1 }, },
+ [Style] = { { .i = 1 }, },
++ [UserAgent] = { { .v = "" }, },
++ [UserScript] = { { .i = 1 }, },
+ [WebGL] = { { .i = 0 }, },
+ [ZoomLevel] = { { .f = 1.0 }, },
+ };
+@@ -112,6 +115,12 @@ static SiteSpecific styles[] = {
+ { ".*", "default.css" },
+ };
+
++/* scripts */
++static SiteSpecific scripts[] = {
++ /* regexp file in $scriptdir */
++ { ".*", "default.js" },
++};
++
+ /* certificates */
+ /*
+ * Provide custom certificate for urls
diff -r a3bb5710584d -r eae716b2fb06 wip/surf-git/patch-config.h
--- a/wip/surf-git/patch-config.h Sat Jun 08 15:13:28 2019 +0200
+++ b/wip/surf-git/patch-config.h Sat Jun 08 18:18:20 2019 +0200
@@ -1,9 +1,9 @@
---- /dev/null 2019-06-08 14:15:07.842795313 +0200
-+++ config.h 2019-06-08 14:14:50.272358309 +0200
-@@ -0,0 +1,218 @@
+--- /dev/null 2019-06-08 18:14:46.479402408 +0200
++++ config.h 2019-06-08 18:14:37.992108174 +0200
+@@ -0,0 +1,219 @@
+/* modifier 0 means no modifier */
+static int surfuseragent = 0; /* Append Surf version to default WebKit user agent */
-+static char *fulluseragent = "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"; /* Or override the whole user agent string */
++static char *fulluseragent = ""; /* Or override the whole user agent string */
+static char *scriptfile = "~/.surf/script.js";
+static char *scriptdir = "~/.surf/script/";
+static char *styledir = "~/.surf/styles/";
@@ -50,6 +50,7 @@
+ [SpellLanguages] = { { .v = ((char *[]){ "en_US", NULL }) }, },
+ [StrictTLS] = { { .i = 1 }, },
+ [Style] = { { .i = 1 }, },
++ [UserAgent] = { { .v = "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0" }, },
+ [UserScript] = { { .i = 1 }, },
+ [WebGL] = { { .i = 0 }, },
+ [ZoomLevel] = { { .f = 1.0 }, },
diff -r a3bb5710584d -r eae716b2fb06 wip/surf-git/patch-surf.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wip/surf-git/patch-surf.c Sat Jun 08 18:18:20 2019 +0200
@@ -0,0 +1,181 @@
+$NetBSD$
+
+Add support for UserAgent, UserScript and clickplumb().
+
+--- surf.c.orig
++++ surf.c
+@@ -80,6 +80,8 @@ typedef enum {
+ SpellLanguages,
+ StrictTLS,
+ Style,
++ UserAgent,
++ UserScript,
+ WebGL,
+ ZoomLevel,
+ ParameterLast
+@@ -164,7 +166,9 @@ static void seturiparameters(Client *c, const char *uri, ParamName *params);
+ static void setparameter(Client *c, int refresh, ParamName p, const Arg *a);
+ static const char *getcert(const char *uri);
+ static void setcert(Client *c, const char *file);
++static const char *getscript(const char *uri);
+ static const char *getstyle(const char *uri);
++static void setscript(Client *c, const char *file);
+ static void setstyle(Client *c, const char *file);
+ static void runscript(Client *c);
+ static void evalscript(Client *c, const char *jsstr, ...);
+@@ -236,6 +240,7 @@ static void find(Client *c, const Arg *a);
+ static void clicknavigate(Client *c, const Arg *a, WebKitHitTestResult *h);
+ static void clicknewwindow(Client *c, const Arg *a, WebKitHitTestResult *h);
+ static void clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h);
++static void clickplumb(Client *c, const Arg *a, WebKitHitTestResult *h);
+
+ static char winid[64];
+ static char togglestats[12];
+@@ -265,6 +270,8 @@ static ParamName loadtransient[] = {
+ PreferredLanguages,
+ ShowIndicators,
+ StrictTLS,
++ UserAgent,
++ UserScript,
+ ParameterLast
+ };
+
+@@ -340,6 +347,7 @@ setup(void)
+ scriptfile = buildfile(scriptfile);
+ cachedir = buildpath(cachedir);
+ certdir = buildpath(certdir);
++ scriptdir = buildpath(scriptdir);
+
+ gdkkb = gdk_seat_get_keyboard(gdk_display_get_default_seat(gdpy));
+
+@@ -364,6 +372,17 @@ setup(void)
+ }
+ }
+
++ for (i = 0; i < LENGTH(scripts); ++i) {
++ if (!regcomp(&(scripts[i].re), scripts[i].regex, REG_EXTENDED)) {
++ scripts[i].file = g_strconcat(scriptdir, "/", scripts[i].file,
++ NULL);
++ } else {
++ fprintf(stderr, "Could not compile regex: %s\n",
++ scripts[i].regex);
++ scripts[i].regex = NULL;
++ }
++ }
++
+ if (!stylefile) {
+ styledir = buildpath(styledir);
+ for (i = 0; i < LENGTH(styles); ++i) {
+@@ -722,6 +741,7 @@ seturiparameters(Client *c, const char *uri, ParamName *params)
+ case Certificate:
+ case CookiePolicies:
+ case Style:
++ case UserScript:
+ setparameter(c, 0, p, &curconfig[p].val);
+ }
+ }
+@@ -846,6 +866,17 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a)
+ setstyle(c, getstyle(geturi(c)));
+ refresh = 0;
+ break;
++ case UserAgent:
++ if (a->v && g_strcmp0(a->v, ""))
++ webkit_settings_set_user_agent(s, a->v);
++ break;
++ case UserScript:
++ webkit_user_content_manager_remove_all_scripts(
++ webkit_web_view_get_user_content_manager(c->view));
++ if (a->i)
++ setscript(c, getscript(geturi(c)));
++ refresh = 0;
++ break;
+ case WebGL:
+ webkit_settings_set_enable_webgl(s, a->i);
+ break;
+@@ -902,6 +933,20 @@ setcert(Client *c, const char *uri)
+
+ }
+
++const char *
++getscript(const char *uri)
++{
++ int i;
++
++ for (i = 0; i < LENGTH(scripts); ++i) {
++ if (scripts[i].regex &&
++ !regexec(&(scripts[i].re), uri, 0, NULL, 0))
++ return scripts[i].file;
++ }
++
++ return "";
++}
++
+ const char *
+ getstyle(const char *uri)
+ {
+@@ -919,6 +964,26 @@ getstyle(const char *uri)
+ return "";
+ }
+
++void
++setscript(Client *c, const char *file)
++{
++ gchar *script;
++
++ if (!g_file_get_contents(file, &script, NULL, NULL)) {
++ fprintf(stderr, "Could not read script file: %s\n", file);
++ return;
++ }
++
++ webkit_user_content_manager_add_script(
++ webkit_web_view_get_user_content_manager(c->view),
++ webkit_user_script_new(script,
++ WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
++ WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END,
++ NULL, NULL));
++
++ g_free(script);
++}
++
+ void
+ setstyle(Client *c, const char *file)
+ {
+@@ -1016,7 +1081,10 @@ newwindow(Client *c, const Arg *a, int noembed)
+ }
+ cmd[i++] = curconfig[JavaScript].val.i ? "-S" : "-s";
+ cmd[i++] = curconfig[StrictTLS].val.i ? "-T" : "-t";
+- if (fulluseragent && g_strcmp0(fulluseragent, "")) {
++ if (curconfig[UserAgent].val.v && g_strcmp0(curconfig[UserAgent].val.v, "")) {
++ cmd[i++] = "-u";
++ cmd[i++] = curconfig[UserAgent].val.v;
++ } else if (fulluseragent && g_strcmp0(fulluseragent, "")) {
+ cmd[i++] = "-u";
+ cmd[i++] = fulluseragent;
+ }
+@@ -1119,7 +1187,9 @@ newview(Client *c, WebKitWebView *rv)
+ /* For more interesting settings, have a look at
+ * http://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html */
+
+- if (strcmp(fulluseragent, "")) {
++ if (strcmp(curconfig[UserAgent].val.v, "")) {
++ webkit_settings_set_user_agent(settings, curconfig[UserAgent].val.v);
++ } else if (strcmp(fulluseragent, "")) {
+ webkit_settings_set_user_agent(settings, fulluseragent);
+ } else if (surfuseragent) {
+ webkit_settings_set_user_agent_with_application_details(
+@@ -1971,6 +2041,15 @@ clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h)
+ spawn(c, &arg);
+ }
+
++void
++clickplumb(Client *c, const Arg *a, WebKitHitTestResult *h)
++{
++ Arg arg;
++
++ arg = (Arg)PLUMB(c->targeturi ? c->targeturi : geturi(c));
++ spawn(c, &arg);
++}
++
+ int
+ main(int argc, char *argv[])
+ {
diff -r a3bb5710584d -r eae716b2fb06 wip/surf-git/userscript.patch
--- a/wip/surf-git/userscript.patch Sat Jun 08 15:13:28 2019 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-$NetBSD$
-
-Add support for user script.
-
---- config.def.h.orig
-+++ config.def.h
-@@ -3,6 +3,7 @@ static int surfuseragent = 1; /* Append Surf version to default WebKit user
- static char *fulluseragent = ""; /* Or override the whole user agent string */
- static char *scriptfile = "~/.surf/script.js";
- static char *styledir = "~/.surf/styles/";
-+static char *scriptdir = "~/.surf/script/";
- static char *certdir = "~/.surf/certificates/";
- static char *cachedir = "~/.surf/cache/";
- static char *cookiefile = "~/.surf/cookies.txt";
-@@ -46,6 +47,7 @@ static Parameter defconfig[ParameterLast] = {
- [SpellLanguages] = { { .v = ((char *[]){ "en_US", NULL }) }, },
- [StrictTLS] = { { .i = 1 }, },
- [Style] = { { .i = 1 }, },
-+ [UserScript] = { { .i = 1 }, },
- [WebGL] = { { .i = 0 }, },
- [ZoomLevel] = { { .f = 1.0 }, },
- };
-@@ -112,6 +114,12 @@ static SiteSpecific styles[] = {
- { ".*", "default.css" },
- };
-
-+/* scripts */
-+static SiteSpecific scripts[] = {
-+ /* regexp file in $scriptdir */
-+ { ".*", "default.js" },
-+};
-+
- /* certificates */
- /*
- * Provide custom certificate for urls
---- surf.c.orig
-+++ surf.c
-@@ -80,6 +80,7 @@ typedef enum {
- SpellLanguages,
- StrictTLS,
- Style,
-+ UserScript,
- WebGL,
- ZoomLevel,
- ParameterLast
-@@ -164,7 +165,9 @@ static void seturiparameters(Client *c, const char *uri, ParamName *params);
- static void setparameter(Client *c, int refresh, ParamName p, const Arg *a);
- static const char *getcert(const char *uri);
- static void setcert(Client *c, const char *file);
-+static const char *getscript(const char *uri);
- static const char *getstyle(const char *uri);
-+static void setscript(Client *c, const char *file);
- static void setstyle(Client *c, const char *file);
- static void runscript(Client *c);
- static void evalscript(Client *c, const char *jsstr, ...);
-@@ -265,6 +268,7 @@ static ParamName loadtransient[] = {
- PreferredLanguages,
- ShowIndicators,
- StrictTLS,
-+ UserScript,
- ParameterLast
- };
-
-@@ -340,6 +344,7 @@ setup(void)
- scriptfile = buildfile(scriptfile);
- cachedir = buildpath(cachedir);
- certdir = buildpath(certdir);
-+ scriptdir = buildpath(scriptdir);
-
- gdkkb = gdk_seat_get_keyboard(gdk_display_get_default_seat(gdpy));
-
-@@ -364,6 +369,17 @@ setup(void)
- }
- }
-
-+ for (i = 0; i < LENGTH(scripts); ++i) {
-+ if (!regcomp(&(scripts[i].re), scripts[i].regex, REG_EXTENDED)) {
-+ scripts[i].file = g_strconcat(scriptdir, "/", scripts[i].file,
-+ NULL);
-+ } else {
-+ fprintf(stderr, "Could not compile regex: %s\n",
-+ scripts[i].regex);
-+ scripts[i].regex = NULL;
-+ }
-+ }
-+
- if (!stylefile) {
- styledir = buildpath(styledir);
- for (i = 0; i < LENGTH(styles); ++i) {
-@@ -722,6 +738,7 @@ seturiparameters(Client *c, const char *uri, ParamName *params)
- case Certificate:
- case CookiePolicies:
- case Style:
-+ case UserScript:
- setparameter(c, 0, p, &curconfig[p].val);
- }
- }
-@@ -846,6 +863,13 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a)
- setstyle(c, getstyle(geturi(c)));
- refresh = 0;
- break;
-+ case UserScript:
-+ webkit_user_content_manager_remove_all_scripts(
-+ webkit_web_view_get_user_content_manager(c->view));
-+ if (a->i)
-+ setscript(c, getscript(geturi(c)));
-+ refresh = 0;
-+ break;
- case WebGL:
- webkit_settings_set_enable_webgl(s, a->i);
- break;
-@@ -902,6 +926,20 @@ setcert(Client *c, const char *uri)
-
- }
-
-+const char *
-+getscript(const char *uri)
-+{
-+ int i;
-+
-+ for (i = 0; i < LENGTH(scripts); ++i) {
-+ if (scripts[i].regex &&
-+ !regexec(&(scripts[i].re), uri, 0, NULL, 0))
-+ return scripts[i].file;
-+ }
-+
-+ return "";
-+}
-+
- const char *
- getstyle(const char *uri)
- {
-@@ -919,6 +957,26 @@ getstyle(const char *uri)
- return "";
- }
-
-+void
-+setscript(Client *c, const char *file)
-+{
-+ gchar *script;
-+
-+ if (!g_file_get_contents(file, &script, NULL, NULL)) {
-+ fprintf(stderr, "Could not read script file: %s\n", file);
-+ return;
-+ }
-+
-+ webkit_user_content_manager_add_script(
-+ webkit_web_view_get_user_content_manager(c->view),
-+ webkit_user_script_new(script,
-+ WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
-+ WEBKIT_USER_SCRIPT_INJECT_AT_DOCUMENT_END,
-+ NULL, NULL));
-+
-+ g_free(script);
-+}
-+
- void
- setstyle(Client *c, const char *file)
- {