commit 0369394f5033b89cc346b682b90a927bdb17f11a
parent aade850357394f2a14cfaa31ffd68be7ac98a370
Author: Christoph Lohmann <20h@r-36.net>
Date: Wed, 19 Apr 2017 18:38:53 +0200
Allow the specification of the html5 db path.
Diffstat:
config.def.h | | | 138 | +++++++++++++++++++++++++++++++++++++++---------------------------------------- |
surf.c | | | 3 | +++ |
2 files changed, 71 insertions(+), 70 deletions(-)
diff --git a/config.def.h b/config.def.h
@@ -1,10 +1,11 @@
/* modifier 0 means no modifier */
static char *useragent = "Mozilla/5.0 (X11; U; Unix; en-US) "
- "AppleWebKit/537.15 (KHTML, like Gecko) "
- "Chrome/24.0.1295.0 Safari/537.15 Surf/"VERSION;
+ "AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 "
+ "Safari/537.15 Surf/"VERSION;
static char *scriptfile = "~/.surf/script.js";
static char *styledir = "~/.surf/styles/";
static char *cachefolder = "~/.surf/cache/";
+static char *dbfolder = "~/.surf/databases/";
static Bool kioskmode = FALSE; /* Ignore shortcuts */
static Bool showindicators = TRUE; /* Show indicators in window title */
@@ -17,10 +18,10 @@ static gfloat zoomlevel = 1.0; /* Default zoom level */
/* Soup default features */
static char *cookiefile = "~/.surf/cookies.txt";
static char *cookiepolicies = "Aa@"; /* A: accept all; a: accept nothing,
- * @: accept all except third party */
+ @: accept all except third party */
static char *cafile = "/etc/ssl/certs/ca-certificates.crt";
-static Bool strictssl = TRUE; /* strict means if to refuse untrusted
- * tls/ssl connections */
+static Bool strictssl = TRUE; /* strict means if untrusted SSL/TLS
+ * connections should be refused. */
static time_t sessiontime = 3600;
/* Webkit default features */
@@ -42,21 +43,19 @@ static Bool allowgeolocation = TRUE;
#define SETPROP(p, q, prompt) { \
.v = (char *[]){ "/bin/sh", "-c", \
- "prop=\"`xprop -id $2 $0 " \
- "| sed \"s/^$0(STRING) = \\(\\\\\"\\?\\)\\(.*\\)\\1$/\\2/\" " \
- "| xargs -0 printf %b | dmenu -p \"$3\"`\" &&" \
- "xprop -id $2 -f $1 8s -set $1 \"$prop\"", \
- p, q, winid, prompt, NULL \
+ "prop=\"`xprop -id $2 $0 " \
+ "| sed \"s/^$0(STRING) = \\(\\\\\"\\?\\)\\(.*\\)\\1$/\\2/\" " \
+ "| xargs -0 printf %b | dmenu -p \"$3\"`\" &&" \
+ "xprop -id $2 -f $1 8s -set $1 \"$prop\"", \
+ p, q, winid, prompt, NULL \
} \
}
/* DOWNLOAD(URI, referer) */
#define DOWNLOAD(d, r) { \
.v = (char *[]){ "/bin/sh", "-c", \
- "st -e /bin/sh -c \"curl -g -L -J -O --user-agent '$1'" \
- " --referer '$2' -b $3 -c $3 '$0';" \
- " sleep 5;\"", \
- d, useragent, r, cookiefile, NULL \
+ "/bin/sh -c \"download '$1' '$2' '$3' '$0'\"", \
+ d, useragent, r, cookiefile, NULL \
} \
}
@@ -66,7 +65,7 @@ static Bool allowgeolocation = TRUE;
*/
#define PLUMB(u) {\
.v = (char *[]){ "/bin/sh", "-c", \
- "xdg-open \"$0\"", u, NULL \
+ "plumb \"$0\"", u, NULL \
} \
}
@@ -76,8 +75,8 @@ static Bool allowgeolocation = TRUE;
* the list.
*/
static SiteStyle styles[] = {
- /* regexp file in $styledir */
- { ".*", "default.css" },
+ /* regexp file in $styledir */
+ { ".*", "default.css" },
};
#define MODKEY GDK_CONTROL_MASK
@@ -88,62 +87,61 @@ static SiteStyle styles[] = {
* edit the CLEANMASK() macro.
*/
static Key keys[] = {
- /* modifier keyval function arg Focus */
- { MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE } },
- { MODKEY, GDK_r, reload, { .b = FALSE } },
- { MODKEY|GDK_SHIFT_MASK,GDK_p, print, { 0 } },
-
- { MODKEY, GDK_p, clipboard, { .b = TRUE } },
- { MODKEY, GDK_y, clipboard, { .b = FALSE } },
-
- { MODKEY|GDK_SHIFT_MASK,GDK_j, zoom, { .i = -1 } },
- { MODKEY|GDK_SHIFT_MASK,GDK_k, zoom, { .i = +1 } },
- { MODKEY|GDK_SHIFT_MASK,GDK_q, zoom, { .i = 0 } },
- { MODKEY, GDK_minus, zoom, { .i = -1 } },
- { MODKEY, GDK_plus, zoom, { .i = +1 } },
-
- { MODKEY, GDK_l, navigate, { .i = +1 } },
- { MODKEY, GDK_h, navigate, { .i = -1 } },
-
- { MODKEY, GDK_j, scroll_v, { .i = +1 } },
- { MODKEY, GDK_k, scroll_v, { .i = -1 } },
- { MODKEY, GDK_b, scroll_v, { .i = -10000 } },
- { MODKEY, GDK_space, scroll_v, { .i = +10000 } },
- { MODKEY, GDK_i, scroll_h, { .i = +1 } },
- { MODKEY, GDK_u, scroll_h, { .i = -1 } },
-
- { 0, GDK_F11, fullscreen, { 0 } },
- { 0, GDK_Escape, stop, { 0 } },
- { MODKEY, GDK_o, source, { 0 } },
- { MODKEY|GDK_SHIFT_MASK,GDK_o, inspector, { 0 } },
-
- { MODKEY, GDK_g, spawn, SETPROP("_SURF_URI", "_SURF_GO", PROMPT_GOTO) },
- { MODKEY, GDK_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) },
- { MODKEY, GDK_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_SLASH) },
-
- { MODKEY, GDK_n, find, { .b = TRUE } },
- { MODKEY|GDK_SHIFT_MASK,GDK_n, find, { .b = FALSE } },
-
- { MODKEY|GDK_SHIFT_MASK,GDK_c, toggle, { .v = "enable-caret-browsing" } },
- { MODKEY|GDK_SHIFT_MASK,GDK_i, toggle, { .v = "auto-load-images" } },
- { MODKEY|GDK_SHIFT_MASK,GDK_s, toggle, { .v = "enable-scripts" } },
- { MODKEY|GDK_SHIFT_MASK,GDK_v, toggle, { .v = "enable-plugins" } },
- { MODKEY|GDK_SHIFT_MASK,GDK_t, togglesoup, { .v = "ssl-strict" } },
- { MODKEY|GDK_SHIFT_MASK,GDK_a, togglecookiepolicy, { 0 } },
- { MODKEY|GDK_SHIFT_MASK,GDK_m, togglestyle, { 0 } },
- { MODKEY|GDK_SHIFT_MASK,GDK_b, togglescrollbars, { 0 } },
- { MODKEY|GDK_SHIFT_MASK,GDK_g, togglegeolocation, { 0 } },
- { MODKEY|GDK_SHIFT_MASK,GDK_y, toggleproxy, { 0 } },
+ /* modifier keyval function arg Focus */
+ { MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE } },
+ { MODKEY, GDK_r, reload, { .b = FALSE } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_p, print, { 0 } },
+
+ { MODKEY, GDK_p, clipboard, { .b = TRUE } },
+ { MODKEY, GDK_y, clipboard, { .b = FALSE } },
+
+ { MODKEY|GDK_SHIFT_MASK,GDK_j, zoom, { .i = -1 } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_k, zoom, { .i = +1 } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_q, zoom, { .i = 0 } },
+ { MODKEY, GDK_minus, zoom, { .i = -1 } },
+ { MODKEY, GDK_plus, zoom, { .i = +1 } },
+
+ { MODKEY, GDK_l, navigate, { .i = +1 } },
+ { MODKEY, GDK_h, navigate, { .i = -1 } },
+
+ { MODKEY, GDK_j, scroll_v, { .i = +1 } },
+ { MODKEY, GDK_k, scroll_v, { .i = -1 } },
+ { MODKEY, GDK_b, scroll_v, { .i = -10000 } },
+ { MODKEY, GDK_space, scroll_v, { .i = +10000 } },
+ { MODKEY, GDK_i, scroll_h, { .i = +1 } },
+ { MODKEY, GDK_u, scroll_h, { .i = -1 } },
+
+ { 0, GDK_F11, fullscreen, { 0 } },
+ { 0, GDK_Escape, stop, { 0 } },
+ { MODKEY, GDK_o, source, { 0 } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_o, inspector, { 0 } },
+
+ { MODKEY, GDK_g, spawn, SETPROP("_SURF_URI", "_SURF_GO", PROMPT_GOTO) },
+ { MODKEY, GDK_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) },
+ { MODKEY, GDK_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_SLASH) },
+
+ { MODKEY, GDK_n, find, { .b = TRUE } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_n, find, { .b = FALSE } },
+
+ { MODKEY|GDK_SHIFT_MASK,GDK_c, toggle, { .v = "enable-caret-browsing" } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_i, toggle, { .v = "auto-load-images" } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_s, toggle, { .v = "enable-scripts" } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_v, toggle, { .v = "enable-plugins" } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_t, togglesoup, { .v = "ssl-strict" } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_a, togglecookiepolicy, { 0 } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_m, togglestyle, { 0 } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_b, togglescrollbars, { 0 } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_g, togglegeolocation, { 0 } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_y, toggleproxy, { 0 } },
};
/* button definitions */
/* click can be ClkDoc, ClkLink, ClkImg, ClkMedia, ClkSel, ClkEdit, ClkAny */
static Button buttons[] = {
- /* click event mask button function argument */
- { ClkLink, 0, 2, linkopenembed, { 0 } },
- { ClkLink, MODKEY, 2, linkopen, { 0 } },
- { ClkLink, MODKEY, 1, linkopen, { 0 } },
- { ClkAny, 0, 8, navigate, { .i = -1 } },
- { ClkAny, 0, 9, navigate, { .i = +1 } },
+ /* click event mask button function argument */
+ { ClkLink, 0, 2, linkopenembed, { 0 } },
+ { ClkLink, MODKEY, 2, linkopen, { 0 } },
+ { ClkLink, MODKEY, 1, linkopen, { 0 } },
+ { ClkAny, 0, 8, navigate, { .i = -1 } },
+ { ClkAny, 0, 9, navigate, { .i = +1 } },
};
-
diff --git a/surf.c b/surf.c
@@ -1042,6 +1042,8 @@ newclient(void)
runscript(frame);
settings = webkit_web_view_get_settings(c->view);
+ g_object_set(G_OBJECT(settings), "html5-local-storage-database-path",
+ dbfolder, NULL);
if (!(ua = getenv("SURF_USERAGENT")))
ua = useragent;
g_object_set(G_OBJECT(settings), "user-agent", ua, NULL);
@@ -1347,6 +1349,7 @@ setup(void)
cookiefile = buildfile(cookiefile);
scriptfile = buildfile(scriptfile);
cachefolder = buildpath(cachefolder);
+ dbfolder = buildpath(dbfolder);
if (stylefile == NULL) {
styledir = buildpath(styledir);
for (i = 0; i < LENGTH(styles); i++) {