X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=surf.c;h=01b6fb1340cec96278c9cf27438951f9467dc5f4;hb=602eb616231b4606ca09dc2f98b1c3d22b8538d5;hp=aa297806dcad4724eba6f35cbe37e580dc80926a;hpb=62dc599a048a773265e094c3da420d0dc91a11e9;p=surf.git diff --git a/surf.c b/surf.c index aa29780..01b6fb1 100644 --- a/surf.c +++ b/surf.c @@ -18,6 +18,7 @@ #include #include #include +#include #define LENGTH(x) (sizeof x / sizeof x[0]) #define CLEANMASK(mask) (mask & ~(GDK_MOD2_MASK)) @@ -306,7 +307,11 @@ find(Client *c, const Arg *arg) { const char * getcookies(SoupURI *uri) { - return NULL; + const char *c; + SoupCookieJar *j = soup_cookie_jar_text_new(cookiefile, TRUE); + c = soup_cookie_jar_get_cookies(j, uri, TRUE); + g_object_unref(j); + return c; } const char * @@ -426,8 +431,7 @@ loadstatuschange(WebKitWebView *view, GParamSpec *pspec, Client *c) { c->progress = 0; update(c); break; - case WEBKIT_LOAD_PROVISIONAL: - case WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT: + default: break; } } @@ -609,7 +613,7 @@ newwindow(Client *c, const Arg *arg) { if(!plugin) cmd[i++] = "-p"; if(!loadimage) - cmd[i++] = "-l"; + cmd[i++] = "-i"; if(showxid) cmd[i++] = "-x"; cmd[i++] = "--"; @@ -700,7 +704,21 @@ scroll(Client *c, const Arg *arg) { void setcookie(SoupCookie *c) { - + int lock; + + lock = open(cookiefile, 0); + flock(lock, LOCK_EX); + SoupDate *e; + SoupCookieJar *j = soup_cookie_jar_text_new(cookiefile, FALSE); + c = soup_cookie_copy(c); + if(c->expires == NULL) { + e = soup_date_new_from_time_t(time(NULL) + sessiontime); + soup_cookie_set_expires(c, e); + } + soup_cookie_jar_add_cookie(j, c); + g_object_unref(j); + flock(lock, LOCK_UN); + close(lock); } void @@ -837,7 +855,7 @@ updatewinid(Client *c) { void usage(void) { fputs("surf - simple browser\n", stderr); - die("usage: surf [-e Window] [-x] [-i] [-p] [-s] [uri]\n"); + die("usage: surf [-e xid] [-i] [-p] [-s] [-v] [-x] [uri]\n"); } void @@ -880,9 +898,6 @@ main(int argc, char *argv[]) { break; } switch(argv[i][1]) { - case 'x': - showxid = TRUE; - break; case 'e': if(++i < argc) embed = atoi(argv[i]); @@ -898,6 +913,9 @@ main(int argc, char *argv[]) { case 's': script = 0; break; + case 'x': + showxid = TRUE; + break; case 'v': die("surf-"VERSION", © 2009 surf engineers, see LICENSE for details\n"); default: