icleaner code - 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 277ca72956b6deb921cbe96f981214602624c6ac /scm/iomenu/commit/277ca72956b6deb921cbe96f981214602624c6ac.gph bitreich.org 70 1parent cf83d371853dced03fb2db5af7f2b8e04e48f469 /scm/iomenu/commit/cf83d371853dced03fb2db5af7f2b8e04e48f469.gph bitreich.org 70 hAuthor: Josuah Demangeon URL:mailto:mail@josuah.net bitreich.org 70 iDate: Tue, 31 Oct 2017 15:59:42 +0100 Err bitreich.org 70 i Err bitreich.org 70 icleaner code Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M buffer.c | 28 ++++++++++++++++------------ Err bitreich.org 70 i M main.c | 2 +- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 17 insertions(+), 13 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@@ -79,29 +79,33 @@ read_stdin(void) Err bitreich.org 70 i void Err bitreich.org 70 i filter(void) Err bitreich.org 70 i { Err bitreich.org 70 i- int tokc = 0; Err bitreich.org 70 i- int n = 0; Err bitreich.org 70 i- int i; Err bitreich.org 70 i- char **tokv = NULL; Err bitreich.org 70 i- char *s; Err bitreich.org 70 i- char buffer[sizeof (input)]; Err bitreich.org 70 i extern char **linev; Err bitreich.org 70 i- extern current; Err bitreich.org 70 i+ extern int current; Err bitreich.org 70 i+ int tokc; Err bitreich.org 70 i+ int n; Err bitreich.org 70 i+ char **tokv = NULL; Err bitreich.org 70 i+ char *s; Err bitreich.org 70 i+ char buf[sizeof (input)]; Err bitreich.org 70 i Err bitreich.org 70 i current = offset = next = 0; Err bitreich.org 70 i- strcpy(buffer, input); Err bitreich.org 70 i- for (s = strtok(buffer, " "); s; s = strtok(NULL, " "), tokc++) { Err bitreich.org 70 i+ strcpy(buf, input); Err bitreich.org 70 i+ tokc = 0; Err bitreich.org 70 i+ n = 0; Err bitreich.org 70 i+ s = strtok(buf, " "); Err bitreich.org 70 i+ while (s) { Err bitreich.org 70 i if (tokc >= n) { Err bitreich.org 70 i tokv = realloc(tokv, ++n * sizeof (*tokv)); Err bitreich.org 70 i if (tokv == NULL) Err bitreich.org 70 i die("realloc"); Err bitreich.org 70 i } Err bitreich.org 70 i tokv[tokc] = s; Err bitreich.org 70 i+ s = strtok(NULL, " "); Err bitreich.org 70 i+ tokc++; Err bitreich.org 70 i } Err bitreich.org 70 i matchc = 0; Err bitreich.org 70 i- for (i = 0; i < linec; i++) Err bitreich.org 70 i- if (match_line(linev[i], tokv, tokc)) Err bitreich.org 70 i- matchv[matchc++] = linev[i]; Err bitreich.org 70 i+ for (n = 0; n < linec; n++) Err bitreich.org 70 i+ if (match_line(linev[n], tokv, tokc)) Err bitreich.org 70 i+ matchv[matchc++] = linev[n]; Err bitreich.org 70 i free(tokv); Err bitreich.org 70 i if (opt['#'] && matchv[current][0] == '#') Err bitreich.org 70 i move(+1); Err bitreich.org 70 1diff --git a/main.c b/main.c /scm/iomenu/file/main.c.gph bitreich.org 70 i@@ -47,7 +47,7 @@ set_terminal(void) Err bitreich.org 70 i { Err bitreich.org 70 i struct termios new; Err bitreich.org 70 i Err bitreich.org 70 i- fputs("\x1b[s\x1b[?1049h", stderr); Err bitreich.org 70 i+ fputs("\x1b[s\x1b[?1049h\x1b[H", stderr); Err bitreich.org 70 i if (tcgetattr(ttyfd, &termios) < 0 || tcgetattr(ttyfd, &new) < 0) { Err bitreich.org 70 i perror("tcgetattr"); Err bitreich.org 70 i exit(EXIT_FAILURE); Err bitreich.org 70 .