Introduction
Introduction Statistics Contact Development Disclaimer Help
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] == '-')
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.