tSurf now can handle absolute file paths. This allows better local HTML reading… | |
git clone git://src.adamsgaard.dk/surf | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 6cd54e4a3119bd201d95f5d67ffb4bfe28aac653 | |
parent ad794e0f00f56065f4e8d7e4cd1e4b8873938993 | |
Author: Christoph Lohmann <[email protected]> | |
Date: Sun, 25 Nov 2012 22:31:46 +0100 | |
Surf now can handle absolute file paths. This allows better local HTML | |
reading. | |
Diffstat: | |
M config.mk | 2 +- | |
M surf.c | 16 +++++++++++++--- | |
2 files changed, 14 insertions(+), 4 deletions(-) | |
--- | |
diff --git a/config.mk b/config.mk | |
t@@ -19,7 +19,7 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${GTKLIB} -lgthread-… | |
-ljavascriptcoregtk-1.0 | |
# flags | |
-CPPFLAGS = -DVERSION=\"${VERSION}\" | |
+CPPFLAGS = -DVERSION=\"${VERSION}\" -D_BSD_SOURCE | |
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} | |
LDFLAGS = -g ${LIBS} | |
diff --git a/surf.c b/surf.c | |
t@@ -13,6 +13,7 @@ | |
#include <sys/types.h> | |
#include <sys/wait.h> | |
#include <unistd.h> | |
+#include <limits.h> | |
#include <stdlib.h> | |
#include <stdio.h> | |
#include <webkit/webkit.h> | |
t@@ -497,14 +498,23 @@ loadstatuschange(WebKitWebView *view, GParamSpec *pspec,… | |
void | |
loaduri(Client *c, const Arg *arg) { | |
- char *u; | |
+ char *u, *rp; | |
const char *uri = (char *)arg->v; | |
Arg a = { .b = FALSE }; | |
if(strcmp(uri, "") == 0) | |
return; | |
- u = g_strrstr(uri, "://") ? g_strdup(uri) | |
- : g_strdup_printf("http://%s", uri); | |
+ | |
+ /* In case it's a file path. */ | |
+ if(uri[0] == '/') { | |
+ rp = realpath(uri, NULL); | |
+ u = g_strdup_printf("file://%s", rp); | |
+ free(rp); | |
+ } else { | |
+ u = g_strrstr(uri, "://") ? g_strdup(uri) | |
+ : g_strdup_printf("http://%s", uri); | |
+ } | |
+ | |
/* prevents endless loop */ | |
if(c->uri && strcmp(u, c->uri) == 0) { | |
reload(c, &a); |