ifixing empty input and removing not used -l option - 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 972969f0568ff78ac41d72a942440859af004ad2 /scm/iomenu/commit/972969f0568ff78ac41d72a942440859af004ad2.gph bitreich.org 70 1parent 17183e9024bb8a1fa1e2152819ac29a3e82047b4 /scm/iomenu/commit/17183e9024bb8a1fa1e2152819ac29a3e82047b4.gph bitreich.org 70 hAuthor: Josuah Demangeon URL:mailto:mail@josuah.net bitreich.org 70 iDate: Wed, 1 Nov 2017 17:11:20 +0100 Err bitreich.org 70 i Err bitreich.org 70 ifixing empty input and removing not used -l option Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M buffer.c | 12 +++++++++--- Err bitreich.org 70 i M control.c | 1 + Err bitreich.org 70 i M display.c | 1 + Err bitreich.org 70 i M iomenu.1 | 6 ------ Err bitreich.org 70 i M iomenu.h | 1 - Err bitreich.org 70 i M main.c | 14 +------------- Err bitreich.org 70 i Err bitreich.org 70 i6 files changed, 12 insertions(+), 23 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/buffer.c b/buffer.c /scm/iomenu/file/buffer.c.gph bitreich.org 70 i@@ -19,7 +19,6 @@ match_line(char *line, char **tokv, int tokc) Err bitreich.org 70 i while (tokc-- > 0) Err bitreich.org 70 i if (strstr(line, tokv[tokc]) == NULL) Err bitreich.org 70 i return 0; Err bitreich.org 70 i- Err bitreich.org 70 i return 1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -49,6 +48,8 @@ split_lines(char *buf) Err bitreich.org 70 i b = buf; Err bitreich.org 70 i while ((b = strchr(b + 1, '\n'))) Err bitreich.org 70 i linec++; Err bitreich.org 70 i+ if (!linec) Err bitreich.org 70 i+ linec = 1; Err bitreich.org 70 i if (!(lv = linev = calloc(linec, sizeof (char **)))) Err bitreich.org 70 i die("calloc"); Err bitreich.org 70 i if (!(mv = matchv = calloc(linec, sizeof (char **)))) { Err bitreich.org 70 i@@ -70,14 +71,19 @@ read_stdin(void) Err bitreich.org 70 i size_t len; Err bitreich.org 70 i size_t off; Err bitreich.org 70 i char *buf; Err bitreich.org 70 i+ char *b; Err bitreich.org 70 i Err bitreich.org 70 i off = 0; Err bitreich.org 70 i buf = malloc(size); Err bitreich.org 70 i while ((len = read(STDIN_FILENO, buf + off, size - off)) > 0) { Err bitreich.org 70 i off += len; Err bitreich.org 70 i- if (off > size >> 1) { Err bitreich.org 70 i+ if (off >= size >> 1) { Err bitreich.org 70 i size <<= 1; Err bitreich.org 70 i- buf = realloc(buf, size); Err bitreich.org 70 i+ if (!(b = realloc(buf, size + 1))) { Err bitreich.org 70 i+ free(buf); Err bitreich.org 70 i+ die("realloc"); Err bitreich.org 70 i+ } Err bitreich.org 70 i+ buf = b; Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i buf[off] = '\0'; Err bitreich.org 70 1diff --git a/control.c b/control.c /scm/iomenu/file/control.c.gph bitreich.org 70 i@@ -32,6 +32,7 @@ static void Err bitreich.org 70 i move_page(signed int sign) Err bitreich.org 70 i { Err bitreich.org 70 i int i; Err bitreich.org 70 i+ int rows = ws.ws_row - 1; Err bitreich.org 70 i Err bitreich.org 70 i i = current - current % rows + rows * sign; Err bitreich.org 70 i if (!(0 <= i && i < matchc)) Err bitreich.org 70 1diff --git a/display.c b/display.c /scm/iomenu/file/display.c.gph bitreich.org 70 i@@ -61,6 +61,7 @@ print_screen(void) Err bitreich.org 70 i int p; Err bitreich.org 70 i int i; Err bitreich.org 70 i int cols = ws.ws_col - 1; Err bitreich.org 70 i+ int rows = ws.ws_row - 1; Err bitreich.org 70 i Err bitreich.org 70 i p = 0; Err bitreich.org 70 i i = current - current % rows; Err bitreich.org 70 1diff --git a/iomenu.1 b/iomenu.1 /scm/iomenu/file/iomenu.1.gph bitreich.org 70 i@@ -15,7 +15,6 @@ Err bitreich.org 70 i . Err bitreich.org 70 i .Nm 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 . Err bitreich.org 70 i@@ -32,11 +31,6 @@ The selected line is printed to standard output. Err bitreich.org 70 i . Err bitreich.org 70 i .Bl -tag -width XXXXXXXXXXXXXXXX Err bitreich.org 70 i . Err bitreich.org 70 i-.It Fl l Ar lines Err bitreich.org 70 i-If Err bitreich.org 70 i-.Ar lines Err bitreich.org 70 i-Total amount of lines to display on the screen. Err bitreich.org 70 i-. Err bitreich.org 70 i .It Fl p Ar prompt 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 1diff --git a/iomenu.h b/iomenu.h /scm/iomenu/file/iomenu.h.gph bitreich.org 70 i@@ -16,4 +16,3 @@ extern char input[LINE_MAX]; Err bitreich.org 70 i extern char formatted[LINE_MAX * 8]; Err bitreich.org 70 i extern int current; Err bitreich.org 70 i extern int opt[128]; Err bitreich.org 70 i-extern int rows; Err bitreich.org 70 1diff --git a/main.c b/main.c /scm/iomenu/file/main.c.gph bitreich.org 70 i@@ -27,7 +27,6 @@ char *prompt = ""; Err bitreich.org 70 i char input[LINE_MAX]; Err bitreich.org 70 i char formatted[LINE_MAX * 8]; Err bitreich.org 70 i int current = 0; Err bitreich.org 70 i-int rows = 0; Err bitreich.org 70 i int opt[128]; Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i@@ -66,7 +65,6 @@ sigwinch() Err bitreich.org 70 i { Err bitreich.org 70 i if (ioctl(ttyfd, TIOCGWINSZ, &ws) < 0) Err bitreich.org 70 i die("ioctl"); Err bitreich.org 70 i- rows = MIN(opt['l'], ws.ws_row - 1); Err bitreich.org 70 i print_screen(); Err bitreich.org 70 i signal(SIGWINCH, sigwinch); Err bitreich.org 70 i } Err bitreich.org 70 i@@ -74,7 +72,7 @@ sigwinch() Err bitreich.org 70 i static void Err bitreich.org 70 i usage(void) Err bitreich.org 70 i { Err bitreich.org 70 i- fputs("iomenu [-#] [-l lines] [-p prompt]\n", stderr); Err bitreich.org 70 i+ fputs("iomenu [-#] [-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@@ -82,15 +80,10 @@ static void Err bitreich.org 70 i parse_opt(int argc, char *argv[]) Err bitreich.org 70 i { Err bitreich.org 70 i memset(opt, 0, 128 * sizeof (int)); 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 switch ((*argv)[1]) { Err bitreich.org 70 i- case 'l': Err bitreich.org 70 i- if (!--argc || (opt['l'] = atoi(*++argv)) <= 0) Err bitreich.org 70 i- usage(); Err bitreich.org 70 i- break; Err bitreich.org 70 i case 'p': Err bitreich.org 70 i if (!--argc) Err bitreich.org 70 i usage(); Err bitreich.org 70 i@@ -99,11 +92,6 @@ parse_opt(int argc, char *argv[]) Err bitreich.org 70 i case '#': Err bitreich.org 70 i opt['#'] = 1; Err bitreich.org 70 i break; Err bitreich.org 70 i- case 's': Err bitreich.org 70 i- if (!--argc) Err bitreich.org 70 i- usage(); Err bitreich.org 70 i- opt['s'] = (int) **++argv; Err bitreich.org 70 i- break; Err bitreich.org 70 i default: Err bitreich.org 70 i usage(); Err bitreich.org 70 i } Err bitreich.org 70 .