aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch-new.c
diff options
context:
space:
mode:
authorGravatar Austin Clements <amdragon@MIT.EDU>2012-05-24 18:01:12 -0400
committerGravatar David Bremner <bremner@debian.org>2012-05-24 21:53:19 -0300
commitda170ee6573ca8a04f01ebf789250f6b4b4d3cf0 (patch)
tree669de55ffad596bb33441478356e0366432eba32 /notmuch-new.c
parentd99270c450d8f9ef3ecfbcbeeb99b581f36c9175 (diff)
new: Merge error checks from add_files and add_files_recursive
Previously, add_files_recursive could have been called on a symlink to a non-directory. Hence, calling it on a non-directory was not an error, so a separate function, add_files, existed to fail loudly in situations where the path had to be a directory. With the new stat-ing logic, add_files_recursive is always called on directories, so the separation of this logic is no longer necessary. Hence, this patch moves the strict error checking previously done by add_files into add_files_recursive.
Diffstat (limited to 'notmuch-new.c')
-rw-r--r--notmuch-new.c27
1 files changed, 5 insertions, 22 deletions
diff --git a/notmuch-new.c b/notmuch-new.c
index c64f1a77..2b056050 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -308,11 +308,10 @@ add_files_recursive (notmuch_database_t *notmuch,
}
stat_time = time (NULL);
- /* This is not an error since we may have recursed based on a
- * symlink to a regular file, not a directory, and we don't know
- * that until this stat. */
- if (! S_ISDIR (st.st_mode))
- return NOTMUCH_STATUS_SUCCESS;
+ if (! S_ISDIR (st.st_mode)) {
+ fprintf (stderr, "Error: %s is not a directory.\n", path);
+ return NOTMUCH_STATUS_FILE_ERROR;
+ }
fs_mtime = st.st_mtime;
@@ -655,23 +654,7 @@ add_files (notmuch_database_t *notmuch,
const char *path,
add_files_state_t *state)
{
- notmuch_status_t status;
- struct stat st;
-
- if (stat (path, &st)) {
- fprintf (stderr, "Error reading directory %s: %s\n",
- path, strerror (errno));
- return NOTMUCH_STATUS_FILE_ERROR;
- }
-
- if (! S_ISDIR (st.st_mode)) {
- fprintf (stderr, "Error: %s is not a directory.\n", path);
- return NOTMUCH_STATUS_FILE_ERROR;
- }
-
- status = add_files_recursive (notmuch, path, state);
-
- return status;
+ return add_files_recursive (notmuch, path, state);
}
/* XXX: This should be merged with the add_files function since it