diff options
author | Aurélien Aptel <aurelien.aptel@gmail.com> | 2013-07-16 16:16:29 +0200 |
---|---|---|
committer | Andreas Schneider <asn@samba.org> | 2014-02-19 18:22:28 +0100 |
commit | 6d0ff6d2f0366e2b8f6d5dc3b15ddb3abb57163a (patch) | |
tree | 27e19ec363a46460fdf33231d76fd4569ac303b2 /source3/client/clitar.c | |
parent | b8258540055e01fcb2d26776be4b5914b00b5a8d (diff) | |
download | samba-6d0ff6d2f0366e2b8f6d5dc3b15ddb3abb57163a.tar.gz samba-6d0ff6d2f0366e2b8f6d5dc3b15ddb3abb57163a.tar.xz samba-6d0ff6d2f0366e2b8f6d5dc3b15ddb3abb57163a.zip |
clitar.c: fix creation exclusion, don't reverse in exclusion mode
Signed-off-by: Aurélien Aptel <aurelien.aptel@gmail.com>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'source3/client/clitar.c')
-rw-r--r-- | source3/client/clitar.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source3/client/clitar.c b/source3/client/clitar.c index c1195e9514b..d3d17d88417 100644 --- a/source3/client/clitar.c +++ b/source3/client/clitar.c @@ -352,7 +352,8 @@ static bool tar_create_skip_path(struct tar *t, const bool skip = true; const mode_t mode = finfo->mode; const bool isdir = mode & FILE_ATTRIBUTE_DIRECTORY; - bool in; + const bool exclude = t->mode.selection == TAR_EXCLUDE; + bool in = true; if (!isdir) { @@ -374,10 +375,12 @@ static bool tar_create_skip_path(struct tar *t, /* 3. is it in the selection list? */ - in = t->path_list_size > 0 ? tar_path_in_list(t, fullpath, isdir) : true; + if (t->path_list_size > 0) { + in = tar_path_in_list(t, fullpath, isdir && !exclude); + } /* inverse result if in exclude mode */ - if (t->mode.selection == TAR_EXCLUDE) { + if (exclude) { in = !in; } |