iNo valgrind error on simple line-oriented session - 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 8be6c99abe504ab6090d28a65d19c0c83bb36e75 /scm/iomenu/commit/8be6c99abe504ab6090d28a65d19c0c83bb36e75.gph bitreich.org 70 1parent 9bdaa10a695ec2d8a9890c980bd5b44d5ff6f48c /scm/iomenu/commit/9bdaa10a695ec2d8a9890c980bd5b44d5ff6f48c.gph bitreich.org 70 hAuthor: Josuah Demangeonā  ā µ URL:mailto:mail@josuah.net bitreich.org 70 iDate: Sat, 18 Mar 2017 11:04:08 +0100 Err bitreich.org 70 i Err bitreich.org 70 iNo valgrind error on simple line-oriented session Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M Makefile | 2 +- Err bitreich.org 70 i M iomenu.c | 22 +++++----------------- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 6 insertions(+), 18 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=c99 -Wpedantic -Wall -Wextra -g -static -O0 Err bitreich.org 70 i+CFLAGS = -std=c99 -Wpedantic -Wall -Wextra -g # -static Err bitreich.org 70 i OBJ = ${SRC:.c=.o} Err bitreich.org 70 i Err bitreich.org 70 i all: clean iomenu Err bitreich.org 70 1diff --git a/iomenu.c b/iomenu.c /scm/iomenu/file/iomenu.c.gph bitreich.org 70 i@@ -144,7 +144,7 @@ filter_lines(void) Err bitreich.org 70 i int Err bitreich.org 70 i matching_prev(int pos) Err bitreich.org 70 i { Err bitreich.org 70 i- for (size_t i = pos - 1; i > 0; i--) Err bitreich.org 70 i+ for (int i = pos - 1; i >= 0; i--) Err bitreich.org 70 i if (linev[i]->match) Err bitreich.org 70 i return i; Err bitreich.org 70 i return pos; Err bitreich.org 70 i@@ -326,11 +326,6 @@ input_key(FILE *tty_fp) Err bitreich.org 70 i Err bitreich.org 70 i char key = fgetc(tty_fp); Err bitreich.org 70 i Err bitreich.org 70 i- if (key == '\n') { Err bitreich.org 70 i- print_selection(); Err bitreich.org 70 i- return EXIT_SUCCESS; Err bitreich.org 70 i- } Err bitreich.org 70 i- Err bitreich.org 70 i switch (key) { Err bitreich.org 70 i Err bitreich.org 70 i case CONTROL('C'): Err bitreich.org 70 i@@ -409,7 +404,7 @@ input_get(int tty_fd) Err bitreich.org 70 i void Err bitreich.org 70 i usage(void) Err bitreich.org 70 i { Err bitreich.org 70 i- fputs("usage: iomenu [-n] [-p prompt] [-l lines]\n", stderr); Err bitreich.org 70 i+ fputs("usage: iomenu [-l lines] [-p prompt]\n", stderr); Err bitreich.org 70 i Err bitreich.org 70 i exit(EXIT_FAILURE); Err bitreich.org 70 i } Err bitreich.org 70 i@@ -420,19 +415,18 @@ main(int argc, char *argv[]) Err bitreich.org 70 i { Err bitreich.org 70 i int i, exit_code, tty_fd = open("/dev/tty", O_RDWR); Err bitreich.org 70 i Err bitreich.org 70 i- /* command line arguments */ Err bitreich.org 70 i for (i = 1; i < argc; i++) { Err bitreich.org 70 i if (argv[i][0] != '-' || strlen(argv[i]) != 2) Err bitreich.org 70 i usage(); Err bitreich.org 70 i Err bitreich.org 70 i switch (argv[i][1]) { Err bitreich.org 70 i case 'l': Err bitreich.org 70 i- if (sscanf(argv[++i], "%d", &opt_lines) <= 0) Err bitreich.org 70 i- die("wrong number format after -l"); Err bitreich.org 70 i+ if (++i >= argc || sscanf(argv[i], "%d", &opt_lines) <= 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 (++i >= argc) Err bitreich.org 70 i- die("missing string after -p"); Err bitreich.org 70 i+ usage(); Err bitreich.org 70 i opt_prompt = argv[i]; Err bitreich.org 70 i break; Err bitreich.org 70 i default: Err bitreich.org 70 i@@ -440,18 +434,12 @@ main(int argc, char *argv[]) Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i- /* command line arguments */ Err bitreich.org 70 i read_lines(); Err bitreich.org 70 i Err bitreich.org 70 i- /* set the interface */ Err bitreich.org 70 i print_screen(tty_fd); Err bitreich.org 70 i- Err bitreich.org 70 i- /* listen and interact to input */ Err bitreich.org 70 i exit_code = input_get(tty_fd); Err bitreich.org 70 i Err bitreich.org 70 i print_clear(opt_lines); Err bitreich.org 70 i- Err bitreich.org 70 i- /* close files descriptors and pointers, and free memory */ Err bitreich.org 70 i close(tty_fd); Err bitreich.org 70 i free_linev(linev); Err bitreich.org 70 i Err bitreich.org 70 .