iuse alternate display rather than clearing the screen - 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 787d55ac409e0f0072e9520fc0967beb684aab06 /scm/iomenu/commit/787d55ac409e0f0072e9520fc0967beb684aab06.gph bitreich.org 70
1parent b0af07b5048120f49051a183572b599be2a64cda /scm/iomenu/commit/b0af07b5048120f49051a183572b599be2a64cda.gph bitreich.org 70
hAuthor: Josuah Demangeon <mail@josuah.net> URL:mailto:mail@josuah.net bitreich.org 70
iDate: Mon, 30 Oct 2017 01:20:33 +0100 Err bitreich.org 70
i Err bitreich.org 70
iuse alternate display rather than clearing the screen Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M display.c | 11 +++-------- Err bitreich.org 70
i M main.c | 17 ++--------------- Err bitreich.org 70
i Err bitreich.org 70
i2 files changed, 5 insertions(+), 23 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/display.c b/display.c /scm/iomenu/file/display.c.gph bitreich.org 70
i@@ -44,13 +44,13 @@ print_line(char *line, int cur) Err bitreich.org 70
i { Err bitreich.org 70
i if (opt['#'] && line[0] == '#') { Err bitreich.org 70
i format(line + 1, ws.ws_col - 1); Err bitreich.org 70
i- fprintf(stderr, "\n\x1b[1m\x1b[K %s\x1b[m", formatted); Err bitreich.org 70
i+ fprintf(stderr, "\n\x1b[1m %s\x1b[m", formatted); Err bitreich.org 70
i } else if (cur) { Err bitreich.org 70
i format(line, ws.ws_col - 1); Err bitreich.org 70
i fprintf(stderr, "\n\x1b[47;30m\x1b[K %s\x1b[m", formatted); Err bitreich.org 70
i } else { Err bitreich.org 70
i format(line, ws.ws_col - 1); Err bitreich.org 70
i- fprintf(stderr, "\n\x1b[K %s", formatted); Err bitreich.org 70
i+ fprintf(stderr, "\n %s", formatted); Err bitreich.org 70
i } Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -65,15 +65,11 @@ print_screen(void) Err bitreich.org 70
i p = 0; Err bitreich.org 70
i i = current - current % rows; Err bitreich.org 70
i m = matchv + i; Err bitreich.org 70
i+ fputs("\x1b[H;\x1b[J", stderr); Err bitreich.org 70
i while (p < rows && i < matchc) { Err bitreich.org 70
i print_line(*m, i == current); Err bitreich.org 70
i p++, i++, m++; Err bitreich.org 70
i } Err bitreich.org 70
i- while (p < rows) { Err bitreich.org 70
i- fputs("\n\x1b[K", stderr); Err bitreich.org 70
i- p++; Err bitreich.org 70
i- } Err bitreich.org 70
i- fprintf(stderr, "\x1b[%dA\r\x1b[K", rows); Err bitreich.org 70
i if (*prompt) { Err bitreich.org 70
i format(prompt, cols - 2); Err bitreich.org 70
i fprintf(stderr, "\x1b[30;47m %s \x1b[m", formatted); Err bitreich.org 70
i@@ -103,5 +99,4 @@ 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\x1b[K", stderr); Err bitreich.org 70
i } Err bitreich.org 70
1diff --git a/main.c b/main.c /scm/iomenu/file/main.c.gph bitreich.org 70
i@@ -47,16 +47,11 @@ set_terminal(void) Err bitreich.org 70
i { 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("\x1b[s", stderr); Err bitreich.org 70
i- Err bitreich.org 70
i- /* save attributes to `termios` */ Err bitreich.org 70
i+ fputs("\x1b[s\x1b[?1049h", stderr); Err bitreich.org 70
i if (tcgetattr(ttyfd, &termios) < 0 || tcgetattr(ttyfd, &new) < 0) { Err bitreich.org 70
i perror("tcgetattr"); Err bitreich.org 70
i exit(EXIT_FAILURE); 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 | IEXTEN | ISIG); Err bitreich.org 70
i tcsetattr(ttyfd, TCSANOW, &new); Err bitreich.org 70
i } Err bitreich.org 70
i@@ -64,15 +59,7 @@ set_terminal(void) Err bitreich.org 70
i static void Err bitreich.org 70
i reset_terminal(void) Err bitreich.org 70
i { Err bitreich.org 70
i- int i; 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\x1b[K\n", stderr); Err bitreich.org 70
i- Err bitreich.org 70
i- /* reset currentsor position */ Err bitreich.org 70
i- fputs("\x1b[u", stderr); Err bitreich.org 70
i- Err bitreich.org 70
i+ fputs("\x1b[u\033[?1049l", stderr); Err bitreich.org 70
i tcsetattr(ttyfd, TCSANOW, &termios); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
.
Response:
text/plain