allow setting surf adblock file using env - surf-adblock - Surf adblock web extension (HTM) git clone git://git.codemadness.org/surf-adblock (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit f34202b8786c190d5935210e0289123943239730 (DIR) parent 3217c9e3ead5b5cf40df1e624e8475d93574ae1e (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org> Date: Sat, 16 Jul 2016 12:19:28 +0200 allow setting surf adblock file using env Diffstat: M surf-adblock.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) --- (DIR) diff --git a/surf-adblock.c b/surf-adblock.c @@ -784,23 +784,28 @@ webpagecreated(WebKitWebExtension *e, WebKitWebPage *p, gpointer unused) } G_MODULE_EXPORT void -webkit_web_extension_initialize(WebKitWebExtension *e) +webkit_web_extension_initialize(WebKitWebExtension *ext) { struct filterrule *r; FILE *fp; - char filepath[PATH_MAX], *home; + char filepath[PATH_MAX], *e; int n; - home = getenv("HOME"); - n = snprintf(filepath, sizeof(filepath), "%s%s.surf/adblockrules", - home ? home : "", home ? "/" : ""); + if ((e = getenv("SURF_ADBLOCK_FILE"))) { + n = snprintf(filepath, sizeof(filepath), "%s", e); + } else { + if (!(e = getenv("HOME"))) + e = ""; + n = snprintf(filepath, sizeof(filepath), "%s%s.surf/adblockrules", + e, e[0] && e[strlen(e) - 1] != '/' ? "/" : ""); + } if (n < 0 || (size_t)n >= sizeof(filepath)) { fprintf(stderr, "fatal: path too long, truncated\n"); return; } if (!(fp = fopen(filepath, "r"))) { - fprintf(stderr, "fatal: cannot read rules file: %s: %s\n", + fprintf(stderr, "fatal: cannot read rules from file: %s: %s\n", filepath, strerror(errno)); return; } @@ -820,6 +825,6 @@ webkit_web_extension_initialize(WebKitWebExtension *e) string_append(&globalcss, STRP("{display:none;}")); } - g_signal_connect(e, "page-created", + g_signal_connect(ext, "page-created", G_CALLBACK(webpagecreated), NULL); }