cleaner code - iomenu - interactive terminal-based selection menu
(HTM) git clone git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
(DIR) commit 277ca72956b6deb921cbe96f981214602624c6ac
(DIR) parent cf83d371853dced03fb2db5af7f2b8e04e48f469
(HTM) Author: Josuah Demangeon <mail@josuah.net>
Date: Tue, 31 Oct 2017 15:59:42 +0100
cleaner code
Diffstat:
M buffer.c | 28 ++++++++++++++++------------
M main.c | 2 +-
2 files changed, 17 insertions(+), 13 deletions(-)
---
(DIR) diff --git a/buffer.c b/buffer.c
@@ -79,29 +79,33 @@ read_stdin(void)
void
filter(void)
{
- int tokc = 0;
- int n = 0;
- int i;
- char **tokv = NULL;
- char *s;
- char buffer[sizeof (input)];
extern char **linev;
- extern current;
+ extern int current;
+ int tokc;
+ int n;
+ char **tokv = NULL;
+ char *s;
+ char buf[sizeof (input)];
current = offset = next = 0;
- strcpy(buffer, input);
- for (s = strtok(buffer, " "); s; s = strtok(NULL, " "), tokc++) {
+ strcpy(buf, input);
+ tokc = 0;
+ n = 0;
+ s = strtok(buf, " ");
+ while (s) {
if (tokc >= n) {
tokv = realloc(tokv, ++n * sizeof (*tokv));
if (tokv == NULL)
die("realloc");
}
tokv[tokc] = s;
+ s = strtok(NULL, " ");
+ tokc++;
}
matchc = 0;
- for (i = 0; i < linec; i++)
- if (match_line(linev[i], tokv, tokc))
- matchv[matchc++] = linev[i];
+ for (n = 0; n < linec; n++)
+ if (match_line(linev[n], tokv, tokc))
+ matchv[matchc++] = linev[n];
free(tokv);
if (opt['#'] && matchv[current][0] == '#')
move(+1);
(DIR) diff --git a/main.c b/main.c
@@ -47,7 +47,7 @@ set_terminal(void)
{
struct termios new;
- fputs("\x1b[s\x1b[?1049h", stderr);
+ fputs("\x1b[s\x1b[?1049h\x1b[H", stderr);
if (tcgetattr(ttyfd, &termios) < 0 || tcgetattr(ttyfd, &new) < 0) {
perror("tcgetattr");
exit(EXIT_FAILURE);