aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/diff
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2018-06-09 21:09:24 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2018-06-09 21:09:24 +0000
commite620f7fb56fa741b6e8f196979195f3a14b1dddb (patch)
treef6a235a35dc713fd02873405517643c7537c752e /usr.bin/diff
parent2b771029347b50d68b4ba29a92232d2c00c775cc (diff)
downloadsrc-e620f7fb56fa741b6e8f196979195f3a14b1dddb.tar.gz
src-e620f7fb56fa741b6e8f196979195f3a14b1dddb.zip
diff: Import fixes from OpenBSD
original commit log by miller@OpenBSD r1.46: Fix exit value when diffing directories with missing files and the -N or -P options are not used. From Ibrahim Khalifa
Notes
Notes: svn path=/head/; revision=334896
Diffstat (limited to 'usr.bin/diff')
-rw-r--r--usr.bin/diff/diffdir.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/usr.bin/diff/diffdir.c b/usr.bin/diff/diffdir.c
index a022bffc1150..2b6e5f366454 100644
--- a/usr.bin/diff/diffdir.c
+++ b/usr.bin/diff/diffdir.c
@@ -58,7 +58,7 @@ diffdir(char *p1, char *p2, int flags)
dirlen1 = strlcpy(path1, *p1 ? p1 : ".", sizeof(path1));
if (dirlen1 >= sizeof(path1) - 1) {
warnc(ENAMETOOLONG, "%s", p1);
- status = 2;
+ status |= 2;
return;
}
if (path1[dirlen1 - 1] != '/') {
@@ -68,7 +68,7 @@ diffdir(char *p1, char *p2, int flags)
dirlen2 = strlcpy(path2, *p2 ? p2 : ".", sizeof(path2));
if (dirlen2 >= sizeof(path2) - 1) {
warnc(ENAMETOOLONG, "%s", p2);
- status = 2;
+ status |= 2;
return;
}
if (path2[dirlen2 - 1] != '/') {
@@ -131,12 +131,12 @@ diffdir(char *p1, char *p2, int flags)
dp2++;
} else if (pos < 0) {
/* file only in first dir, only diff if -N */
- if (Nflag)
+ if (Nflag) {
diffit(dent1, path1, dirlen1, path2, dirlen2,
flags);
- else {
+ } else {
print_only(path1, dirlen1, dent1->d_name);
- status = 1;
+ status |= 1;
}
dp1++;
} else {
@@ -146,7 +146,7 @@ diffdir(char *p1, char *p2, int flags)
flags);
else {
print_only(path2, dirlen2, dent2->d_name);
- status = 1;
+ status |= 1;
}
dp2++;
}