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