SMOLNET PORTAL home about changes
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
Original URLgopher://bitreich.org/0/scm/iomenu/commit/787d55ac409e0f0...
Content-Typetext/plain; charset=utf-8