iuse cheap caching by choosing the buffer - 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 00bb578f57d039ac6e6c2ce2835da575c78c76f3 /scm/iomenu/commit/00bb578f57d039ac6e6c2ce2835da575c78c76f3.gph bitreich.org 70
1parent d189ed552264d9b402a8b62c09ff38597944f734 /scm/iomenu/commit/d189ed552264d9b402a8b62c09ff38597944f734.gph bitreich.org 70
hAuthor: Josuah Demangeon <mail@josuah.net> URL:mailto:mail@josuah.net bitreich.org 70
iDate: Thu, 18 Jan 2018 02:10:39 +0100 Err bitreich.org 70
i Err bitreich.org 70
iuse cheap caching by choosing the buffer Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M iomenu.c | 31 ++++++++++++++++--------------- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 16 insertions(+), 15 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/iomenu.c b/iomenu.c /scm/iomenu/file/iomenu.c.gph bitreich.org 70
i@@ -161,26 +161,27 @@ tokenize(char **tokv, char *str) Err bitreich.org 70
i Err bitreich.org 70
i /* Err bitreich.org 70
i * First split input into token, then match every token independently against Err bitreich.org 70
i- * every line. The matching lines fills matchv. Err bitreich.org 70
i+ * every line. The matching lines fills matchv. Matches are searched inside Err bitreich.org 70
i+ * of `searchv' of size `searchc' Err bitreich.org 70
i */ Err bitreich.org 70
i static void Err bitreich.org 70
i-filter(void) Err bitreich.org 70
i+filter(int searchc, char **searchv) Err bitreich.org 70
i { Err bitreich.org 70
i- extern char **linev, **matchv; Err bitreich.org 70
i- extern int linec, matchc, cur; Err bitreich.org 70
i+ extern char **matchv; Err bitreich.org 70
i+ extern int matchc, cur; Err bitreich.org 70
i Err bitreich.org 70
i int n; Err bitreich.org 70
i char *tokv[sizeof(input) / 2 * sizeof(char *) + sizeof(NULL)]; Err bitreich.org 70
i char *s, buf[sizeof(input)]; Err bitreich.org 70
i Err bitreich.org 70
i- cur = 0; Err bitreich.org 70
i strncpy(buf, input, sizeof(input)); Err bitreich.org 70
i buf[sizeof(input) - 1] = '\0'; Err bitreich.org 70
i tokenize(tokv, buf); Err bitreich.org 70
i- matchc = 0; Err bitreich.org 70
i- for (n = 0; n < linec; n++) Err bitreich.org 70
i- if (match_line(linev[n], tokv)) Err bitreich.org 70
i- matchv[matchc++] = linev[n]; Err bitreich.org 70
i+ Err bitreich.org 70
i+ cur = matchc = 0; Err bitreich.org 70
i+ for (n = 0; n < searchc; n++) Err bitreich.org 70
i+ if (match_line(searchv[n], tokv)) Err bitreich.org 70
i+ matchv[matchc++] = searchv[n]; Err bitreich.org 70
i if (flag_hs && matchv[cur][0] == '#') Err bitreich.org 70
i move(+1); Err bitreich.org 70
i } Err bitreich.org 70
i@@ -214,7 +215,7 @@ remove_word() Err bitreich.org 70
i len = strlen(input) - 1; Err bitreich.org 70
i for (i = len; i >= 0 && !isspace(input[i]); i--) Err bitreich.org 70
i input[i] = '\0'; Err bitreich.org 70
i- filter(); Err bitreich.org 70
i+ filter(linec, linev); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i static void Err bitreich.org 70
i@@ -229,7 +230,7 @@ add_char(char c) Err bitreich.org 70
i input[len] = c; Err bitreich.org 70
i input[len + 1] = '\0'; Err bitreich.org 70
i } Err bitreich.org 70
i- filter(); Err bitreich.org 70
i+ filter(matchc, matchv); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i static void Err bitreich.org 70
i@@ -272,7 +273,7 @@ top: Err bitreich.org 70
i return -1; Err bitreich.org 70
i case CTL('U'): Err bitreich.org 70
i input[0] = '\0'; Err bitreich.org 70
i- filter(); Err bitreich.org 70
i+ filter(linec, linev); Err bitreich.org 70
i break; Err bitreich.org 70
i case CTL('W'): Err bitreich.org 70
i remove_word(); Err bitreich.org 70
i@@ -280,7 +281,7 @@ top: Err bitreich.org 70
i case 127: Err bitreich.org 70
i case CTL('H'): /* backspace */ Err bitreich.org 70
i input[strlen(input) - 1] = '\0'; Err bitreich.org 70
i- filter(); Err bitreich.org 70
i+ filter(linec, linev); Err bitreich.org 70
i break; Err bitreich.org 70
i case CSI('A'): /* up */ Err bitreich.org 70
i case CTL('P'): Err bitreich.org 70
i@@ -309,7 +310,7 @@ top: Err bitreich.org 70
i strncpy(input, matchv[cur], sizeof(input)); Err bitreich.org 70
i input[sizeof(input) - 1] = '\0'; Err bitreich.org 70
i } Err bitreich.org 70
i- filter(); Err bitreich.org 70
i+ filter(matchc, matchv); Err bitreich.org 70
i break; Err bitreich.org 70
i case CTL('J'): /* enter */ Err bitreich.org 70
i case CTL('M'): Err bitreich.org 70
i@@ -499,7 +500,7 @@ main(int argc, char *argv[]) Err bitreich.org 70
i Err bitreich.org 70
i parse_opt(argc, argv); Err bitreich.org 70
i read_stdin(); Err bitreich.org 70
i- filter(); Err bitreich.org 70
i+ filter(linec, linev); Err bitreich.org 70
i if (!freopen("/dev/tty", "r", stdin)) Err bitreich.org 70
i die("freopen /dev/tty"); Err bitreich.org 70
i if (!freopen("/dev/tty", "w", stderr)) Err bitreich.org 70
.
Response:
text/plain