sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

surf-history-20181009-2b71a22.diff (3405B)


      1 diff -up surf-2.0/config.def.h surf-2.0-history/config.def.h
      2 --- surf-2.0/config.def.h	2017-11-26 14:29:37.963786915 +0100
      3 +++ surf-2.0-history/config.def.h	2017-11-26 19:48:31.300096237 +0100
      4 @@ -6,6 +6,7 @@ static char *styledir       = "~/.surf/s
      5  static char *certdir        = "~/.surf/certificates/";
      6  static char *cachedir       = "~/.surf/cache/";
      7  static char *cookiefile     = "~/.surf/cookies.txt";
      8 +static char *historyfile    = "~/.surf/history.txt";
      9  
     10  /* Webkit default features */
     11  /* Highest priority value will be used.
     12 @@ -101,6 +102,11 @@ static WebKitFindOptions findopts = WEBK
     13          } \
     14  }
     15  
     16 +#define SETURI(p)       { .v = (char *[]){ "/bin/sh", "-c", \
     17 +"prop=\"`surf_history_dmenu.sh`\" &&" \
     18 +"xprop -id $1 -f $0 8s -set $0 \"$prop\"", \
     19 +p, winid, NULL } }
     20 +
     21  /* styles */
     22  /*
     23   * The iteration will stop at the first match, beginning at the beginning of
     24 @@ -181,6 +187,7 @@ static Key keys[] = {
     25  	{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_b,      toggle,     { .i = ScrollBars } },
     26  	{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_t,      toggle,     { .i = StrictTLS } },
     27  	{ MODKEY|GDK_SHIFT_MASK, GDK_KEY_m,      toggle,     { .i = Style } },
     28 +    { MODKEY               , GDK_KEY_Return, spawn,      SETURI("_SURF_GO") },
     29  };
     30  
     31  /* button definitions */
     32 Only in surf-2.0-history/: config.h
     33 Only in surf-2.0: .git
     34 Only in surf-2.0-history/: surf
     35 diff -up surf-2.0/surf.c surf-2.0-history/surf.c
     36 --- surf-2.0/surf.c	2017-11-26 14:29:37.963786915 +0100
     37 +++ surf-2.0-history/surf.c	2017-11-26 14:20:36.757100476 +0100
     38 @@ -171,6 +171,7 @@ static void newwindow(Client *c, const A
     39  static void spawn(Client *c, const Arg *a);
     40  static void destroyclient(Client *c);
     41  static void cleanup(void);
     42 +static void updatehistory(const char *u, const char *t);
     43  
     44  /* GTK/WebKit */
     45  static WebKitWebView *newview(Client *c, WebKitWebView *rv);
     46 @@ -336,10 +337,11 @@ setup(void)
     47  	curconfig = defconfig;
     48  
     49  	/* dirs and files */
     50 -	cookiefile = buildfile(cookiefile);
     51 -	scriptfile = buildfile(scriptfile);
     52 -	cachedir   = buildpath(cachedir);
     53 -	certdir    = buildpath(certdir);
     54 +	cookiefile  = buildfile(cookiefile);
     55 +	historyfile = buildfile(historyfile);
     56 +	scriptfile  = buildfile(scriptfile);
     57 +	cachedir    = buildpath(cachedir);
     58 +	certdir     = buildpath(certdir);
     59  
     60  	gdkkb = gdk_seat_get_keyboard(gdk_display_get_default_seat(gdpy));
     61  
     62 @@ -1042,12 +1044,28 @@ cleanup(void)
     63  	while (clients)
     64  		destroyclient(clients);
     65  	g_free(cookiefile);
     66 +	g_free(historyfile);
     67  	g_free(scriptfile);
     68  	g_free(stylefile);
     69  	g_free(cachedir);
     70  	XCloseDisplay(dpy);
     71  }
     72  
     73 +void
     74 +updatehistory(const char *u, const char *t)
     75 +{
     76 +	FILE *f;
     77 +	f = fopen(historyfile, "a+");
     78 +
     79 +	char b[20];
     80 +	time_t now = time (0);
     81 +	strftime (b, 20, "%Y-%m-%d %H:%M:%S", localtime (&now));
     82 +	fputs(b, f);
     83 +
     84 +	fprintf(f, " %s %s\n", u, t);
     85 +	fclose(f);
     86 +}
     87 +
     88  WebKitWebView *
     89  newview(Client *c, WebKitWebView *rv)
     90  {
     91 @@ -1417,6 +1435,7 @@ loadfailedtls(WebKitWebView *v, gchar *u
     92  	return TRUE;
     93  }
     94  
     95 +
     96  void
     97  loadchanged(WebKitWebView *v, WebKitLoadEvent e, Client *c)
     98  {
     99 @@ -1445,6 +1464,7 @@ loadchanged(WebKitWebView *v, WebKitLoad
    100  		break;
    101  	case WEBKIT_LOAD_FINISHED:
    102  		seturiparameters(c, uri, loadfinished);
    103 +		updatehistory(uri, c->title);
    104  		/* Disabled until we write some WebKitWebExtension for
    105  		 * manipulating the DOM directly.
    106  		evalscript(c, "document.documentElement.style.overflow = '%s'",
    107 Only in surf-2.0-history/: surf.o