summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Marçalo <raroma09@gmail.com>2023-11-29 17:40:23 +0000
committerRafael Marçalo <raroma09@gmail.com>2023-11-29 17:40:23 +0000
commit6db79a5ca7432ce6ed9130211260b198a2257169 (patch)
treee25c30ec558dc786f9ef87f29e76010587ae9e63
parent9852b269b9e67686017c48f96762ad583bb08361 (diff)
MultiJS patch
-rw-r--r--config.def.h4
-rw-r--r--surf.c25
2 files changed, 20 insertions, 9 deletions
diff --git a/config.def.h b/config.def.h
index 53fcfe1..f08fa1e 100644
--- a/config.def.h
+++ b/config.def.h
@@ -3,12 +3,14 @@ static int surfuseragent = 1; /* Append Surf version to default WebKit user
static int extendedtitle = 0; /* 0 to not append surf's toggle and page status to title. */
static char *fulluseragent = ""; /* Or override the whole user agent string */
static char *homepage = "about:blank";
-static char *scriptfile = "~/.surf/script.js";
static char *styledir = "~/.surf/styles/";
static char *certdir = "~/.surf/certificates/";
static char *cachedir = "~/.surf/cache/";
static char *cookiefile = "~/.surf/cookies.txt";
static char *searchurl = "duckduckgo.com/?q=%s";
+static char *scriptfiles[] = {
+ "~/.surf/script.js",
+};
/* Webkit default features */
/* Highest priority value will be used.
diff --git a/surf.c b/surf.c
index 38d892e..d780657 100644
--- a/surf.c
+++ b/surf.c
@@ -359,8 +359,12 @@ setup(void)
/* dirs and files */
cookiefile = buildfile(cookiefile);
- scriptfile = buildfile(scriptfile);
certdir = buildpath(certdir);
+
+ for (i = 0; i < LENGTH(scriptfiles); i++) {
+ scriptfiles[i] = buildfile(scriptfiles[i]);
+ }
+
if (curconfig[Ephemeral].val.i)
cachedir = NULL;
else
@@ -989,9 +993,11 @@ runscript(Client *c)
gchar *script;
gsize l;
- if (g_file_get_contents(scriptfile, &script, &l, NULL) && l)
- evalscript(c, "%s", script);
- g_free(script);
+ for (int i = 0; i < LENGTH(scriptfiles); i++) {
+ if (g_file_get_contents(scriptfiles[i], &script, &l, NULL) && l)
+ evalscript(c, "%s", script);
+ g_free(script);
+ }
}
void
@@ -1053,9 +1059,9 @@ newwindow(Client *c, const Arg *a, int noembed)
cmd[i++] = curconfig[KioskMode].val.i ? "-K" : "-k" ;
cmd[i++] = curconfig[Style].val.i ? "-M" : "-m" ;
cmd[i++] = curconfig[Inspector].val.i ? "-N" : "-n" ;
- if (scriptfile && g_strcmp0(scriptfile, "")) {
+ if (scriptfiles[0] && g_strcmp0(scriptfiles[0], "")) {
cmd[i++] = "-r";
- cmd[i++] = scriptfile;
+ cmd[i++] = scriptfiles[0];
}
cmd[i++] = curconfig[JavaScript].val.i ? "-S" : "-s";
cmd[i++] = curconfig[StrictTLS].val.i ? "-T" : "-t";
@@ -1119,9 +1125,12 @@ cleanup(void)
close(spair[0]);
close(spair[1]);
g_free(cookiefile);
- g_free(scriptfile);
g_free(stylefile);
g_free(cachedir);
+ for (int i = 0; i < LENGTH(scriptfiles); i++) {
+ g_free(scriptfiles[i]);
+ }
+
XCloseDisplay(dpy);
}
@@ -2145,7 +2154,7 @@ main(int argc, char *argv[])
defconfig[Inspector].prio = 2;
break;
case 'r':
- scriptfile = EARGF(usage());
+ scriptfiles[0] = EARGF(usage());
break;
case 's':
defconfig[JavaScript].val.i = 0;