aboutsummaryrefslogtreecommitdiff
path: root/autoreload_inotify.c
diff options
context:
space:
mode:
Diffstat (limited to 'autoreload_inotify.c')
-rw-r--r--autoreload_inotify.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/autoreload_inotify.c b/autoreload_inotify.c
index de9cdf8..7c5b09a 100644
--- a/autoreload_inotify.c
+++ b/autoreload_inotify.c
@@ -85,7 +85,7 @@ bool arl_handle(arl_t *arl)
{
bool reload = false;
char *ptr;
- const struct inotify_event *event;
+ const struct inotify_event *e;
for (;;) {
ssize_t len = read(arl->fd, buf.d, sizeof(buf.d));
@@ -95,14 +95,14 @@ bool arl_handle(arl_t *arl)
continue;
break;
}
- for (ptr = buf.d; ptr < buf.d + len; ptr += sizeof(*event) + event->len) {
- event = (const struct inotify_event*) ptr;
- if (event->mask & IN_CLOSE_WRITE) {
+ for (ptr = buf.d; ptr < buf.d + len; ptr += sizeof(*e) + e->len) {
+ e = (const struct inotify_event*) ptr;
+ if (e->wd == arl->wd_file && (e->mask & IN_CLOSE_WRITE)) {
reload = true;
- } else if (event->mask & IN_DELETE_SELF) {
+ } else if (e->wd == arl->wd_file && (e->mask & IN_DELETE_SELF)) {
rm_watch(arl->fd, &arl->wd_file);
- } else if (event->mask & (IN_CREATE | IN_MOVED_TO)) {
- if (STREQ(event->name, arl->filename))
+ } else if (e->wd == arl->wd_dir && (e->mask & (IN_CREATE | IN_MOVED_TO))) {
+ if (STREQ(e->name, arl->filename))
reload = true;
}
}