tmaking config-files configurable in config.h - surf - customized build of surf… | |
git clone git://src.adamsgaard.dk/surf | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 0d28cf745823b8c188d169bc23a1131479ccfec6 | |
parent 92cb8792e17e7f0c61131da3be1bddda5375bc47 | |
Author: Enno Boland (tox) <[email protected]> | |
Date: Tue, 13 Oct 2009 21:52:43 +0200 | |
making config-files configurable in config.h | |
Diffstat: | |
M config.def.h | 4 ++++ | |
M surf.c | 74 ++++++++++++++++++-----------… | |
2 files changed, 46 insertions(+), 32 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -1,6 +1,10 @@ | |
/* modifier 0 means no modifier */ | |
static gchar *progress = "#FF0000"; | |
static gchar *progress_trust = "#00FF00"; | |
+static gchar *stylefile = ".surf/style.css"; | |
+static gchar *scriptfile = ".surf/script.js"; | |
+static gchar *cookiefile = ".surf/cookie.txt"; | |
+static gchar *dldir = ".surf/dl"; | |
#define MODKEY GDK_CONTROL_MASK | |
static Key keys[] = { | |
/* modifier keyval function arg Foc… | |
diff --git a/surf.c b/surf.c | |
t@@ -67,8 +67,8 @@ static Client *clients = NULL; | |
static GdkNativeWindow embed = 0; | |
static gboolean showxid = FALSE; | |
static gboolean ignore_once = FALSE; | |
-static gchar *workdir; | |
+static gchar *buildpath(const gchar *path); | |
static void cleanup(void); | |
static void clipboard(Client *c, const Arg *arg); | |
static gchar *copystr(gchar **str, const gchar *src); | |
t@@ -118,11 +118,35 @@ static void zoom(Client *c, const Arg *arg); | |
/* configuration, allows nested code to access above variables */ | |
#include "config.h" | |
+gchar * | |
+buildpath(const gchar *path) { | |
+ gchar *apath, *p; | |
+ FILE *f; | |
+ | |
+ /* creating directory */ | |
+ if(path[0] == '/') | |
+ apath = g_strdup(path); | |
+ else | |
+ apath = g_strconcat(g_get_home_dir(), "/", path, NULL); | |
+ if((p = strrchr(apath, '/'))) { | |
+ *p = '\0'; | |
+ g_mkdir_with_parents(apath, 0755); | |
+ *p = '/'; | |
+ } | |
+ /* creating file (gives error when apath ends with "/") */ | |
+ if((f = g_fopen(apath, "a"))) | |
+ fclose(f); | |
+ puts(apath); | |
+ return apath; | |
+} | |
+ | |
void | |
cleanup(void) { | |
while(clients) | |
destroyclient(clients); | |
- g_free(workdir); | |
+ g_free(stylefile); | |
+ g_free(scriptfile); | |
+ g_free(dldir); | |
} | |
void | |
t@@ -221,14 +245,12 @@ download(WebKitDownload *o, GParamSpec *pspec, Client *c… | |
gboolean | |
initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) { | |
const gchar *filename; | |
- gchar *uri, *path, *html; | |
+ gchar *uri, *html; | |
stop(c, NULL); | |
c->download = o; | |
filename = webkit_download_get_suggested_filename(o); | |
- path = g_build_filename(workdir, "dl", | |
- filename, NULL); | |
- uri = g_strconcat("file://", path, NULL); | |
+ uri = g_strconcat("file://", dldir, "/", filename, NULL); | |
webkit_download_set_destination_uri(c->download, uri); | |
c->progress = 0; | |
g_free(uri); | |
t@@ -374,7 +396,7 @@ Client * | |
newclient(void) { | |
Client *c; | |
WebKitWebSettings *settings; | |
- gchar *filename; | |
+ gchar *uri; | |
if(!(c = calloc(1, sizeof(Client)))) | |
die("Cannot malloc!\n"); | |
t@@ -452,9 +474,9 @@ newclient(void) { | |
webkit_web_view_set_full_content_zoom(c->view, TRUE); | |
settings = webkit_web_view_get_settings(c->view); | |
g_object_set(G_OBJECT(settings), "user-agent", "surf", NULL); | |
- filename = g_build_filename(workdir, "style.css", NULL); | |
- filename = g_strdup_printf("file://%s", filename); | |
- g_object_set(G_OBJECT(settings), "user-stylesheet-uri", filename, NULL… | |
+ uri = g_strconcat("file://", stylefile, NULL); | |
+ g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, NULL); | |
+ g_free(uri); | |
c->download = NULL; | |
c->title = NULL; | |
t@@ -553,9 +575,6 @@ reload(Client *c, const Arg *arg) { | |
void | |
rereadcookies(void) { | |
- const gchar *filename; | |
- | |
- filename = g_build_filename(workdir, "cookies", NULL); | |
} | |
void | |
t@@ -578,9 +597,7 @@ setcookie(char *name, char *val, char *dom, char *path, lo… | |
void | |
setup(void) { | |
- const gchar *home, *name; | |
SoupSession *s; | |
- FILE *tmp; | |
gtk_init(NULL, NULL); | |
if (!g_thread_supported()) | |
t@@ -591,22 +608,14 @@ setup(void) { | |
urlprop = XInternAtom(dpy, "_SURF_URL", False); | |
/* create dirs and files */ | |
- home = g_get_home_dir(); | |
- workdir = g_strdup(g_build_filename(home, ".surf", NULL)); | |
- g_mkdir_with_parents(workdir, 0755); | |
- name = g_build_filename(workdir, "dl", NULL); | |
- g_mkdir(name, 0755); | |
- name = g_build_filename(workdir, "style.css", NULL); | |
- if((tmp = g_fopen(name, "a"))); | |
- fclose(tmp); | |
- name = g_build_filename(workdir, "script.js", NULL); | |
- if((tmp = g_fopen(name, "a"))); | |
- fclose(tmp); | |
+ cookiefile = buildpath(cookiefile); | |
+ dldir = buildpath(dldir); | |
+ scriptfile = buildpath(scriptfile); | |
+ stylefile = buildpath(stylefile); | |
/* cookie persistance */ | |
s = webkit_get_default_session(); | |
- name = g_build_filename(workdir, "cookies.txt", NULL); | |
- cookiejar = soup_cookie_jar_text_new(name, FALSE); | |
+ cookiejar = soup_cookie_jar_text_new(cookiefile, FALSE); | |
soup_session_add_feature(s, SOUP_SESSION_FEATURE(cookiejar)); | |
} | |
t@@ -693,14 +702,13 @@ update(Client *c) { | |
void | |
windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame, JSContextRef js, JSOb… | |
JSStringRef jsscript; | |
- gchar *script, *filename; | |
+ gchar *script; | |
JSValueRef exception = NULL; | |
GError *error; | |
- filename = g_build_filename(workdir, "script.js", NULL); | |
- if(g_file_get_contents(filename, &script, NULL, &error)) { | |
+ if(g_file_get_contents(scriptfile, &script, NULL, &error)) { | |
jsscript = JSStringCreateWithUTF8CString(script); | |
- JSEvaluateScript (js, jsscript, JSContextGetGlobalObject(js), … | |
+ JSEvaluateScript(js, jsscript, JSContextGetGlobalObject(js), N… | |
} | |
} | |
t@@ -729,6 +737,8 @@ int main(int argc, char *argv[]) { | |
else | |
usage(); | |
} | |
+ else if(!strcmp(argv[i], "--")) | |
+ break; | |
else if(!strcmp(argv[i], "-v")) | |
die("surf-"VERSION", © 2009 surf engineers, see LICEN… | |
else if(argv[i][0] == '-') |