summaryrefslogtreecommitdiff
path: root/flist.c
diff options
context:
space:
mode:
Diffstat (limited to 'flist.c')
-rw-r--r--flist.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/flist.c b/flist.c
index 077e42c7..bd7ad16f 100644
--- a/flist.c
+++ b/flist.c
@@ -211,6 +211,8 @@ int link_stat(const char *path, STRUCT_STAT * buffer)
*/
static int check_exclude_file(char *fname, int is_dir, int exclude_level)
{
+ int rc;
+
#if 0 /* This currently never happens, so avoid a useless compare. */
if (exclude_level == NO_EXCLUDES)
return 0;
@@ -227,14 +229,15 @@ static int check_exclude_file(char *fname, int is_dir, int exclude_level)
}
}
if (server_exclude_list.head
- && check_exclude(&server_exclude_list, fname, is_dir))
+ && check_exclude(&server_exclude_list, fname, is_dir) < 0)
return 1;
if (exclude_level != ALL_EXCLUDES)
return 0;
- if (exclude_list.head && check_exclude(&exclude_list, fname, is_dir))
- return 1;
+ if (exclude_list.head
+ && (rc = check_exclude(&exclude_list, fname, is_dir)) != 0)
+ return rc < 0;
if (local_exclude_list.head
- && check_exclude(&local_exclude_list, fname, is_dir))
+ && check_exclude(&local_exclude_list, fname, is_dir) < 0)
return 1;
return 0;
}