inot re-implementing fputs. - iomenu - interactive terminal-based selection menu Err bitreich.org 70
hgit clone git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu URL:git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu bitreich.org 70
1Log /scm/iomenu/log.gph bitreich.org 70
1Files /scm/iomenu/files.gph bitreich.org 70
1Refs /scm/iomenu/refs.gph bitreich.org 70
1Tags /scm/iomenu/tag bitreich.org 70
1README /scm/iomenu/file/README.gph bitreich.org 70
1LICENSE /scm/iomenu/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit e2db9fd49d5351986d5803604bed7e2680545621 /scm/iomenu/commit/e2db9fd49d5351986d5803604bed7e2680545621.gph bitreich.org 70
1parent 33e51a893ff428e83faf59b5116dde88e3f83c50 /scm/iomenu/commit/33e51a893ff428e83faf59b5116dde88e3f83c50.gph bitreich.org 70
hAuthor: Josuah Demangeon <josuah.demangeon@gandi.net> URL:mailto:josuah.demangeon@gandi.net bitreich.org 70
iDate: Mon, 21 Aug 2017 02:56:50 +0200 Err bitreich.org 70
i Err bitreich.org 70
inot re-implementing fputs. Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M iomenu.c | 45 +++++++++++++------------------ Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 19 insertions(+), 26 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/iomenu.c b/iomenu.c /scm/iomenu/file/iomenu.c.gph bitreich.org 70
i@@ -54,7 +54,7 @@ setterminal(void) Err bitreich.org 70
i struct termios new; Err bitreich.org 70
i Err bitreich.org 70
i /* save cursor postition */ Err bitreich.org 70
i- fputs("\x1b[s", stderr); Err bitreich.org 70
i+ fputs("\033[s", stderr); Err bitreich.org 70
i Err bitreich.org 70
i /* save attributes to `termios` */ Err bitreich.org 70
i if (tcgetattr(ttyfd, &termios) < 0 || tcgetattr(ttyfd, &new) < 0) { Err bitreich.org 70
i@@ -74,10 +74,10 @@ resetterminal(void) Err bitreich.org 70
i Err bitreich.org 70
i /* clear terminal */ Err bitreich.org 70
i for (i = 0; i < opt['l'] + 1; i++) Err bitreich.org 70
i- fputs("\r\x1b[K\n", stderr); Err bitreich.org 70
i+ fputs("\r\033[K\n", stderr); Err bitreich.org 70
i Err bitreich.org 70
i /* reset cursor position */ Err bitreich.org 70
i- fputs("\x1b[u", stderr); Err bitreich.org 70
i+ fputs("\033[u", stderr); Err bitreich.org 70
i Err bitreich.org 70
i /* set terminal back to normal mode */ Err bitreich.org 70
i tcsetattr(ttyfd, TCSANOW, &termios); Err bitreich.org 70
i@@ -151,44 +151,37 @@ printlines(int count) Err bitreich.org 70
i Err bitreich.org 70
i while (printed < count && i < matchc) { Err bitreich.org 70
i Err bitreich.org 70
i- if (opt['#'] && matchv[i][0] == '#') { Err bitreich.org 70
i- char *s = format(matchv[i], ws.ws_col); Err bitreich.org 70
i- fprintf(stderr, "\n\x1b[1m\x1b[K%s\x1b[m", s + 1); Err bitreich.org 70
i+ char *s = format(matchv[i], ws.ws_col - 1); Err bitreich.org 70
i Err bitreich.org 70
i- } else if (i == current) { Err bitreich.org 70
i- char *s = format(matchv[i], ws.ws_col - 3); Err bitreich.org 70
i- fprintf(stderr, "\n\x1b[30;47m\x1b[K %s\x1b[m", s); Err bitreich.org 70
i- Err bitreich.org 70
i- } else { Err bitreich.org 70
i- char *s = format(matchv[i], ws.ws_col - 3); Err bitreich.org 70
i- fprintf(stderr, "\n\x1b[K %s", s); Err bitreich.org 70
i- } Err bitreich.org 70
i+ if (opt['#'] && matchv[i][0] == '#') Err bitreich.org 70
i+ fprintf(stderr, "\n\033[1m\033[K %s\033[m", s); Err bitreich.org 70
i+ else if (i == current) Err bitreich.org 70
i+ fprintf(stderr, "\n\033[30;47m\033[K %s\033[m", s); Err bitreich.org 70
i+ else Err bitreich.org 70
i+ fprintf(stderr, "\n\033[K %s", s); Err bitreich.org 70
i Err bitreich.org 70
i i++; printed++; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i while (printed++ < count) Err bitreich.org 70
i- fputs("\n\x1b[K", stderr); Err bitreich.org 70
i+ fputs("\n\033[K", stderr); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i static void Err bitreich.org 70
i printscreen(void) Err bitreich.org 70
i { Err bitreich.org 70
i- int cols = ws.ws_col - 1, i; Err bitreich.org 70
i+ int cols = ws.ws_col - 1; Err bitreich.org 70
i int count = MIN(opt['l'], ws.ws_row - 1); Err bitreich.org 70
i Err bitreich.org 70
i- fputs("\r\x1b[K", stderr); Err bitreich.org 70
i+ fputs("\r\033[K", stderr); Err bitreich.org 70
i Err bitreich.org 70
i printlines(count); Err bitreich.org 70
i- fprintf(stderr, "\x1b[%dA\r", count); Err bitreich.org 70
i+ fprintf(stderr, "\033[%dA\r", count); Err bitreich.org 70
i Err bitreich.org 70
i if (*prompt) { Err bitreich.org 70
i- format(prompt, cols); Err bitreich.org 70
i- fputs("\x1b[30;47m ", stderr); Err bitreich.org 70
i- for (i = 0; formatted[i]; i++) Err bitreich.org 70
i- fputc(formatted[i], stderr); Err bitreich.org 70
i- fputs(" \x1b[m", stderr); Err bitreich.org 70
i- cols -= strlen(formatted) + 1; Err bitreich.org 70
i+ format(prompt, cols - 2); Err bitreich.org 70
i+ fprintf(stderr, "\033[30;47m %s \033[m", formatted); Err bitreich.org 70
i+ cols -= strlen(formatted) + 2; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i fputc(' ', stderr); Err bitreich.org 70
i@@ -308,7 +301,7 @@ printselection(void) Err bitreich.org 70
i puts(matchv[current]); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i- fputs("\r\x1b[K", stderr); Err bitreich.org 70
i+ fputs("\r\033[K", stderr); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i static int Err bitreich.org 70
i@@ -364,7 +357,7 @@ top: Err bitreich.org 70
i printselection(); Err bitreich.org 70
i return EXIT_SUCCESS; Err bitreich.org 70
i Err bitreich.org 70
i- case 0x1b: /* escape / alt */ Err bitreich.org 70
i+ case 033: /* escape / alt */ Err bitreich.org 70
i key = ALT(fgetc(stdin)); Err bitreich.org 70
i goto top; Err bitreich.org 70
i Err bitreich.org 70
.
Response:
text/plain