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