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 b9d624f390dec6bfa114e5c46292ab2ee4e0ece7 /git/sacc-sdk/commit/b9d624f390dec6bfa114e5c46292ab2ee4e0ece7.gph codevoid.de 70 1parent ddf996b8f35253bbb2509bff03e5c4e7cc056010 /git/sacc-sdk/commit/ddf996b8f35253bbb2509bff03e5c4e7cc056010.gph codevoid.de 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net codevoid.de 70 iDate: Fri, 23 Feb 2018 14:45:06 +0100 Err codevoid.de 70 i Err codevoid.de 70 iAdd telnet:// and tn3270:// support. Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M sacc.c | 23 +++++++++++++++++++++++ Err codevoid.de 70 i M ui_ti.c | 8 ++++++++ Err codevoid.de 70 i M ui_txt.c | 8 ++++++++ Err codevoid.de 70 i Err codevoid.de 70 i3 files changed, 39 insertions(+), 0 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/sacc.c b/sacc.c /git/sacc-sdk/file/sacc.c.gph codevoid.de 70 it@@ -590,6 +590,8 @@ cleanup: Err codevoid.de 70 i static int Err codevoid.de 70 i dig(Item *entry, Item *item) Err codevoid.de 70 i { Err codevoid.de 70 i+ char *plumburi = NULL; Err codevoid.de 70 i+ Err codevoid.de 70 i if (item->raw) /* already in cache */ Err codevoid.de 70 i return item->type; Err codevoid.de 70 i if (!item->entry) Err codevoid.de 70 it@@ -617,7 +619,24 @@ dig(Item *entry, Item *item) Err codevoid.de 70 i case '9': Err codevoid.de 70 i downloaditem(item); Err codevoid.de 70 i return 0; Err codevoid.de 70 i+ case 'T': Err codevoid.de 70 i+ if (asprintf(&plumburi, "tn3270://%s@%s:%s", item->selector, Err codevoid.de 70 i+ item->host, item->port) < 0) { Err codevoid.de 70 i+ return 0; Err codevoid.de 70 i+ } Err codevoid.de 70 i+ plumb(plumburi); Err codevoid.de 70 i+ free(plumburi); Err codevoid.de 70 i+ return 0; Err codevoid.de 70 i+ case '8': Err codevoid.de 70 i+ if (asprintf(&plumburi, "telnet://%s@%s:%s", item->selector, Err codevoid.de 70 i+ item->host, item->port) < 0) { Err codevoid.de 70 i+ return 0; Err codevoid.de 70 i+ } Err codevoid.de 70 i+ plumb(plumburi); Err codevoid.de 70 i+ free(plumburi); Err codevoid.de 70 i+ return 0; Err codevoid.de 70 i case 'g': Err codevoid.de 70 i+ return 0; Err codevoid.de 70 i case 'I': Err codevoid.de 70 i plumbitem(item); Err codevoid.de 70 i return 0; Err codevoid.de 70 it@@ -675,6 +694,8 @@ searchitem(Item *entry, Item *item) Err codevoid.de 70 i static void Err codevoid.de 70 i printout(Item *hole) Err codevoid.de 70 i { Err codevoid.de 70 i+ char *printuri = NULL; Err codevoid.de 70 i+ Err codevoid.de 70 i if (!hole) Err codevoid.de 70 i return; Err codevoid.de 70 i Err codevoid.de 70 it@@ -716,9 +737,11 @@ delve(Item *hole) Err codevoid.de 70 i case '4': Err codevoid.de 70 i case '5': Err codevoid.de 70 i case '6': /* TODO decode? */ Err codevoid.de 70 i+ case '8': Err codevoid.de 70 i case '9': Err codevoid.de 70 i case 'g': Err codevoid.de 70 i case 'I': Err codevoid.de 70 i+ case 'T': Err codevoid.de 70 i dig(entry, hole); Err codevoid.de 70 i break; Err codevoid.de 70 i case 0: 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@@ -208,10 +208,18 @@ displayuri(Item *item) Err codevoid.de 70 i putp(tparm(cursor_address, lines-1, 0)); Err codevoid.de 70 i putp(tparm(enter_standout_mode)); Err codevoid.de 70 i switch (item->type) { Err codevoid.de 70 i+ case '8': Err codevoid.de 70 i+ n = snprintf(bufout, sizeof(bufout), "telnet://%s@%s:%s", 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 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 i+ item->selector, item->host, item->port); Err codevoid.de 70 i+ break; Err codevoid.de 70 i default: Err codevoid.de 70 i fmt = strcmp(item->port, "70") ? Err codevoid.de 70 i "%1$s: gopher://%2$s:%5$s/%3$c%4$s" : Err codevoid.de 70 1diff --git a/ui_txt.c b/ui_txt.c /git/sacc-sdk/file/ui_txt.c.gph codevoid.de 70 it@@ -181,6 +181,10 @@ printuri(Item *item, size_t i) Err codevoid.de 70 i switch (item->type) { Err codevoid.de 70 i case 0: Err codevoid.de 70 i return; Err codevoid.de 70 i+ case '8': Err codevoid.de 70 i+ n = snprintf(bufout, sizeof(bufout), "telnet://%s@%s:%s", Err codevoid.de 70 i+ item->selector, item->host, item->port); Err codevoid.de 70 i+ break; Err codevoid.de 70 i case 'i': Err codevoid.de 70 i n = snprintf(bufout, sizeof(bufout), "%zu: %s", Err codevoid.de 70 i i, item->username); Err codevoid.de 70 it@@ -189,6 +193,10 @@ printuri(Item *item, size_t i) Err codevoid.de 70 i n = snprintf(bufout, sizeof(bufout), "%zu: %s: %s", Err codevoid.de 70 i i, item->username, item->selector); 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 i+ item->selector, item->host, item->port); Err codevoid.de 70 i+ break; Err codevoid.de 70 i default: Err codevoid.de 70 i fmt = strcmp(item->port, "70") ? Err codevoid.de 70 i "%1$zu: %2$s: gopher://%3$s:%6$s/%4$c%5$s" : Err codevoid.de 70 .