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 17c4223fc2c7163d3bfd5681a8d2467b54d0d4da /git/sacc-sdk/commit/17c4223fc2c7163d3bfd5681a8d2467b54d0d4da.gph codevoid.de 70 1parent ac2976a4ecb900fdfcb86c0eeac1a5f7bd3f6995 /git/sacc-sdk/commit/ac2976a4ecb900fdfcb86c0eeac1a5f7bd3f6995.gph codevoid.de 70 hAuthor: Quentin Rameau URL:mailto:quinq@fifth.space codevoid.de 70 iDate: Thu, 8 Mar 2018 23:51:56 +0100 Err codevoid.de 70 i Err codevoid.de 70 iUse plain tparm instead of variadic tiparm Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M ui_ti.c | 104 ++++++++++++++++---------------- Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 52 insertions(+), 52 deletions(-) Err codevoid.de 70 i--- 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@@ -17,10 +17,6 @@ static char bufout[256]; Err codevoid.de 70 i static struct termios tsave; Err codevoid.de 70 i static struct termios tsacc; Err codevoid.de 70 i static Item *curentry; Err codevoid.de 70 i-#if defined(__NetBSD__) Err codevoid.de 70 i-#undef tparm Err codevoid.de 70 i-#define tparm tiparm Err codevoid.de 70 i-#endif Err codevoid.de 70 i Err codevoid.de 70 i void Err codevoid.de 70 i uisetup(void) Err codevoid.de 70 it@@ -31,18 +27,18 @@ uisetup(void) Err codevoid.de 70 i tcsetattr(0, TCSANOW, &tsacc); Err codevoid.de 70 i Err codevoid.de 70 i setupterm(NULL, 1, NULL); Err codevoid.de 70 i- putp(tparm(clear_screen)); Err codevoid.de 70 i- putp(tparm(save_cursor)); Err codevoid.de 70 i- putp(tparm(change_scroll_region, 0, lines-2)); Err codevoid.de 70 i- putp(tparm(restore_cursor)); Err codevoid.de 70 i+ putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(change_scroll_region, 0, lines-2, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i fflush(stdout); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i void Err codevoid.de 70 i uicleanup(void) Err codevoid.de 70 i { Err codevoid.de 70 i- putp(tparm(change_scroll_region, 0, lines-1)); Err codevoid.de 70 i- putp(tparm(clear_screen)); Err codevoid.de 70 i+ putp(tparm(change_scroll_region, 0, lines-1, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i tcsetattr(0, TCSANOW, &tsave); Err codevoid.de 70 i fflush(stdout); Err codevoid.de 70 i } Err codevoid.de 70 it@@ -55,11 +51,11 @@ uiprompt(char *fmt, ...) Err codevoid.de 70 i size_t n; Err codevoid.de 70 i ssize_t r; Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(save_cursor)); Err codevoid.de 70 i+ putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(cursor_address, lines-1, 0)); Err codevoid.de 70 i- putp(tparm(clr_eol)); Err codevoid.de 70 i- putp(tparm(enter_standout_mode)); Err codevoid.de 70 i+ putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(clr_eol, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i Err codevoid.de 70 i va_start(ap, fmt); Err codevoid.de 70 i if (vsnprintf(bufout, sizeof(bufout), fmt, ap) >= sizeof(bufout)) Err codevoid.de 70 it@@ -67,11 +63,11 @@ uiprompt(char *fmt, ...) Err codevoid.de 70 i va_end(ap); Err codevoid.de 70 i n = mbsprint(bufout, columns); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(exit_standout_mode)); Err codevoid.de 70 i+ putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i if (n < columns) Err codevoid.de 70 i printf("%*s", columns - n, " "); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(cursor_address, lines-1, n)); Err codevoid.de 70 i+ putp(tparm(cursor_address, lines-1, n, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i Err codevoid.de 70 i tsacc.c_lflag |= (ECHO|ICANON); Err codevoid.de 70 i tcsetattr(0, TCSANOW, &tsacc); Err codevoid.de 70 it@@ -82,7 +78,7 @@ uiprompt(char *fmt, ...) Err codevoid.de 70 i Err codevoid.de 70 i tsacc.c_lflag &= ~(ECHO|ICANON); Err codevoid.de 70 i tcsetattr(0, TCSANOW, &tsacc); Err codevoid.de 70 i- putp(tparm(restore_cursor)); Err codevoid.de 70 i+ putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i fflush(stdout); Err codevoid.de 70 i Err codevoid.de 70 i if (r < 0) { Err codevoid.de 70 it@@ -138,10 +134,10 @@ uistatus(char *fmt, ...) Err codevoid.de 70 i va_list ap; Err codevoid.de 70 i size_t n; Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(save_cursor)); Err codevoid.de 70 i+ putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i 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+ putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i Err codevoid.de 70 i va_start(ap, fmt); Err codevoid.de 70 i n = vsnprintf(bufout, sizeof(bufout), fmt, ap); Err codevoid.de 70 it@@ -155,11 +151,11 @@ uistatus(char *fmt, ...) Err codevoid.de 70 i bufout[sizeof(bufout)-1] = '\0'; Err codevoid.de 70 i Err codevoid.de 70 i n = mbsprint(bufout, columns); Err codevoid.de 70 i- putp(tparm(exit_standout_mode)); Err codevoid.de 70 i+ putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i if (n < columns) Err codevoid.de 70 i printf("%*s", columns - n, " "); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(restore_cursor)); Err codevoid.de 70 i+ putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i fflush(stdout); Err codevoid.de 70 i Err codevoid.de 70 i getchar(); Err codevoid.de 70 it@@ -173,10 +169,10 @@ displaystatus(Item *item) Err codevoid.de 70 i size_t n, nitems = dir ? dir->nitems : 0; Err codevoid.de 70 i unsigned long long printoff = dir ? dir->printoff : 0; Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(save_cursor)); Err codevoid.de 70 i+ putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i 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+ putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i fmt = (strcmp(item->port, "70") && strcmp(item->port, "gopher")) ? Err codevoid.de 70 i "%1$3lld%%| %2$s:%5$s/%3$c%4$s" : "%3lld%%| %s/%c%s"; Err codevoid.de 70 i if (snprintf(bufout, sizeof(bufout), fmt, Err codevoid.de 70 it@@ -186,11 +182,11 @@ displaystatus(Item *item) Err codevoid.de 70 i >= sizeof(bufout)) Err codevoid.de 70 i bufout[sizeof(bufout)-1] = '\0'; Err codevoid.de 70 i n = mbsprint(bufout, columns); Err codevoid.de 70 i- putp(tparm(exit_standout_mode)); Err codevoid.de 70 i+ putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i if (n < columns) Err codevoid.de 70 i printf("%*s", columns - n, " "); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(restore_cursor)); Err codevoid.de 70 i+ putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i fflush(stdout); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 it@@ -203,10 +199,10 @@ displayuri(Item *item) Err codevoid.de 70 i if (item->type == 0 || item->type == 'i') Err codevoid.de 70 i return; Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(save_cursor)); Err codevoid.de 70 i+ putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i 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+ putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); 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 it@@ -234,11 +230,11 @@ displayuri(Item *item) Err codevoid.de 70 i bufout[sizeof(bufout)-1] = '\0'; Err codevoid.de 70 i Err codevoid.de 70 i n = mbsprint(bufout, columns); Err codevoid.de 70 i- putp(tparm(exit_standout_mode)); Err codevoid.de 70 i+ putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i if (n < columns) Err codevoid.de 70 i printf("%*s", columns - n, " "); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(restore_cursor)); Err codevoid.de 70 i+ putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i fflush(stdout); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 it@@ -255,13 +251,13 @@ uidisplay(Item *entry) Err codevoid.de 70 i Err codevoid.de 70 i curentry = entry; Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(clear_screen)); Err codevoid.de 70 i+ putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i displaystatus(entry); Err codevoid.de 70 i Err codevoid.de 70 i if (!(dir = entry->dat)) Err codevoid.de 70 i return; Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(save_cursor)); Err codevoid.de 70 i+ putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i Err codevoid.de 70 i items = dir->items; Err codevoid.de 70 i nitems = dir->nitems; Err codevoid.de 70 it@@ -271,18 +267,20 @@ uidisplay(Item *entry) Err codevoid.de 70 i Err codevoid.de 70 i for (i = printoff; i < nitems && i < lastln; ++i) { Err codevoid.de 70 i if (i != printoff) Err codevoid.de 70 i- putp(tparm(cursor_down)); Err codevoid.de 70 i+ putp(tparm(cursor_down, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i if (i == curln) { Err codevoid.de 70 i- putp(tparm(save_cursor)); Err codevoid.de 70 i- putp(tparm(enter_standout_mode)); Err codevoid.de 70 i+ putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(enter_standout_mode, Err codevoid.de 70 i+ 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i } Err codevoid.de 70 i printitem(&items[i]); Err codevoid.de 70 i- putp(tparm(column_address, 0)); Err codevoid.de 70 i+ putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i if (i == curln) Err codevoid.de 70 i- putp(tparm(exit_standout_mode)); Err codevoid.de 70 i+ putp(tparm(exit_standout_mode, Err codevoid.de 70 i+ 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(restore_cursor)); Err codevoid.de 70 i+ putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i fflush(stdout); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 it@@ -308,34 +306,36 @@ movecurline(Item *item, int l) Err codevoid.de 70 i if (l > 0) { Err codevoid.de 70 i offline = dir->printoff + lines-1; Err codevoid.de 70 i if (curline - dir->printoff >= plines / 2 && offline < nitems) { Err codevoid.de 70 i- putp(tparm(save_cursor)); Err codevoid.de 70 i+ putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(cursor_address, plines, 0)); Err codevoid.de 70 i- putp(tparm(scroll_forward)); Err codevoid.de 70 i+ putp(tparm(cursor_address, plines, Err codevoid.de 70 i+ 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(scroll_forward, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i printitem(&dir->items[offline]); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(restore_cursor)); Err codevoid.de 70 i+ putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i dir->printoff += l; Err codevoid.de 70 i } Err codevoid.de 70 i } else { Err codevoid.de 70 i offline = dir->printoff + l; Err codevoid.de 70 i if (curline - offline <= plines / 2 && offline >= 0) { Err codevoid.de 70 i- putp(tparm(save_cursor)); Err codevoid.de 70 i+ putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(cursor_address, 0, 0)); Err codevoid.de 70 i- putp(tparm(scroll_reverse)); Err codevoid.de 70 i+ putp(tparm(cursor_address, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(scroll_reverse, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i printitem(&dir->items[offline]); Err codevoid.de 70 i putchar('\n'); Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(restore_cursor)); Err codevoid.de 70 i+ putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i dir->printoff += l; Err codevoid.de 70 i } Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i- putp(tparm(cursor_address, curline - dir->printoff, 0)); Err codevoid.de 70 i- putp(tparm(enter_standout_mode)); Err codevoid.de 70 i+ putp(tparm(cursor_address, curline - dir->printoff, Err codevoid.de 70 i+ 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i+ putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i printitem(&dir->items[curline]); Err codevoid.de 70 i- putp(tparm(exit_standout_mode)); Err codevoid.de 70 i+ putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i displaystatus(item); Err codevoid.de 70 i fflush(stdout); Err codevoid.de 70 i } Err codevoid.de 70 it@@ -555,7 +555,7 @@ uisigwinch(int signal) Err codevoid.de 70 i Dir *dir; Err codevoid.de 70 i Err codevoid.de 70 i setupterm(NULL, 1, NULL); Err codevoid.de 70 i- putp(tparm(change_scroll_region, 0, lines-2)); Err codevoid.de 70 i+ putp(tparm(change_scroll_region, 0, lines-2, 0, 0, 0, 0, 0, 0, 0)); Err codevoid.de 70 i Err codevoid.de 70 i if (!curentry || !(dir = curentry->dat)) Err codevoid.de 70 i return; Err codevoid.de 70 .