X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=surf.c;h=1ec4c62642a9ec0d207d04b4debe4cb95a374a01;hb=127dc366efeda9afc6086be67b60979af1d71205;hp=ba0195825c139be07b40141723ae6a56d898a954;hpb=4b623bd28ae1ffdecdbc62f68b90340311ad5adc;p=surf.git diff --git a/surf.c b/surf.c index ba01958..1ec4c62 100644 --- a/surf.c +++ b/surf.c @@ -656,7 +656,7 @@ loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c) { static void loaduri(Client *c, const Arg *arg) { - char *u, *rp; + char *u = NULL, *rp; const char *uri = (char *)arg->v; Arg a = { .b = FALSE }; struct stat st; @@ -683,9 +683,10 @@ loaduri(Client *c, const Arg *arg) { webkit_web_view_load_uri(c->view, u); c->progress = 0; c->title = copystr(&c->title, u); - g_free(u); updatetitle(c); } + if(u != NULL) + g_free(u); } static void @@ -707,6 +708,9 @@ newclient(void) { if(!(c = calloc(1, sizeof(Client)))) die("Cannot malloc!\n"); + c->title = NULL; + c->progress = 100; + /* Window */ if(embed) { c->win = gtk_plug_new(embed); @@ -890,7 +894,6 @@ newclient(void) { if(hidebackground) webkit_web_view_set_transparent(c->view, TRUE); - c->title = NULL; c->next = clients; clients = c; @@ -1335,16 +1338,18 @@ updatetitle(Client *c) { pagestat, c->linkhover); } else if(c->progress != 100) { t = g_strdup_printf("[%i%%] %s:%s | %s", c->progress, - togglestat, pagestat, c->title); + togglestat, pagestat, + (c->title == NULL)? "" : c->title); } else { t = g_strdup_printf("%s:%s | %s", togglestat, pagestat, - c->title); + (c->title == NULL)? "" : c->title); } gtk_window_set_title(GTK_WINDOW(c->win), t); g_free(t); } else { - gtk_window_set_title(GTK_WINDOW(c->win), c->title); + gtk_window_set_title(GTK_WINDOW(c->win), + (c->title == NULL)? "" : c->title); } } @@ -1388,6 +1393,7 @@ zoom(Client *c, const Arg *arg) { int main(int argc, char *argv[]) { Arg arg; + Client *c; memset(&arg, 0, sizeof(arg)); @@ -1460,7 +1466,7 @@ main(int argc, char *argv[]) { useragent = EARGF(usage()); break; case 'v': - die("surf-"VERSION", ©2009-2012 surf engineers, " + die("surf-"VERSION", ©2009-2014 surf engineers, " "see LICENSE for details\n"); case 'x': showxid = TRUE; @@ -1475,9 +1481,12 @@ main(int argc, char *argv[]) { arg.v = argv[0]; setup(); - newclient(); - if(arg.v) + c = newclient(); + if(arg.v) { loaduri(clients, &arg); + } else { + updatetitle(c); + } gtk_main(); cleanup();