From 016bcb7b8840fd0b4ef83d0992e4c16be57add94 Mon Sep 17 00:00:00 2001 From: millert Date: Mon, 21 Jul 2003 23:28:00 +0000 Subject: Historically, the "Only in" messages produced in dir mode were not printed when the output format was -e (ed) since this prevented the output from being used as an ed script. However, POSIX specifies that this message shall always be printed regardless of the output format (this is also what GNU diff does). Also do the same with the "Common subdirectory" message which POSIX lists as optional. --- usr.bin/diff/diffdir.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'usr.bin/diff/diffdir.c') diff --git a/usr.bin/diff/diffdir.c b/usr.bin/diff/diffdir.c index f130cf00568..a7e3df88121 100644 --- a/usr.bin/diff/diffdir.c +++ b/usr.bin/diff/diffdir.c @@ -1,4 +1,4 @@ -/* $OpenBSD: diffdir.c,v 1.23 2003/07/21 22:57:17 millert Exp $ */ +/* $OpenBSD: diffdir.c,v 1.24 2003/07/21 23:28:00 millert Exp $ */ /* * Copyright (c) 2003 Todd C. Miller @@ -21,7 +21,7 @@ */ #ifndef lint -static const char rcsid[] = "$OpenBSD: diffdir.c,v 1.23 2003/07/21 22:57:17 millert Exp $"; +static const char rcsid[] = "$OpenBSD: diffdir.c,v 1.24 2003/07/21 23:28:00 millert Exp $"; #endif /* not lint */ #include @@ -117,9 +117,7 @@ diffdir(char *p1, char *p2) diffit(dent1, path1, dirlen1, path2, dirlen2); else if (lflag) dent1->d_status |= D_ONLY; - else if (format == D_NORMAL || format == D_CONTEXT || - format == D_UNIFIED || format == D_BRIEF) - /* XXX GNU diff always prints this XXX */ + else printf("Only in %.*s: %s\n", (int)(dirlen1 - 1), path1, dent1->d_name); dp1++; @@ -129,9 +127,7 @@ diffdir(char *p1, char *p2) diffit(dent2, path1, dirlen1, path2, dirlen2); else if (lflag) dent2->d_status |= D_ONLY; - else if (format == D_NORMAL || format == D_CONTEXT || - format == D_UNIFIED || format == D_BRIEF) - /* XXX GNU diff always prints this XXX */ + else printf("Only in %.*s: %s\n", (int)(dirlen2 - 1), path2, dent2->d_name); dp2++; @@ -284,8 +280,7 @@ diffit(struct dirent *dp, char *path1, size_t plen1, char *path2, size_t plen2) diffdir(path1, path2); else if (lflag) dp->d_status |= D_COMMON; - else if (format != D_EDIT) - /* XXX GNU diff always prints this for dirs XXX */ + else printf("Common subdirectories: %s and %s\n", path1, path2); return; -- cgit v1.2.3-59-g8ed1b