Handle more gracefully negative values - pkgsrc-localpatches - leot's pkgsrc LOCALPATCHES
(HTM) hg clone https://bitbucket.org/iamleot/pkgsrc-localpatches
(DIR) Log
(DIR) Files
(DIR) Refs
---
(DIR) changeset b1b36b697729b15561a1889845233a75cd382d32
(DIR) parent 25284536df8f5d6793c1bd843d6a17bcd334e56c
(HTM) Author: Leonardo Taccari <iamleot@gmail.com>
Date: Sun, 16 Jun 2019 19:41:02
Handle more gracefully negative values
(Given that it's a `char' values greater than 128 can be still problematic!)
Diffstat:
wip/surf-git/patch-libsurf-webext.c | 29 ++++++++++++++++++++++++
wip/surf-git/patch-surf.c | 44 +++++++++++++++++++++++-------------
2 files changed, 57 insertions(+), 16 deletions(-)
---
diff -r 25284536df8f -r b1b36b697729 wip/surf-git/patch-libsurf-webext.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wip/surf-git/patch-libsurf-webext.c Sun Jun 16 19:41:02 2019 +0200
@@ -0,0 +1,29 @@
+$NetBSD$
+
+Address negative values.
+
+--- libsurf-webext.c.orig 2019-06-12 11:50:12.000000000 +0000
++++ libsurf-webext.c
+@@ -87,18 +87,18 @@ readpipe(GIOChannel *s, GIOCondition c,
+
+ switch (msg[2]) {
+ case 'h':
+- if (msgsz != 4)
++ if (msgsz != 5)
+ return TRUE;
+ ww = webkit_dom_dom_window_get_inner_width(view);
+ webkit_dom_dom_window_scroll_by(view,
+- (ww / 100) * msg[3], 0);
++ (ww / 100) * (msg[3] == '-' ? -1 : +1) * msg[4], 0);
+ break;
+ case 'v':
+- if (msgsz != 4)
++ if (msgsz != 5)
+ return TRUE;
+ wh = webkit_dom_dom_window_get_inner_height(view);
+ webkit_dom_dom_window_scroll_by(view,
+- 0, (wh / 100) * msg[3]);
++ 0, (wh / 100) * (msg[3] == '-' ? -1 : +1) * msg[4]);
+ break;
+ }
+
diff -r 25284536df8f -r b1b36b697729 wip/surf-git/patch-surf.c
--- a/wip/surf-git/patch-surf.c Sun Jun 16 19:39:25 2019 +0200
+++ b/wip/surf-git/patch-surf.c Sun Jun 16 19:41:02 2019 +0200
@@ -1,8 +1,9 @@
$NetBSD$
-Add support for UserAgent, UserScript and clickplumb().
+Add support for UserAgent, UserScript and clickplumb() and try to
+address scrollv() and scrollh() negative values.
---- surf.c.orig
+--- surf.c.orig 2019-06-12 11:50:12.000000000 +0000
+++ surf.c
@@ -80,6 +80,8 @@ typedef enum {
SpellLanguages,
@@ -13,7 +14,7 @@
WebGL,
ZoomLevel,
ParameterLast
-@@ -164,7 +166,9 @@ static void seturiparameters(Client *c, const char *uri, ParamName *params);
+@@ -164,7 +166,9 @@ static void seturiparameters(Client *c,
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);
@@ -23,7 +24,7 @@
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);
+@@ -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);
@@ -66,7 +67,7 @@
if (!stylefile) {
styledir = buildpath(styledir);
for (i = 0; i < LENGTH(styles); ++i) {
-@@ -722,6 +741,7 @@ seturiparameters(Client *c, const char *uri, ParamName *params)
+@@ -722,6 +741,7 @@ seturiparameters(Client *c, const char *
case Certificate:
case CookiePolicies:
case Style:
@@ -74,7 +75,7 @@
setparameter(c, 0, p, &curconfig[p].val);
}
}
-@@ -846,6 +866,17 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a)
+@@ -846,6 +866,17 @@ setparameter(Client *c, int refresh, Par
setstyle(c, getstyle(geturi(c)));
refresh = 0;
break;
@@ -92,11 +93,10 @@
case WebGL:
webkit_settings_set_enable_webgl(s, a->i);
break;
-@@ -902,6 +933,20 @@ setcert(Client *c, const char *uri)
-
+@@ -903,6 +934,20 @@ setcert(Client *c, const char *uri)
}
-+const char *
+ const char *
+getscript(const char *uri)
+{
+ int i;
@@ -110,14 +110,14 @@
+ return "";
+}
+
- const char *
++const char *
getstyle(const char *uri)
{
-@@ -919,6 +964,26 @@ getstyle(const char *uri)
- return "";
+ int i;
+@@ -920,6 +965,26 @@ getstyle(const char *uri)
}
-+void
+ void
+setscript(Client *c, const char *file)
+{
+ gchar *script;
@@ -137,10 +137,11 @@
+ g_free(script);
+}
+
- void
++void
setstyle(Client *c, const char *file)
{
-@@ -1016,7 +1081,10 @@ newwindow(Client *c, const Arg *a, int noembed)
+ gchar *style;
+@@ -1016,7 +1081,10 @@ newwindow(Client *c, const Arg *a, int n
}
cmd[i++] = curconfig[JavaScript].val.i ? "-S" : "-s";
cmd[i++] = curconfig[StrictTLS].val.i ? "-T" : "-t";
@@ -163,7 +164,18 @@
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)
+@@ -1848,8 +1918,8 @@ msgext(Client *c, char type, const Arg *
+ static char msg[MSGBUFSZ];
+ int ret;
+
+- if ((ret = snprintf(msg, sizeof(msg), "%c%c%c%c",
+- 4, c->pageid, type, a->i))
++ if ((ret = snprintf(msg, sizeof(msg), "%c%c%c%c%c",
++ 5, c->pageid, type, a->i >= 0 ? '+' : '-', abs(a->i)))
+ >= sizeof(msg)) {
+ fprintf(stderr, "surf: message too long: %d\n", ret);
+ return;
+@@ -1971,6 +2041,15 @@ clickexternplayer(Client *c, const Arg *
spawn(c, &arg);
}