summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authorcperciva <cperciva@FreeBSD.org>2007-03-17 16:17:14 +0000
committercperciva <cperciva@FreeBSD.org>2007-03-17 16:17:14 +0000
commit117ac27300d0e34f21bf6102e3b81e7057c467e9 (patch)
tree48de37776737a768b1dcc5b38a5e9aff602fdbed /usr.bin
parent820da8080755db82e36689306abdb1572440348f (diff)
downloadFreeBSD-src-117ac27300d0e34f21bf6102e3b81e7057c467e9.zip
FreeBSD-src-117ac27300d0e34f21bf6102e3b81e7057c467e9.tar.gz
Fix logic bug; we want to do_chdir if arg doesn't start with / _and_ it
doesn't start with @/ either. This unbreaks "tar -c -C /no/such/directory @/path/to/archive". MFC after: 3 days
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/tar/write.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/usr.bin/tar/write.c b/usr.bin/tar/write.c
index 7353439..476730d 100644
--- a/usr.bin/tar/write.c
+++ b/usr.bin/tar/write.c
@@ -450,7 +450,7 @@ write_archive(struct archive *a, struct bsdtar *bsdtar)
}
set_chdir(bsdtar, arg);
} else {
- if (*arg != '/' || (arg[0] == '@' && arg[1] != '/'))
+ if (*arg != '/' && (arg[0] != '@' || arg[1] != '/'))
do_chdir(bsdtar); /* Handle a deferred -C */
if (*arg == '@') {
if (append_archive(bsdtar, a, arg + 1) != 0)
OpenPOWER on IntegriCloud