tAdapt JavaScript functions - surf - customized build of surf, the suckless webkit browser
 (HTM) git clone git://src.adamsgaard.dk/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit d9cecc89329dee3eb48bb6cc38d2bc38796c2e8b
 (DIR) parent 72905b8bfc0f91cd3b6d0ac845c5cae92f8e35db
 (HTM) Author: Quentin Rameau <quinq@fifth.space>
       Date:   Thu, 19 Nov 2015 17:14:29 +0100
       
       Adapt JavaScript functions
       
       Removed eval(), evalscript() is now sufficient and can directly execute
       passed JavaScript string.
       
       Diffstat:
         M surf.c                              |      42 +++++++++++++------------------
       
       1 file changed, 17 insertions(+), 25 deletions(-)
       ---
 (DIR) diff --git a/surf.c b/surf.c
       t@@ -124,7 +124,8 @@ static void closeview(WebKitWebView *v, Client *c);
        static void destroyclient(Client *c);
        static void destroywin(GtkWidget* w, Client *c);
        static void die(const char *errstr, ...);
       -static void eval(Client *c, const Arg *arg);
       +static void evalscript(Client *c, const char *jsstr, ...);
       +static void runscript(Client *c);
        static void find(Client *c, const Arg *arg);
        static void fullscreen(Client *c, const Arg *arg);
        static gboolean permissionrequested(WebKitWebView *v,
       t@@ -336,29 +337,28 @@ cookiepolicy_set(const WebKitCookieAcceptPolicy ep)
        }
        
        void
       -evalscript(JSContextRef js, char *script, char* scriptname)
       +evalscript(Client *c, const char *jsstr, ...)
        {
       -        JSStringRef jsscript, jsscriptname;
       -        JSValueRef exception = NULL;
       +        va_list ap;
       +        gchar *script;
       +
       +        va_start(ap, jsstr);
       +        script = g_strdup_vprintf(jsstr, ap);
       +        va_end(ap);
        
       -        jsscript = JSStringCreateWithUTF8CString(script);
       -        jsscriptname = JSStringCreateWithUTF8CString(scriptname);
       -        JSEvaluateScript(js, jsscript, JSContextGetGlobalObject(js),
       -                         jsscriptname, 0, &exception);
       -        JSStringRelease(jsscript);
       -        JSStringRelease(jsscriptname);
       +        webkit_web_view_run_javascript(c->view, script, NULL, NULL, NULL);
       +        g_free(script);
        }
        
        void
       -runscript(WebKitWebFrame *frame)
       +runscript(Client *c)
        {
       -        char *script;
       -        GError *error;
       +        gchar *script;
       +        gsize l;
        
       -        if (g_file_get_contents(scriptfile, &script, NULL, &error)) {
       -                evalscript(webkit_web_frame_get_global_context(frame), script,
       -                           scriptfile);
       -        }
       +        if (g_file_get_contents(scriptfile, &script, &l, NULL) && l)
       +                evalscript(c, script);
       +        g_free(script);
        }
        
        void
       t@@ -1319,14 +1319,6 @@ spawn(Client *c, const Arg *arg)
        }
        
        void
       -eval(Client *c, const Arg *arg)
       -{
       -        WebKitWebFrame *frame = webkit_web_view_get_main_frame(c->view);
       -        evalscript(webkit_web_frame_get_global_context(frame),
       -                   ((char **)arg->v)[0], "");
       -}
       -
       -void
        stop(Client *c, const Arg *arg)
        {
                webkit_web_view_stop_loading(c->view);