it* sacc + cursorline and uri preview Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/sacc-sdk URL:git://git.codevoid.de/sacc-sdk codevoid.de 70 1Log /git/sacc-sdk/log.gph codevoid.de 70 1Files /git/sacc-sdk/files.gph codevoid.de 70 1Refs /git/sacc-sdk/refs.gph codevoid.de 70 1LICENSE /git/sacc-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit 7496bf49839480d471dfc83a0aa7389b4a157e51 /git/sacc-sdk/commit/7496bf49839480d471dfc83a0aa7389b4a157e51.gph codevoid.de 70 1parent 27ac9eb2a020670143ff63e4de1508f5c9b44941 /git/sacc-sdk/commit/27ac9eb2a020670143ff63e4de1508f5c9b44941.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Thu, 20 Dec 2018 09:00:18 +0100 Err codevoid.de 70 i Err codevoid.de 70 iUpdate 2018-12-20 09:00 Linux/x86_64 Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i A config.h | 27 +++++++++++++++++++++++++++ Err codevoid.de 70 i M sacc.c | 23 +++++++++++++++++++++-- Err codevoid.de 70 i M ui_ti.c | 4 ++-- Err codevoid.de 70 i Err codevoid.de 70 i3 files changed, 50 insertions(+), 4 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/config.h b/config.h /git/sacc-sdk/file/config.h.gph codevoid.de 70 it@@ -0,0 +1,27 @@ Err codevoid.de 70 i+/* See LICENSE file for copyright and license details. */ Err codevoid.de 70 i+ Err codevoid.de 70 i+/* Screen UI navigation keys */ Err codevoid.de 70 i+#define _key_lndown 'j' /* move one line down */ Err codevoid.de 70 i+#define _key_entrydown 'J' /* move to next link */ Err codevoid.de 70 i+#define _key_lnup 'k' /* move one line up */ Err codevoid.de 70 i+#define _key_entryup 'K' /* move to previous link */ Err codevoid.de 70 i+#define _key_pgdown ' ' /* move one screen down */ Err codevoid.de 70 i+#define _key_pgup 'b' /* move one screen up */ Err codevoid.de 70 i+#define _key_home 'g' /* move to the top of page */ Err codevoid.de 70 i+#define _key_end 'G' /* move to the bottom of page */ Err codevoid.de 70 i+#define _key_pgnext 'l' /* view highlighted item */ Err codevoid.de 70 i+#define _key_pgprev 'h' /* view previous item */ Err codevoid.de 70 i+#define _key_uri 'u' /* print item uri */ Err codevoid.de 70 i+#define _key_fetch 'L' /* refetch current item */ Err codevoid.de 70 i+#define _key_help '?' /* display help */ Err codevoid.de 70 i+#define _key_quit 'q' /* exit sacc */ Err codevoid.de 70 i+#define _key_search '/' /* search */ Err codevoid.de 70 i+#define _key_searchnext 'n' /* search same string forward */ Err codevoid.de 70 i+#define _key_searchprev 'N' /* search same string backward */ Err codevoid.de 70 i+ Err codevoid.de 70 i+/* default plumber */ Err codevoid.de 70 i+static char *plumber = "rifle"; Err codevoid.de 70 i+static char *browser = "/usr/local/bin/luakit"; Err codevoid.de 70 i+ Err codevoid.de 70 i+/* temporary directory */ Err codevoid.de 70 i+static char *tmpdir = "/tmp/sacc"; Err codevoid.de 70 1diff --git a/sacc.c b/sacc.c /git/sacc-sdk/file/sacc.c.gph codevoid.de 70 it@@ -591,6 +591,24 @@ fetchitem(Item *item) Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i static void Err codevoid.de 70 i+browse(char *url) Err codevoid.de 70 i+{ Err codevoid.de 70 i+ switch (fork()) { Err codevoid.de 70 i+ case -1: Err codevoid.de 70 i+ diag("Couldn't fork."); Err codevoid.de 70 i+ return; Err codevoid.de 70 i+ case 0: Err codevoid.de 70 i+ parent = 0; Err codevoid.de 70 i+ dup2(devnullfd, 1); Err codevoid.de 70 i+ dup2(devnullfd, 2); Err codevoid.de 70 i+ if (execlp(browser,browser, url, NULL) < 0) Err codevoid.de 70 i+ _exit(1); Err codevoid.de 70 i+ } Err codevoid.de 70 i+ Err codevoid.de 70 i+ diag("Browsed \"%s\"", url); Err codevoid.de 70 i+} Err codevoid.de 70 i+ Err codevoid.de 70 i+static void Err codevoid.de 70 i plumb(char *url) Err codevoid.de 70 i { Err codevoid.de 70 i switch (fork()) { Err codevoid.de 70 it@@ -622,6 +640,7 @@ plumbitem(Item *item) Err codevoid.de 70 i Err codevoid.de 70 i path = uiprompt("Download %s to (^D cancel, plumb): ", Err codevoid.de 70 i file); Err codevoid.de 70 i+ Err codevoid.de 70 i if (!path) Err codevoid.de 70 i return; Err codevoid.de 70 i Err codevoid.de 70 it@@ -679,7 +698,7 @@ dig(Item *entry, Item *item) Err codevoid.de 70 i switch (t) { Err codevoid.de 70 i case 'h': /* fallthrough */ Err codevoid.de 70 i if (!strncmp(item->selector, "URL:", 4)) { Err codevoid.de 70 i- plumb(item->selector+4); Err codevoid.de 70 i+ browse(item->selector+4); Err codevoid.de 70 i return 0; Err codevoid.de 70 i } Err codevoid.de 70 i case '0': Err codevoid.de 70 it@@ -956,7 +975,7 @@ setup(void) Err codevoid.de 70 i sigemptyset(&sa.sa_mask); Err codevoid.de 70 i sa.sa_flags = SA_RESTART; Err codevoid.de 70 i sa.sa_handler = exit; Err codevoid.de 70 i- sigaction(SIGINT, &sa, NULL); Err codevoid.de 70 i+ sigaction(SIGINT|SIGHUP, &sa, NULL); Err codevoid.de 70 i Err codevoid.de 70 i if (mkdir(tmpdir, S_IRWXU) < 0 && errno != EEXIST) Err codevoid.de 70 i die("mkdir: %s: %s", tmpdir, strerror(errno)); Err codevoid.de 70 1diff --git a/ui_ti.c b/ui_ti.c /git/sacc-sdk/file/ui_ti.c.gph codevoid.de 70 it@@ -212,8 +212,8 @@ displayuri(Item *item) Err codevoid.de 70 i item->selector, item->host, item->port); Err codevoid.de 70 i break; Err codevoid.de 70 i case 'h': Err codevoid.de 70 i- n = snprintf(bufout, sizeof(bufout), "%s: %s", Err codevoid.de 70 i- item->username, item->selector); Err codevoid.de 70 i+ n = snprintf(bufout, sizeof(bufout), "%s", Err codevoid.de 70 i+ (item->selector + 4)); Err codevoid.de 70 i break; Err codevoid.de 70 i case 'T': Err codevoid.de 70 i n = snprintf(bufout, sizeof(bufout), "tn3270://%s@%s:%s", Err codevoid.de 70 .