iiomenu.c: rawer raw mode and 0x1b rather than 033 - 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 e24cea688e69bd009ef52ea40891a0a386b881ea /scm/iomenu/commit/e24cea688e69bd009ef52ea40891a0a386b881ea.gph bitreich.org 70 1parent 84dbca0112c08a49515d4bd94a37a6c859e19a7f /scm/iomenu/commit/84dbca0112c08a49515d4bd94a37a6c859e19a7f.gph bitreich.org 70 hAuthor: Josuah Demangeon URL:mailto:mail@josuah.net bitreich.org 70 iDate: Sun, 29 Oct 2017 21:17:44 +0100 Err bitreich.org 70 i Err bitreich.org 70 iiomenu.c: rawer raw mode and 0x1b rather than 033 Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M iomenu.c | 32 ++++++++++++++++---------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 16 insertions(+), 16 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@@ -101,7 +101,7 @@ set_terminal(void) Err bitreich.org 70 i struct termios new; Err bitreich.org 70 i Err bitreich.org 70 i /* save currentsor postition */ Err bitreich.org 70 i- fputs("\033[s", stderr); Err bitreich.org 70 i+ fputs("\x1b[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@@ -110,7 +110,7 @@ set_terminal(void) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i /* change to raw mode */ Err bitreich.org 70 i- new.c_lflag &= ~(ICANON | ECHO | IGNBRK); Err bitreich.org 70 i+ new.c_lflag &= ~(ICANON | ECHO | IGNBRK | IEXTEN | ISIG); Err bitreich.org 70 i tcsetattr(ttyfd, TCSANOW, &new); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -121,10 +121,10 @@ reset_terminal(void) Err bitreich.org 70 i Err bitreich.org 70 i /* clear terminal */ Err bitreich.org 70 i for (i = 0; i < rows + 1; i++) Err bitreich.org 70 i- fputs("\r\033[K\n", stderr); Err bitreich.org 70 i+ fputs("\r\x1b[K\n", stderr); Err bitreich.org 70 i Err bitreich.org 70 i /* reset currentsor position */ Err bitreich.org 70 i- fputs("\033[u", stderr); Err bitreich.org 70 i+ fputs("\x1b[u", stderr); Err bitreich.org 70 i Err bitreich.org 70 i tcsetattr(ttyfd, TCSANOW, &termios); Err bitreich.org 70 i } Err bitreich.org 70 i@@ -241,16 +241,16 @@ print_lines(void) Err bitreich.org 70 i for (; printed < rows && i < matchc; i++, printed++) { Err bitreich.org 70 i fprintf(stderr, Err bitreich.org 70 i opt['#'] && matchv[i][0] == '#' ? Err bitreich.org 70 i- "\n\033[1m\033[K %s\033[m" : Err bitreich.org 70 i+ "\n\x1b[1m\x1b[K %s\x1b[m" : Err bitreich.org 70 i i == current ? Err bitreich.org 70 i- "\n\033[47;30m\033[K %s\033[m" : Err bitreich.org 70 i- "\n\033[K %s", Err bitreich.org 70 i+ "\n\x1b[47;30m\x1b[K %s\x1b[m" : Err bitreich.org 70 i+ "\n\x1b[K %s", Err bitreich.org 70 i format(matchv[i], ws.ws_col - 1) Err bitreich.org 70 i ); Err bitreich.org 70 i } Err bitreich.org 70 i while (printed++ < rows) Err bitreich.org 70 i- fputs("\n\033[K", stderr); Err bitreich.org 70 i- fprintf(stderr, "\033[%dA\r\033[K", rows); Err bitreich.org 70 i+ fputs("\n\x1b[K", stderr); Err bitreich.org 70 i+ fprintf(stderr, "\x1b[%dA\r\x1b[K", rows); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i static void Err bitreich.org 70 i@@ -265,17 +265,17 @@ print_segments(void) Err bitreich.org 70 i offset = next; Err bitreich.org 70 i next = next_page(offset); Err bitreich.org 70 i } Err bitreich.org 70 i- fprintf(stderr, "\r\033[K\033[%dC", MARGIN); Err bitreich.org 70 i+ fprintf(stderr, "\r\x1b[K\x1b[%dC", MARGIN); Err bitreich.org 70 i fputs(offset > 0 ? "< " : " ", stderr); Err bitreich.org 70 i for (i = offset; i < next && i < matchc; i++) { Err bitreich.org 70 i fprintf(stderr, Err bitreich.org 70 i- opt['#'] && matchv[i][0] == '#' ? "\033[1m %s \033[m" : Err bitreich.org 70 i- i == current ? "\033[7m %s \033[m" : " %s ", Err bitreich.org 70 i+ opt['#'] && matchv[i][0] == '#' ? "\x1b[1m %s \x1b[m" : Err bitreich.org 70 i+ i == current ? "\x1b[7m %s \x1b[m" : " %s ", Err bitreich.org 70 i format(matchv[i], ws.ws_col - 1) Err bitreich.org 70 i ); Err bitreich.org 70 i } Err bitreich.org 70 i if (next < matchc) Err bitreich.org 70 i- fprintf(stderr, "\033[%dC\b>", ws.ws_col - MARGIN); Err bitreich.org 70 i+ fprintf(stderr, "\x1b[%dC\b>", ws.ws_col - MARGIN); Err bitreich.org 70 i fputc('\r', stderr); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -290,7 +290,7 @@ print_screen(void) Err bitreich.org 70 i print_segments(); Err bitreich.org 70 i if (*prompt) { 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+ fprintf(stderr, "\x1b[30;47m %s \x1b[m", formatted); Err bitreich.org 70 i cols -= strlen(formatted) + 2; Err bitreich.org 70 i } Err bitreich.org 70 i fputc(' ', stderr); Err bitreich.org 70 i@@ -386,7 +386,7 @@ print_selection(void) Err bitreich.org 70 i puts(input); Err bitreich.org 70 i else Err bitreich.org 70 i puts(matchv[current]); Err bitreich.org 70 i- fputs("\r\033[K", stderr); Err bitreich.org 70 i+ fputs("\r\x1b[K", stderr); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i static int Err bitreich.org 70 i@@ -456,7 +456,7 @@ top: Err bitreich.org 70 i key = CSI(fgetc(stdin)); Err bitreich.org 70 i goto top; Err bitreich.org 70 i Err bitreich.org 70 i- case 033: /* escape / alt */ Err bitreich.org 70 i+ case 0x1b: /* 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 .