| 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); |