X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=updatedb.cpp;h=cf19992ca3716feb5ac6d098d7007431af2a1676;hb=59e63cbf6b038178bd11a7c705a583ff74db966c;hp=e1320b3e1ef58affd7dda61f7486921589754f8f;hpb=7d6997bb1fb76289dc65cc9aecb200735e209f60;p=plocate diff --git a/updatedb.cpp b/updatedb.cpp index e1320b3..cf19992 100644 --- a/updatedb.cpp +++ b/updatedb.cpp @@ -39,6 +39,7 @@ any later version. #include #include #include +#include #include #include #include @@ -161,7 +162,6 @@ struct entry { bool filesystem_is_excluded(const char *path) { if (conf_debug_pruning) { - /* This is debugging output, don't mark anything for translation */ fprintf(stderr, "Checking whether filesystem `%s' is excluded:\n", path); } FILE *f = setmntent("/proc/mounts", "r"); @@ -172,7 +172,6 @@ bool filesystem_is_excluded(const char *path) struct mntent *me; while ((me = getmntent(f)) != nullptr) { if (conf_debug_pruning) { - /* This is debugging output, don't mark anything for translation */ fprintf(stderr, " `%s', type `%s'\n", me->mnt_dir, me->mnt_type); } string type(me->mnt_type); @@ -185,7 +184,6 @@ bool filesystem_is_excluded(const char *path) if the filesystem is unavailable hard-mounted NFS. */ char *dir = me->mnt_dir; if (conf_debug_pruning) { - /* This is debugging output, don't mark anything for translation */ fprintf(stderr, " => type matches, dir `%s'\n", dir); } bool res = (strcmp(path, dir) == 0); @@ -198,7 +196,6 @@ bool filesystem_is_excluded(const char *path) } } if (conf_debug_pruning) { - /* This is debugging output, don't mark anything for translation */ fprintf(stderr, "...done\n"); } endmntent(f); @@ -532,17 +529,8 @@ string ExistingDB::read_next_dictionary() const // Takes ownership of fd. int scan(const string &path, int fd, dev_t parent_dev, dir_time modified, dir_time db_modified, ExistingDB *existing_db, DatabaseReceiver *corpus, DictionaryBuilder *dict_builder) { - if (string_list_contains_dir_path(&conf_prunepaths, &conf_prunepaths_index, path)) { - if (conf_debug_pruning) { - /* This is debugging output, don't mark anything for translation */ - fprintf(stderr, "Skipping `%s': in prunepaths\n", path.c_str()); - } - close(fd); - return 0; - } if (conf_prune_bind_mounts && is_bind_mount(path.c_str())) { if (conf_debug_pruning) { - /* This is debugging output, don't mark anything for translation */ fprintf(stderr, "Skipping `%s': bind mount\n", path.c_str()); } close(fd); @@ -691,11 +679,16 @@ int scan(const string &path, int fd, dev_t parent_dev, dir_time modified, dir_ti if (find(conf_prunenames.begin(), conf_prunenames.end(), e.name) != conf_prunenames.end()) { if (conf_debug_pruning) { - /* This is debugging output, don't mark anything for translation */ fprintf(stderr, "Skipping `%s': in prunenames\n", e.name.c_str()); } continue; } + if (string_list_contains_dir_path(&conf_prunepaths, &conf_prunepaths_index, (path_plus_slash + e.name).c_str())) { + if (conf_debug_pruning) { + fprintf(stderr, "Skipping `%s/%s': in prunepaths\n", path.c_str(), e.name.c_str()); + } + continue; + } e.fd = opendir_noatime(fd, e.name.c_str()); if (e.fd == -1) { @@ -707,8 +700,8 @@ int scan(const string &path, int fd, dev_t parent_dev, dir_time modified, dir_ti if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) { fprintf(stderr, "Hint: Try `ulimit -n 131072' or similar.\n"); } else { - fprintf(stderr, "Hint: Try `ulimit -n %lu' or similar (current limit is %lu).\n", - rlim.rlim_cur * 2, rlim.rlim_cur); + fprintf(stderr, "Hint: Try `ulimit -n %" PRIu64 " or similar (current limit is %" PRIu64 ").\n", + static_cast(rlim.rlim_cur * 2), static_cast(rlim.rlim_cur)); } exit(1); } @@ -796,7 +789,7 @@ int main(int argc, char **argv) conf_prepare(argc, argv); if (conf_prune_bind_mounts) { - bind_mount_init(MOUNTINFO_PATH); + bind_mount_init(); } int fd = open(conf_output.c_str(), O_RDONLY);