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
This commit is contained in:
parent
2b77102934
commit
e620f7fb56
@ -58,7 +58,7 @@ diffdir(char *p1, char *p2, int flags)
|
|||||||
dirlen1 = strlcpy(path1, *p1 ? p1 : ".", sizeof(path1));
|
dirlen1 = strlcpy(path1, *p1 ? p1 : ".", sizeof(path1));
|
||||||
if (dirlen1 >= sizeof(path1) - 1) {
|
if (dirlen1 >= sizeof(path1) - 1) {
|
||||||
warnc(ENAMETOOLONG, "%s", p1);
|
warnc(ENAMETOOLONG, "%s", p1);
|
||||||
status = 2;
|
status |= 2;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (path1[dirlen1 - 1] != '/') {
|
if (path1[dirlen1 - 1] != '/') {
|
||||||
@ -68,7 +68,7 @@ diffdir(char *p1, char *p2, int flags)
|
|||||||
dirlen2 = strlcpy(path2, *p2 ? p2 : ".", sizeof(path2));
|
dirlen2 = strlcpy(path2, *p2 ? p2 : ".", sizeof(path2));
|
||||||
if (dirlen2 >= sizeof(path2) - 1) {
|
if (dirlen2 >= sizeof(path2) - 1) {
|
||||||
warnc(ENAMETOOLONG, "%s", p2);
|
warnc(ENAMETOOLONG, "%s", p2);
|
||||||
status = 2;
|
status |= 2;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (path2[dirlen2 - 1] != '/') {
|
if (path2[dirlen2 - 1] != '/') {
|
||||||
@ -131,12 +131,12 @@ diffdir(char *p1, char *p2, int flags)
|
|||||||
dp2++;
|
dp2++;
|
||||||
} else if (pos < 0) {
|
} else if (pos < 0) {
|
||||||
/* file only in first dir, only diff if -N */
|
/* file only in first dir, only diff if -N */
|
||||||
if (Nflag)
|
if (Nflag) {
|
||||||
diffit(dent1, path1, dirlen1, path2, dirlen2,
|
diffit(dent1, path1, dirlen1, path2, dirlen2,
|
||||||
flags);
|
flags);
|
||||||
else {
|
} else {
|
||||||
print_only(path1, dirlen1, dent1->d_name);
|
print_only(path1, dirlen1, dent1->d_name);
|
||||||
status = 1;
|
status |= 1;
|
||||||
}
|
}
|
||||||
dp1++;
|
dp1++;
|
||||||
} else {
|
} else {
|
||||||
@ -146,7 +146,7 @@ diffdir(char *p1, char *p2, int flags)
|
|||||||
flags);
|
flags);
|
||||||
else {
|
else {
|
||||||
print_only(path2, dirlen2, dent2->d_name);
|
print_only(path2, dirlen2, dent2->d_name);
|
||||||
status = 1;
|
status |= 1;
|
||||||
}
|
}
|
||||||
dp2++;
|
dp2++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user