iiomenu.c: refactored readlines() - 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 8614ad4e2b6c08fcf82366637ee1cdf7662434f4 /scm/iomenu/commit/8614ad4e2b6c08fcf82366637ee1cdf7662434f4.gph bitreich.org 70
1parent 3d81e355d3a20771ccedf81e929a69fc65c3e638 /scm/iomenu/commit/3d81e355d3a20771ccedf81e929a69fc65c3e638.gph bitreich.org 70
hAuthor: Josuah Demangeon <josuah.demangeon@gandi.net> URL:mailto:josuah.demangeon@gandi.net bitreich.org 70
iDate: Sat, 26 Aug 2017 23:04:39 +0200 Err bitreich.org 70
i Err bitreich.org 70
iiomenu.c: refactored readlines() Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M Makefile | 9 +++++---- Err bitreich.org 70
i M iomenu.c | 25 ++++++++++++++----------- Err bitreich.org 70
i Err bitreich.org 70
i2 files changed, 19 insertions(+), 15 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/Makefile b/Makefile /scm/iomenu/file/Makefile.gph bitreich.org 70
i@@ -1,4 +1,4 @@ Err bitreich.org 70
i-CFLAGS = -std=c89 -Wpedantic -Wall -Wextra -g Err bitreich.org 70
i+CFLAGS = -std=c89 -Wpedantic -Wall -Wextra -g -D_POSIX_C_SOURCE=200809L Err bitreich.org 70
i Err bitreich.org 70
i all: iomenu Err bitreich.org 70
i Err bitreich.org 70
i@@ -8,6 +8,7 @@ clean: Err bitreich.org 70
i rm -f *.o iomenu Err bitreich.org 70
i Err bitreich.org 70
i install: iomenu Err bitreich.org 70
i- mkdir -p $(PREFIX)/bin $(PREFIX)/share/man/man1 Err bitreich.org 70
i- cp *.1 $(PREFIX)/share/man/man1/ Err bitreich.org 70
i- cp iomenu $(PREFIX)/bin/ Err bitreich.org 70
i+ mkdir -p $(PREFIX)/share/man/man1 Err bitreich.org 70
i+ cp *.1 $(PREFIX)/share/man/man1 Err bitreich.org 70
i+ mkdir -p $(PREFIX)/bin Err bitreich.org 70
i+ cp iomenu $(PREFIX)/bin Err bitreich.org 70
1diff --git a/iomenu.c b/iomenu.c /scm/iomenu/file/iomenu.c.gph bitreich.org 70
i@@ -1,5 +1,6 @@ Err bitreich.org 70
i #include <ctype.h> Err bitreich.org 70
i #include <fcntl.h> Err bitreich.org 70
i+#include <limits.h> Err bitreich.org 70
i #include <locale.h> Err bitreich.org 70
i #include <signal.h> Err bitreich.org 70
i #include <stdio.h> Err bitreich.org 70
i@@ -25,7 +26,7 @@ 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 char input[LINE_MAX], formatted[LINE_MAX * 8]; Err bitreich.org 70
i static int opt[128], rows = 0; Err bitreich.org 70
i static char *prompt = ""; Err bitreich.org 70
i Err bitreich.org 70
i@@ -89,7 +90,8 @@ resetterminal(void) Err bitreich.org 70
i static void Err bitreich.org 70
i readlines(void) Err bitreich.org 70
i { Err bitreich.org 70
i- int size = 0; Err bitreich.org 70
i+ int size = 0; Err bitreich.org 70
i+ size_t len; Err bitreich.org 70
i Err bitreich.org 70
i do { Err bitreich.org 70
i if (linec >= size) { Err bitreich.org 70
i@@ -100,13 +102,17 @@ readlines(void) Err bitreich.org 70
i die("realloc"); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i- linev[linec] = matchv[linec] = malloc(BUFSIZ); Err bitreich.org 70
i- if (linev[linec] == NULL) Err bitreich.org 70
i- die("malloc"); Err bitreich.org 70
i+ linev[linec] = malloc(LINE_MAX + 1); Err bitreich.org 70
i+ if (!(fgets(linev[linec], LINE_MAX, stdin))) { Err bitreich.org 70
i+ free(linev[linec]); Err bitreich.org 70
i+ break; Err bitreich.org 70
i+ } Err bitreich.org 70
i Err bitreich.org 70
i- } while (fgets(linev[linec++], BUFSIZ, stdin)); Err bitreich.org 70
i+ len = strlen(linev[linec]); Err bitreich.org 70
i+ if (len > 0 && linec[linev][len - 1] == '\n') Err bitreich.org 70
i+ linev[linec][len - 1] = '\0'; Err bitreich.org 70
i Err bitreich.org 70
i- matchc = linec; Err bitreich.org 70
i+ } while (++linec, ++matchc); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i static char * Err bitreich.org 70
i@@ -117,10 +123,7 @@ format(char *s, int cols) Err bitreich.org 70
i char *f = formatted; Err bitreich.org 70
i Err bitreich.org 70
i while (*s && i < cols) { Err bitreich.org 70
i- if (*s == '\n') { Err bitreich.org 70
i- s++; Err bitreich.org 70
i- Err bitreich.org 70
i- } else if (*s == '\t') { Err bitreich.org 70
i+ if (*s == '\t') { Err bitreich.org 70
i int t = 8 - i % 8; Err bitreich.org 70
i while (t-- && i < cols) { Err bitreich.org 70
i *f++ = ' '; Err bitreich.org 70
.
Response:
text/plain