SMOLNET PORTAL home about changes
iSimplified the options. - 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 f764d7df1ae0d98852309ebce4ed01bb25e0af38	/scm/iomenu/commit/f764d7df1ae0d98852309ebce4ed01bb25e0af38.gph	bitreich.org	70
1parent 6b29b825670b511f255ef2f8bbd19db35aa68c58	/scm/iomenu/commit/6b29b825670b511f255ef2f8bbd19db35aa68c58.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:05:47 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iSimplified the options.	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M iomenu.1                            |      13 +++----------	Err	bitreich.org	70
i  M iomenu.c                            |     137 +++++++++----------------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 42 insertions(+), 108 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/iomenu.1 b/iomenu.1	/scm/iomenu/file/iomenu.1.gph	bitreich.org	70
i@@ -1,4 +1,4 @@	Err	bitreich.org	70
i-.Dd mar 19, 2017	Err	bitreich.org	70
i+.Dd aug 21, 2017	Err	bitreich.org	70
i .Dt IOMENU 1	Err	bitreich.org	70
i .Os	Err	bitreich.org	70
i .	Err	bitreich.org	70
i@@ -14,9 +14,7 @@	Err	bitreich.org	70
i .	Err	bitreich.org	70
i .	Err	bitreich.org	70
i .Nm	Err	bitreich.org	70
i-.Op Fl t	Err	bitreich.org	70
i-.Op Fl b	Err	bitreich.org	70
i-.Op Fl s	Err	bitreich.org	70
i+.Op Fl #	Err	bitreich.org	70
i .Op Fl l Ar lines	Err	bitreich.org	70
i .Op Fl p Ar prompt	Err	bitreich.org	70
i .	Err	bitreich.org	70
i@@ -48,18 +46,13 @@ lines.	Err	bitreich.org	70
i Set the prompt to display at the beginning of the input to	Err	bitreich.org	70
i .Ar prompt .	Err	bitreich.org	70
i .	Err	bitreich.org	70
i-.It Fl s	Err	bitreich.org	70
i+.It Fl #	Err	bitreich.org	70
i If a line starts with	Err	bitreich.org	70
i .Li # ,	Err	bitreich.org	70
i .Nm	Err	bitreich.org	70
i will interprete it as a header, which always matches, and can not be	Err	bitreich.org	70
i printed.	Err	bitreich.org	70
i .	Err	bitreich.org	70
i-.It Fl t Ns / Ns Fl b	Err	bitreich.org	70
i-Print the menu at the top / bottom rather than at current cursor	Err	bitreich.org	70
i-position.	Err	bitreich.org	70
i-Reset the cursor postition afterward.	Err	bitreich.org	70
i-.El	Err	bitreich.org	70
i .	Err	bitreich.org	70
i .Ss Selection control	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@@ -10,25 +10,21 @@	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #include <sys/ioctl.h>	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i #define CONTINUE  2   /* as opposed to EXIT_SUCCESS and EXIT_FAILURE */	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #define  CONTROL(char) (char ^ 0x40)	Err	bitreich.org	70
i #define  ALT(char) (char + 0x80)	Err	bitreich.org	70
i #define  MIN(X, Y) (((X) < (Y)) ? (X) : (Y))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static struct winsize ws;	Err	bitreich.org	70
i static struct termios termios;	Err	bitreich.org	70
i-int   tty_fd;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-static int  current = 0, offset = 0, prev = 0, next = 0;	Err	bitreich.org	70
i+static int    ttyfd;	Err	bitreich.org	70
i+static int    current = 0, offset = 0, prev = 0, next = 0;	Err	bitreich.org	70
i static int    linec = 0,      matchc = 0;	Err	bitreich.org	70
i static char **linev = NULL, **matchv = NULL;	Err	bitreich.org	70
i-static char input[BUFSIZ], formatted[BUFSIZ * 8];	Err	bitreich.org	70
i-static int  opt_tb = 0, opt_l = 255, opt_h = 0;	Err	bitreich.org	70
i-static char *argv0, *opt_p = "", opt_s = '\0';	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+static char   input[BUFSIZ], formatted[BUFSIZ * 8];	Err	bitreich.org	70
i+static int    opt[128];	Err	bitreich.org	70
i+static char  *prompt = "";	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i free_all(void)	Err	bitreich.org	70
i@@ -42,18 +38,16 @@ free_all(void)	Err	bitreich.org	70
i                 free(matchv);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i die(const char *s)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        tcsetattr(tty_fd, TCSANOW, &termios);	Err	bitreich.org	70
i-        close(tty_fd);	Err	bitreich.org	70
i+        tcsetattr(ttyfd, TCSANOW, &termios);	Err	bitreich.org	70
i+        close(ttyfd);	Err	bitreich.org	70
i         free_all();	Err	bitreich.org	70
i         perror(s);	Err	bitreich.org	70
i         exit(EXIT_FAILURE);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i set_terminal(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -62,44 +56,33 @@ set_terminal(void)	Err	bitreich.org	70
i         /* save cursor postition */	Err	bitreich.org	70
i         fputs("\033[s", stderr);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        /* put cursor at the top / bottom */	Err	bitreich.org	70
i-        switch (opt_tb) {	Err	bitreich.org	70
i-        case 't': fputs("\033[H", stderr);                        break;	Err	bitreich.org	70
i-        case 'b': fprintf(stderr, "\033[%dH", ws.ws_row - opt_l); break;	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         /* save attributes to `termios` */	Err	bitreich.org	70
i-        if (tcgetattr(tty_fd, &termios) < 0 || tcgetattr(tty_fd, &new) < 0) {	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);	Err	bitreich.org	70
i-        tcsetattr(tty_fd, TCSANOW, &new);	Err	bitreich.org	70
i+        tcsetattr(ttyfd, TCSANOW, &new);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	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-        extern struct termios termios;	Err	bitreich.org	70
i-        extern struct winsize ws;	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 < opt_l + 1; i++)	Err	bitreich.org	70
i+        for (i = 0; i < opt['l'] + 1; i++)	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("\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(tty_fd, TCSANOW, &termios);	Err	bitreich.org	70
i+        tcsetattr(ttyfd, TCSANOW, &termios);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i read_lines(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -136,12 +119,9 @@ read_lines(void)	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static char *	Err	bitreich.org	70
i format(char *str, int cols)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern char formatted[BUFSIZ * 8];	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         int i, j;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         for (i = j = 0; str[i] && j < cols; i++) {	Err	bitreich.org	70
i@@ -164,19 +144,15 @@ format(char *str, int cols)	Err	bitreich.org	70
i         return formatted;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i print_lines(int count)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern int opt_l;	Err	bitreich.org	70
i-        extern char opt_s;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         int printed = 0, i = current / count * count;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         while (printed < count && i < matchc) {	Err	bitreich.org	70
i                 char *s = format(matchv[i], ws.ws_col - 1);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                if (opt_s && matchv[i][0] == opt_s) {	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@@ -191,14 +167,11 @@ print_lines(int count)	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-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i print_screen(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern char formatted[BUFSIZ * 8];	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         int cols = ws.ws_col - 1, i;	Err	bitreich.org	70
i-        int count = MIN(opt_l, ws.ws_row - 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\033[K", stderr);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -209,8 +182,8 @@ print_screen(void)	Err	bitreich.org	70
i         fputs("\r", stderr);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         /* prompt */	Err	bitreich.org	70
i-        if (opt_p[0] != '\0') {	Err	bitreich.org	70
i-                format(opt_p, cols);	Err	bitreich.org	70
i+        if (*prompt) {	Err	bitreich.org	70
i+                format(prompt, cols);	Err	bitreich.org	70
i                 fputs("\033[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@@ -226,11 +199,10 @@ print_screen(void)	Err	bitreich.org	70
i         fflush(stderr);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static int	Err	bitreich.org	70
i match_line(char *line, char **tokv, int tokc)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        if (opt_s && line[0] == opt_s)	Err	bitreich.org	70
i+        if (opt['#'] && line[0] == '#')	Err	bitreich.org	70
i                 return 2;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         while (tokc-- > 0)	Err	bitreich.org	70
i@@ -240,24 +212,19 @@ match_line(char *line, char **tokv, int tokc)	Err	bitreich.org	70
i         return 1;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i move_line(signed int n)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern int    current;	Err	bitreich.org	70
i-        extern char **matchv;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         int i;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         for (i = current + n; 0 <= i && i < matchc; i += n) {	Err	bitreich.org	70
i-                if (!opt_s || matchv[i][0] != opt_s) {	Err	bitreich.org	70
i+                if (!opt['#'] || matchv[i][0] != '#') {	Err	bitreich.org	70
i                         current = i;	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i filter_lines(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -287,11 +254,10 @@ filter_lines(void)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         free(tokv);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        if (opt_s && matchv[current][0] == opt_s)	Err	bitreich.org	70
i+        if (opt['#'] && matchv[current][0] == '#')	Err	bitreich.org	70
i                 move_line(+1);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i remove_word_input()	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -307,7 +273,6 @@ remove_word_input()	Err	bitreich.org	70
i         filter_lines();	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i add_character(char key)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -321,19 +286,15 @@ add_character(char key)	Err	bitreich.org	70
i         filter_lines();	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i print_selection(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern int    current;	Err	bitreich.org	70
i-        extern char **matchv, input[BUFSIZ];	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         /* header */	Err	bitreich.org	70
i-        if (opt_h && opt_s) {	Err	bitreich.org	70
i+        if (opt['#']) {	Err	bitreich.org	70
i                 char **match = matchv + current;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                 while (--match >= matchv) {	Err	bitreich.org	70
i-                        if ((*match)[0] == opt_s) {	Err	bitreich.org	70
i+                        if ((*match)[0] == '#') {	Err	bitreich.org	70
i                                 fputs(*match, stdout);	Err	bitreich.org	70
i                                 break;	Err	bitreich.org	70
i                         }	Err	bitreich.org	70
i@@ -343,7 +304,7 @@ print_selection(void)	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         /* input or selection */	Err	bitreich.org	70
i-        if (matchc == 0 || (opt_s && matchv[current][0] == opt_s)) {	Err	bitreich.org	70
i+        if (matchc == 0 || (opt['#'] && matchv[current][0] == '#')) {	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@@ -352,7 +313,6 @@ print_selection(void)	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-	Err	bitreich.org	70
i static int	Err	bitreich.org	70
i input_key(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -407,11 +367,8 @@ top:	Err	bitreich.org	70
i                 return EXIT_SUCCESS;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         case 033: /* escape / alt */	Err	bitreich.org	70
i-                if (fgetc(stdin) == 'v') {	Err	bitreich.org	70
i-                        key = ALT('v');	Err	bitreich.org	70
i-                        goto top;	Err	bitreich.org	70
i-                }	Err	bitreich.org	70
i-                break;	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
i         default:	Err	bitreich.org	70
i                 add_character((char) key);	Err	bitreich.org	70
i@@ -420,7 +377,6 @@ top:	Err	bitreich.org	70
i         return CONTINUE;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i  * Listen for the user input and call the appropriate functions.	Err	bitreich.org	70
i  */	Err	bitreich.org	70
i@@ -434,71 +390,56 @@ input_get(void)	Err	bitreich.org	70
i         while ((exit_code = input_key()) == CONTINUE)	Err	bitreich.org	70
i                 print_screen();	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        tcsetattr(tty_fd, TCSANOW, &termios);	Err	bitreich.org	70
i+        tcsetattr(ttyfd, TCSANOW, &termios);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         return exit_code;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i sigwinch()	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern struct winsize ws;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        /* get window size */	Err	bitreich.org	70
i-        if (ioctl(tty_fd, TIOCGWINSZ, &ws) < 0)	Err	bitreich.org	70
i+        if (ioctl(ttyfd, TIOCGWINSZ, &ws) < 0)	Err	bitreich.org	70
i                 die("ioctl");	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         print_screen();	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         signal(SIGWINCH, sigwinch);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i usage(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        fprintf(stderr, "%s [-b] [-t] [-s] [-l lines] [-p prompt]\n", argv0);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i+        fputs("iomenu [-#] [-l lines] [-p prompt]\n", stderr);	Err	bitreich.org	70
i         exit(EXIT_FAILURE);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-	Err	bitreich.org	70
i int	Err	bitreich.org	70
i main(int argc, char *argv[])	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern char *opt_p, *argv0;	Err	bitreich.org	70
i-        extern int opt_l;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         int exit_code;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        for (argv0 = argv[0], argv++, argc--; argc > 0; argv++, argc--) {	Err	bitreich.org	70
i+        memset(opt, 0, 128 * sizeof (int));	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        opt['l'] = 255;	Err	bitreich.org	70
i+        for (argv++, argc--; argc > 0; argv++, argc--) {	Err	bitreich.org	70
i                 if (argv[0][0] != '-')	Err	bitreich.org	70
i                         usage();	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                 switch ((*argv)[1]) {	Err	bitreich.org	70
i                 case 'l':	Err	bitreich.org	70
i                         argv++; argc--;	Err	bitreich.org	70
i-                        if (argc == 0 || sscanf(*argv, "%d", &opt_l) <= 0)	Err	bitreich.org	70
i+                        if (argc == 0 || sscanf(*argv, "%d", &opt['l']) <= 0)	Err	bitreich.org	70
i                                 usage();	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                case 't': opt_tb = 't'; break;	Err	bitreich.org	70
i-                case 'b': opt_tb = 'b'; break;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i                 case 'p':	Err	bitreich.org	70
i-                        argc--; argv++;	Err	bitreich.org	70
i+                        argv++; argc--;	Err	bitreich.org	70
i                         if (argc == 0)	Err	bitreich.org	70
i                                 usage();	Err	bitreich.org	70
i-                        opt_p = *argv;	Err	bitreich.org	70
i-                        break;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-                case 's':	Err	bitreich.org	70
i-                        opt_s = '#';	Err	bitreich.org	70
i+                        prompt = *argv;	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                case 'h':	Err	bitreich.org	70
i-                        opt_h = 1;	Err	bitreich.org	70
i+                case '#':	Err	bitreich.org	70
i+                        opt['#'] = 1;	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                 default:	Err	bitreich.org	70
i@@ -513,14 +454,14 @@ main(int argc, char *argv[])	Err	bitreich.org	70
i         if (!freopen("/dev/tty", "r", stdin) ||	Err	bitreich.org	70
i             !freopen("/dev/tty", "w", stderr))	Err	bitreich.org	70
i                 die("freopen");	Err	bitreich.org	70
i-        tty_fd =  open("/dev/tty", O_RDWR);	Err	bitreich.org	70
i+        ttyfd =  open("/dev/tty", O_RDWR);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         set_terminal();	Err	bitreich.org	70
i         sigwinch();	Err	bitreich.org	70
i         exit_code = input_get();  /* main loop */	Err	bitreich.org	70
i         reset_terminal();	Err	bitreich.org	70
i-        close(tty_fd);	Err	bitreich.org	70
i-        free_all();	Err	bitreich.org	70
i+        close(ttyfd);	Err	bitreich.org	70
i+        freeall();	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        return exit_code;	Err	bitreich.org	70
i+        return exitcode;	Err	bitreich.org	70
i }	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/iomenu/commit/f764d7df1ae0d98...
Content-Typetext/plain; charset=utf-8