diff --git a/src/core/path.c b/src/core/path.c index ed3a0132c2..1491a07fa5 100644 --- a/src/core/path.c +++ b/src/core/path.c @@ -175,12 +175,14 @@ int path_spec_fd_event(PathSpec *s, uint32_t revents) { } static bool path_spec_check_good(PathSpec *s, bool initial) { - bool good = false; + bool b, good = false; switch (s->type) { case PATH_EXISTS: - good = access(s->path, F_OK) >= 0; + b = access(s->path, F_OK) >= 0; + good = b && !s->previous_exists; + s->previous_exists = b; break; case PATH_EXISTS_GLOB: @@ -196,14 +198,11 @@ static bool path_spec_check_good(PathSpec *s, bool initial) { } case PATH_CHANGED: - case PATH_MODIFIED: { - bool b; - + case PATH_MODIFIED: b = access(s->path, F_OK) >= 0; good = !initial && b != s->previous_exists; s->previous_exists = b; break; - } default: ;