surf-history-20181009-2b71a22.diff - sites - public wiki contents of suckless.o… | |
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 +… | |
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 beginni… | |
24 @@ -181,6 +187,7 @@ static Key keys[] = { | |
25 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_b, toggle, { .i = Scr… | |
26 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_t, toggle, { .i = Str… | |
27 { MODKEY|GDK_SHIFT_MASK, GDK_KEY_m, toggle, { .i = Sty… | |
28 + { MODKEY , GDK_KEY_Return, spawn, SETURI("_SURF_… | |
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 … | |
107 Only in surf-2.0-history/: surf.o |