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