aboutsummaryrefslogtreecommitdiffstats
path: root/noice.c
diff options
context:
space:
mode:
Diffstat (limited to 'noice.c')
-rw-r--r--noice.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/noice.c b/noice.c
index 0e3eca7..e9e4e65 100644
--- a/noice.c
+++ b/noice.c
@@ -256,6 +256,12 @@ setfilter(regex_t *regex, char *filter)
return r;
}
+void
+initfilter(int dot, char **ifilter)
+{
+ *ifilter = dot ? "." : "^[^.]";
+}
+
int
visible(regex_t *regex, char *file)
{
@@ -793,10 +799,9 @@ nochange:
DPRINTF_S(path);
goto begin;
case SEL_TOGGLEDOT:
- if (strcmp(fltr, ifilter) != 0)
- strlcpy(fltr, ifilter, sizeof(fltr));
- else
- strlcpy(fltr, ".", sizeof(fltr));
+ showhidden ^= 1;
+ initfilter(showhidden, &ifilter);
+ strlcpy(fltr, ifilter, sizeof(fltr));
goto begin;
case SEL_MTIME:
mtimeorder = !mtimeorder;
@@ -855,9 +860,8 @@ main(int argc, char *argv[])
}
if (getuid() == 0)
- ifilter = ".";
- else
- ifilter = "^[^.]"; /* Hide dotfiles */
+ showhidden = 1;
+ initfilter(showhidden, &ifilter);
if (argv[1] != NULL) {
ipath = argv[1];