SMOLNET PORTAL home about changes
imake the code a bit cleaner - 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 dc5363e17ca9699906f7789d6175dc09aa6418ec	/scm/iomenu/commit/dc5363e17ca9699906f7789d6175dc09aa6418ec.gph	bitreich.org	70
1parent e72aa011e805f26becc50b68673bad057a743c39	/scm/iomenu/commit/e72aa011e805f26becc50b68673bad057a743c39.gph	bitreich.org	70
hAuthor: Josuah Demangeon <mail@josuah.net>	URL:mailto:mail@josuah.net	bitreich.org	70
iDate:   Sat,  9 Jun 2018 19:03:51 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
imake the code a bit cleaner	Err	bitreich.org	70
i	Err	bitreich.org	70
iRemove the "extern ..." everywhere and remove unused / rename functions	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M iomenu.c                            |     132 ++++++++++---------------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 42 insertions(+), 90 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@@ -78,9 +78,6 @@ getkey(void)	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i split_lines(char *buf)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern char        **linev, **matchv;	Err	bitreich.org	70
i-        extern int        linec;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         char        *b, **lv, **mv;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         linec = 1;	Err	bitreich.org	70
i@@ -104,8 +101,8 @@ split_lines(char *buf)	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i read_stdin(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        size_t        size, len, off;	Err	bitreich.org	70
i-        char        *buf;	Err	bitreich.org	70
i+        size_t size, len, off;	Err	bitreich.org	70
i+        char *buf;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         size = BUFSIZ;	Err	bitreich.org	70
i         off = 0;	Err	bitreich.org	70
i@@ -126,10 +123,7 @@ read_stdin(void)	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i move(int sign)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern char        **matchv;	Err	bitreich.org	70
i-        extern int        matchc;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        int        i;	Err	bitreich.org	70
i+        int i;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         for (i = cur + sign; 0 <= i && i < matchc; i += sign) {	Err	bitreich.org	70
i                 if (hsflag == 0 || matchv[i][0] != '#') {	Err	bitreich.org	70
i@@ -157,12 +151,9 @@ tokenize(char **tokv, char *str)	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i filter(int searchc, char **searchv)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern char        **matchv;	Err	bitreich.org	70
i-        extern int        matchc, cur;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        int        n;	Err	bitreich.org	70
i-        char        *tokv[sizeof(input) * sizeof(char *) + sizeof(NULL)];	Err	bitreich.org	70
i-        char        buf[sizeof(input)];	Err	bitreich.org	70
i+        int n;	Err	bitreich.org	70
i+        char *tokv[sizeof(input) * sizeof(char *) + sizeof(NULL)];	Err	bitreich.org	70
i+        char buf[sizeof(input)];	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         strncpy(buf, input, sizeof(input));	Err	bitreich.org	70
i         buf[sizeof(input) - 1] = '\0';	Err	bitreich.org	70
i@@ -179,10 +170,7 @@ filter(int searchc, char **searchv)	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i move_page(signed int sign)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern        struct        winsize ws;	Err	bitreich.org	70
i-        extern        int        matchc, cur;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        int        i, rows;	Err	bitreich.org	70
i+        int i, rows;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         rows = ws.ws_row - 1;	Err	bitreich.org	70
i         i = cur - cur % rows + rows * sign;	Err	bitreich.org	70
i@@ -195,9 +183,6 @@ move_page(signed int sign)	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i move_header(signed int sign)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern char        **matchv;	Err	bitreich.org	70
i-        extern int        matchc, cur;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         move(sign);	Err	bitreich.org	70
i         if (hsflag == 0)	Err	bitreich.org	70
i                 return;	Err	bitreich.org	70
i@@ -215,9 +200,7 @@ move_header(signed int sign)	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i remove_word()	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern        char        input[LINE_MAX];	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        int        len, i;	Err	bitreich.org	70
i+        int len, i;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         len = strlen(input) - 1;	Err	bitreich.org	70
i         for (i = len; i >= 0 && isspace(input[i]); i--)	Err	bitreich.org	70
i@@ -231,9 +214,7 @@ remove_word()	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i add_char(char c)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern        char        input[LINE_MAX];	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        int        len;	Err	bitreich.org	70
i+        int len;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         len = strlen(input);	Err	bitreich.org	70
i         if (isprint(c)) {	Err	bitreich.org	70
i@@ -246,10 +227,7 @@ add_char(char c)	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        char        **matchv, input[LINE_MAX];	Err	bitreich.org	70
i-        extern        int          matchc;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        char        **match;	Err	bitreich.org	70
i+        char **match;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (hsflag) {	Err	bitreich.org	70
i                 match = matchv + cur;	Err	bitreich.org	70
i@@ -268,17 +246,16 @@ print_selection(void)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i-** Big case table, that calls itself back for with ALT (aka Esc), CSI	Err	bitreich.org	70
i-** (aka Esc + [).  These last two have values above the range of ASCII.	Err	bitreich.org	70
i-*/	Err	bitreich.org	70
i+ * Big case table, that calls itself back for with ALT (aka Esc), CSI	Err	bitreich.org	70
i+ * (aka Esc + [).  These last two have values above the range of ASCII.	Err	bitreich.org	70
i+ */	Err	bitreich.org	70
i int	Err	bitreich.org	70
i-key(int k)	Err	bitreich.org	70
i+key(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern        char        **matchv, input[LINE_MAX];	Err	bitreich.org	70
i-        extern        int        linec;	Err	bitreich.org	70
i+        int k;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i top:	Err	bitreich.org	70
i-        switch (k) {	Err	bitreich.org	70
i+        switch ((k = getkey())) {	Err	bitreich.org	70
i         case CTL('C'):	Err	bitreich.org	70
i                 return -1;	Err	bitreich.org	70
i         case CTL('U'):	Err	bitreich.org	70
i@@ -348,8 +325,6 @@ top:	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i print_line(char *line, int highlight)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern        struct        winsize ws;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         if (hsflag && line[0] == '#')	Err	bitreich.org	70
i                 fprintf(stderr, "\n\x1b[1m\r%.*s\x1b[m",	Err	bitreich.org	70
i                     utf8_col(line + 1, ws.ws_col, 0), line + 1);	Err	bitreich.org	70
i@@ -364,15 +339,11 @@ print_line(char *line, int highlight)	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 struct winsize        ws;	Err	bitreich.org	70
i-        extern char                **matchv, input[LINE_MAX];	Err	bitreich.org	70
i-        extern int                matchc;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        char        **m;	Err	bitreich.org	70
i-        int          p, i, c, cols, rows;	Err	bitreich.org	70
i+        char **m;	Err	bitreich.org	70
i+        int p, i, c, cols, rows;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         cols = ws.ws_col;	Err	bitreich.org	70
i-        rows = ws.ws_row - 1;        /* keep one line for user input */	Err	bitreich.org	70
i+        rows = ws.ws_row - 1;        /* -1 to keep one line for user input */	Err	bitreich.org	70
i         p = c = 0;	Err	bitreich.org	70
i         i = cur - cur % rows;	Err	bitreich.org	70
i         m = matchv + i;	Err	bitreich.org	70
i@@ -387,12 +358,12 @@ print_screen(void)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i-** Set terminal in raw mode.	Err	bitreich.org	70
i-*/	Err	bitreich.org	70
i+ * Set terminal to raw mode.	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+term_set(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        struct termios        new;	Err	bitreich.org	70
i+        struct termios new;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         fputs("\x1b[s\x1b[?1049h\x1b[H", stderr);	Err	bitreich.org	70
i         if (tcgetattr(STDERR_FILENO, &termios) == -1 ||	Err	bitreich.org	70
i@@ -404,10 +375,10 @@ set_terminal(void)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i-** Take terminal out of raw mode.	Err	bitreich.org	70
i-*/	Err	bitreich.org	70
i+ * Take terminal out of raw mode.	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+term_reset(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         fputs("\x1b[2J\x1b[u\033[?1049l", stderr);	Err	bitreich.org	70
i         if (tcsetattr(STDERR_FILENO, TCSANOW, &termios))	Err	bitreich.org	70
i@@ -415,18 +386,12 @@ reset_terminal(void)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i-sighandle(int sig)	Err	bitreich.org	70
i+sigwinch(int sig)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        extern struct winsize        ws;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        switch (sig) {	Err	bitreich.org	70
i-        case SIGWINCH:	Err	bitreich.org	70
i-                if (ioctl(STDERR_FILENO, TIOCGWINSZ, &ws) == -1)	Err	bitreich.org	70
i-                        die("ioctl");	Err	bitreich.org	70
i-                print_screen();	Err	bitreich.org	70
i-                break;	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-        signal(sig, sighandle);	Err	bitreich.org	70
i+        if (ioctl(STDERR_FILENO, TIOCGWINSZ, &ws) == -1)	Err	bitreich.org	70
i+                die("ioctl");	Err	bitreich.org	70
i+        print_screen();	Err	bitreich.org	70
i+        signal(sig, sigwinch);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i@@ -436,22 +401,6 @@ usage(void)	Err	bitreich.org	70
i         exit(EXIT_FAILURE);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-void	Err	bitreich.org	70
i-init(void)	Err	bitreich.org	70
i-{	Err	bitreich.org	70
i-        extern char        input[LINE_MAX];	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        input[0] = '\0';	Err	bitreich.org	70
i-        read_stdin();	Err	bitreich.org	70
i-        filter(linec, linev);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        if (freopen("/dev/tty", "r", stdin) == NULL)	Err	bitreich.org	70
i-                die("reopening /dev/tty as stdin");	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        set_terminal();	Err	bitreich.org	70
i-        sighandle(SIGWINCH);	Err	bitreich.org	70
i-}	Err	bitreich.org	70
i-	Err	bitreich.org	70
i /*	Err	bitreich.org	70
i ** Read stdin in a buffer, filling a table of lines, then re-open stdin to	Err	bitreich.org	70
i ** /dev/tty for an interactive (raw) session to let the user filter and select	Err	bitreich.org	70
i@@ -460,8 +409,6 @@ init(void)	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-        int                exit_code;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         ARGBEGIN {	Err	bitreich.org	70
i         case '#':	Err	bitreich.org	70
i                 hsflag = 1;	Err	bitreich.org	70
i@@ -469,17 +416,22 @@ main(int argc, char *argv[])	Err	bitreich.org	70
i         default:	Err	bitreich.org	70
i                 usage();	Err	bitreich.org	70
i         } ARGEND	Err	bitreich.org	70
i-        init();	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        input[0] = '\0';	Err	bitreich.org	70
i+        read_stdin();	Err	bitreich.org	70
i+        filter(linec, linev);	Err	bitreich.org	70
i+        if (freopen("/dev/tty", "r", stdin) == NULL)	Err	bitreich.org	70
i+                die("reopening /dev/tty as stdin");	Err	bitreich.org	70
i+        term_set();	Err	bitreich.org	70
i+        sigwinch(SIGWINCH);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #ifdef __OpenBSD__	Err	bitreich.org	70
i         pledge("stdio tty", NULL);	Err	bitreich.org	70
i #endif	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        while ((exit_code = key(getkey())) > 0)	Err	bitreich.org	70
i+        while (key() > 0)	Err	bitreich.org	70
i                 print_screen();	Err	bitreich.org	70
i+        term_reset();	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        print_screen();	Err	bitreich.org	70
i-        reset_terminal();	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        return exit_code;	Err	bitreich.org	70
i+        return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/iomenu/commit/dc5363e17ca9699...
Content-Typetext/plain; charset=utf-8