Support relative paths for surf.
authorChristoph Lohmann <20h@r-36.net>
Thu, 14 Mar 2013 18:14:44 +0000 (19:14 +0100)
committerChristoph Lohmann <20h@r-36.net>
Thu, 14 Mar 2013 18:14:44 +0000 (19:14 +0100)
Thanks Kurt Van Dijck <kurt.van.dijck@eia.be>!

surf.c

diff --git a/surf.c b/surf.c
index 830665a..1ad5ace 100644 (file)
--- a/surf.c
+++ b/surf.c
@@ -577,12 +577,13 @@ loaduri(Client *c, const Arg *arg) {
        char *u, *rp;
        const char *uri = (char *)arg->v;
        Arg a = { .b = FALSE };
+       struct stat st;
 
        if(strcmp(uri, "") == 0)
                return;
 
        /* In case it's a file path. */
-       if(uri[0] == '/') {
+       if(stat(uri, &st) == 0) {
                rp = realpath(uri, NULL);
                u = g_strdup_printf("file://%s", rp);
                free(rp);
@@ -889,11 +890,12 @@ processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
                        if(ev->atom == atoms[AtomFind]) {
                                arg.b = TRUE;
                                find(c, &arg);
+
                                return GDK_FILTER_REMOVE;
-                       }
-                       else if(ev->atom == atoms[AtomGo]) {
+                       } else if(ev->atom == atoms[AtomGo]) {
                                arg.v = getatom(c, AtomGo);
                                loaduri(c, &arg);
+
                                return GDK_FILTER_REMOVE;
                        }
                }