From e620f7fb56fa741b6e8f196979195f3a14b1dddb Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Sat, 9 Jun 2018 21:09:24 +0000 Subject: [PATCH] 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 --- usr.bin/diff/diffdir.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/usr.bin/diff/diffdir.c b/usr.bin/diff/diffdir.c index a022bffc115..2b6e5f36645 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++; }