aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Araps <dylan.araps@gmail.com>2026-03-02 14:26:04 +0200
committerDylan Araps <dylan.araps@gmail.com>2026-03-02 14:26:04 +0200
commit46af36d62ee704e95653ac8bf937f55c199a7854 (patch)
treeb668cf797e6393e52172a2d0fadc566efe945f7a
parent02d397f864f1242809de4677ee1727399dd2616d (diff)
dfm: work with nameless events
This is needed for BSD kqueue.
-rw-r--r--dfm.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/dfm.c b/dfm.c
index 797700d..d6b6612 100644
--- a/dfm.c
+++ b/dfm.c
@@ -3548,12 +3548,16 @@ static inline void
fm_watch_handle(struct fm *p)
{
for (cut n = {0};;) {
- switch (fs_watch_pump(&p->p, &n.d, &n.l)) {
- case '!': fm_dir_refresh(p); return;
+ char r = fs_watch_pump(&p->p, &n.d, &n.l);
+ if (!r) return;
+ if (r == '!' || !n.l) {
+ fm_dir_refresh(p);
+ return;
+ }
+ switch (r) {
case '+': fm_dir_add(p, n); break;
case '-': fm_dir_del(p, n); break;
case '~': fm_dir_del(p, n); fm_dir_add(p, n); break;
- default: return;
}
}
}