mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Disable dir watch in filter mode
This commit is contained in:
parent
fb521a7a94
commit
be337d883e
28
nnn.c
28
nnn.c
|
@ -785,21 +785,35 @@ nextsel(char **run, char **env, int *presel)
|
|||
|
||||
if (c == 0)
|
||||
c = getch();
|
||||
else
|
||||
else {
|
||||
*presel = 0;
|
||||
|
||||
/* Unwatch dir if we are still in a filtered view */
|
||||
#ifdef LINUX_INOTIFY
|
||||
if (inotify_wd >= 0) {
|
||||
inotify_rm_watch(inotify_fd, inotify_wd);
|
||||
inotify_wd = -1;
|
||||
}
|
||||
#elif defined(BSD_KQUEUE)
|
||||
if (event_fd >= 0) {
|
||||
close(event_fd);
|
||||
event_fd = -1;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (c == -1) {
|
||||
++idle;
|
||||
#ifdef LINUX_INOTIFY
|
||||
|
||||
/* Do not check for directory changes in du
|
||||
* mode. A redraw forces du calculation.
|
||||
* Check for changes every odd second.
|
||||
*/
|
||||
if (!cfg.blkorder && inotify_wd >= 0 && idle & 1)
|
||||
if (read(inotify_fd, inotify_buf, EVENT_BUF_LEN) > 0)
|
||||
#ifdef LINUX_INOTIFY
|
||||
if (!cfg.blkorder && inotify_wd >= 0 && idle & 1 && read(inotify_fd, inotify_buf, EVENT_BUF_LEN) > 0)
|
||||
#elif defined(BSD_KQUEUE)
|
||||
if (!cfg.blkorder && event_fd >= 0 && idle & 1)
|
||||
if (kevent(kq, events_to_monitor, NUM_EVENT_SLOTS, event_data, NUM_EVENT_FDS, >imeout) > 0)
|
||||
if (!cfg.blkorder && event_fd >= 0 && idle & 1
|
||||
&& kevent(kq, events_to_monitor, NUM_EVENT_SLOTS, event_data, NUM_EVENT_FDS, >imeout) > 0)
|
||||
#endif
|
||||
c = CONTROL('L');
|
||||
} else
|
||||
|
@ -2492,7 +2506,7 @@ nochange:
|
|||
break;
|
||||
|
||||
/* Open the descriptor to currently open directory */
|
||||
fd = open(path, O_RDONLY | O_DIRECTORY | O_NOATIME);
|
||||
fd = open(path, O_RDONLY | O_DIRECTORY);
|
||||
if (fd == -1) {
|
||||
printwarn();
|
||||
goto nochange;
|
||||
|
|
Loading…
Reference in a new issue