From: Jann Horn Date: Sat, 12 Sep 2015 13:15:08 +0000 (+0200) Subject: the top-level directory also needs to be watched X-Git-Url: http://git.thejh.net/?p=cleanmysourcetree.git;a=commitdiff_plain;h=af483b5ba9bd4d85a911fa5940b80f0aa22c311c the top-level directory also needs to be watched --- diff --git a/cleanmysourcetree.c b/cleanmysourcetree.c index defb428..cc116ca 100644 --- a/cleanmysourcetree.c +++ b/cleanmysourcetree.c @@ -81,7 +81,7 @@ static void add_dir(const char *dir_path) { } static void add_files_recursive(const char *current_path) { - DIR *d = opendir((current_path[0] == '\0') ? "." : current_path); + DIR *d = opendir(current_path); if (d == NULL) err(1, "unable to open directory '%s'", current_path); @@ -91,12 +91,12 @@ static void add_files_recursive(const char *current_path) { if (readdir_r(d, &entry, &r_entry)) errx(1, "readdir_r failed"); if (r_entry == NULL) - return; + break; if (strcmp(entry.d_name, ".") == 0 || strcmp(entry.d_name, "..") == 0) continue; char file_path[strlen(current_path) + 1 + strlen(entry.d_name) + 1]; - if (current_path[0] == '\0') { + if (strcmp(current_path, ".") == 0) { strcpy(file_path, entry.d_name); } else { sprintf(file_path, "%s/%s", current_path, entry.d_name); @@ -113,12 +113,12 @@ static void add_files_recursive(const char *current_path) { // First recurse, then add the watch. This avoids spamming ourselves with irrelevant // directory open events. add_files_recursive(file_path); - add_dir(file_path); break; default: break; } } + add_dir(current_path); } volatile bool child_quit = false; @@ -158,7 +158,7 @@ int main(int argc, char **argv) { inotify_fd = inotify_init1(IN_CLOEXEC | IN_NONBLOCK); if (inotify_fd == -1) err(1, "unable to open inotify fd"); - add_files_recursive(""); + add_files_recursive("."); sigset_t sigchild_mask; sigemptyset(&sigchild_mask);