Remove filter as you type mode - noice - small file browser (mirror / fork from… | |
git clone git://git.codemadness.org/noice | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 9f6d1cfb334d7268608e04379400ce8bbe0429c9 | |
parent d909de605c133037b72b4cfbcd34e83b130aa55c | |
Author: sin <[email protected]> | |
Date: Mon, 8 Feb 2016 16:52:07 +0000 | |
Remove filter as you type mode | |
Nobody uses it and adds additional complexity. | |
Diffstat: | |
M config.def.h | 2 -- | |
M noice.1 | 2 -- | |
M noice.c | 98 +----------------------------… | |
3 files changed, 2 insertions(+), 100 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
@@ -32,8 +32,6 @@ struct key bindings[] = { | |
/* Filter */ | |
{ '/', SEL_FLTR }, | |
{ '&', SEL_FLTR }, | |
- /* Filter as you type */ | |
- { '?', SEL_TYPE }, | |
/* Next */ | |
{ 'j', SEL_NEXT }, | |
{ KEY_DOWN, SEL_NEXT }, | |
diff --git a/noice.1 b/noice.1 | |
@@ -47,8 +47,6 @@ Open file or enter directory. | |
Back up one directory level. | |
.It Ic / or & | |
Change filter (see below for more information). | |
-.It Ic \&? | |
-Enter filter-as-you-type mode. | |
.It Ic c | |
Change into the given directory. | |
.It Ic t | |
diff --git a/noice.c b/noice.c | |
@@ -50,7 +50,6 @@ enum action { | |
SEL_BACK, | |
SEL_GOIN, | |
SEL_FLTR, | |
- SEL_TYPE, | |
SEL_NEXT, | |
SEL_PREV, | |
SEL_PGDN, | |
@@ -355,58 +354,6 @@ readln(void) | |
return ln[0] ? strdup(ln) : NULL; | |
} | |
-/* | |
- * Read one key and modify the provided string accordingly. | |
- * Returns 0 when more input is expected and 1 on completion. | |
- */ | |
-int | |
-readmore(char **str) | |
-{ | |
- int c, ret = 0; | |
- int i; | |
- char *ln = *str; | |
- | |
- timeout(-1); | |
- if (ln != NULL) | |
- i = strlen(ln); | |
- else | |
- i = 0; | |
- DPRINTF_D(i); | |
- | |
- curs_set(TRUE); | |
- | |
- c = getch(); | |
- switch (c) { | |
- case KEY_ENTER: | |
- case '\r': | |
- ret = 1; | |
- break; | |
- case KEY_BACKSPACE: | |
- case CONTROL('H'): | |
- i--; | |
- if (i > 0) { | |
- ln = xrealloc(ln, (i + 1) * sizeof(*ln)); | |
- ln[i] = '\0'; | |
- } else { | |
- free(ln); | |
- ln = NULL; | |
- } | |
- break; | |
- default: | |
- i++; | |
- ln = xrealloc(ln, (i + 1) * sizeof(*ln)); | |
- ln[i - 1] = c; | |
- ln[i] = '\0'; | |
- } | |
- | |
- curs_set(FALSE); | |
- | |
- *str = ln; | |
- timeout(1000); | |
- | |
- return ret; | |
-} | |
- | |
int | |
canopendir(char *path) | |
{ | |
@@ -627,25 +574,18 @@ browse(const char *ipath, const char *ifilter) | |
struct stat sb; | |
regex_t re; | |
int r, fd; | |
- int nowtyping = 0; | |
strlcpy(path, ipath, sizeof(path)); | |
strlcpy(fltr, ifilter, sizeof(fltr)); | |
begin: | |
r = populate(); | |
if (r == -1) { | |
- if (!nowtyping) { | |
- printwarn(); | |
- goto nochange; | |
- } | |
+ printwarn(); | |
+ goto nochange; | |
} | |
for (;;) { | |
redraw(); | |
- | |
- /* Handle filter-as-you-type mode */ | |
- if (nowtyping) | |
- goto moretyping; | |
nochange: | |
switch (nextsel(&run, &env)) { | |
case SEL_QUIT: | |
@@ -734,40 +674,6 @@ nochange: | |
if (n > 0) | |
mkpath(path, dents[cur].name, oldpath, sizeof(… | |
goto begin; | |
- case SEL_TYPE: | |
- nowtyping = 1; | |
- tmp = NULL; | |
-moretyping: | |
- printprompt("type: "); | |
- if (tmp != NULL) | |
- printw("%s", tmp); | |
- r = readmore(&tmp); | |
- DPRINTF_D(r); | |
- DPRINTF_S(tmp); | |
- if (r == 1) | |
- nowtyping = 0; | |
- /* Check regex errors */ | |
- if (tmp != NULL) { | |
- r = setfilter(&re, tmp); | |
- if (r != 0) | |
- if (nowtyping) { | |
- goto moretyping; | |
- } else { | |
- free(tmp); | |
- goto nochange; | |
- } | |
- } | |
- /* Copy or reset filter */ | |
- if (tmp != NULL) | |
- strlcpy(fltr, tmp, sizeof(fltr)); | |
- else | |
- strlcpy(fltr, ifilter, sizeof(fltr)); | |
- /* Save current */ | |
- if (n > 0) | |
- mkpath(path, dents[cur].name, oldpath, sizeof(… | |
- if (!nowtyping) | |
- free(tmp); | |
- goto begin; | |
case SEL_NEXT: | |
if (cur < n - 1) | |
cur++; |