[git commit master 1/1] cmp: with -s, do not report open errors

Denys Vlasenko vda.linux at googlemail.com
Sun Nov 21 17:11:40 UTC 2010


commit: http://git.busybox.net/busybox/commit/?id=ac10b30070d31f123ba95cf8e59c33a892efc5b0
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 editors/cmp.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/editors/cmp.c b/editors/cmp.c
index f495da7..f84a56e 100644
--- a/editors/cmp.c
+++ b/editors/cmp.c
@@ -33,8 +33,6 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
 	unsigned opt;
 	int retval = 0;
 
-	xfunc_error_retval = 2;	/* 1 is returned if files are different. */
-
 	opt_complementary = "-1"
 			IF_DESKTOP(":?4")
 			IF_NOT_DESKTOP(":?2")
@@ -43,8 +41,6 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
 	argv += optind;
 
 	filename1 = *argv;
-	fp1 = xfopen_stdin(filename1);
-
 	if (*++argv) {
 		filename2 = *argv;
 		if (ENABLE_DESKTOP && *++argv) {
@@ -55,6 +51,10 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
 		}
 	}
 
+	xfunc_error_retval = 2;  /* missing file results in exitcode 2 */
+	if (opt & CMP_OPT_s)
+		logmode = 0;  /* -s suppresses open error messages */
+	fp1 = xfopen_stdin(filename1);
 	fp2 = xfopen_stdin(filename2);
 	if (fp1 == fp2) {		/* Paranoia check... stdin == stdin? */
 		/* Note that we don't bother reading stdin.  Neither does gnu wc.
@@ -63,6 +63,7 @@ int cmp_main(int argc UNUSED_PARAM, char **argv)
 		 */
 		return 0;
 	}
+	logmode = LOGMODE_STDIO;
 
 	if (opt & CMP_OPT_l)
 		fmt = fmt_l_opt;
-- 
1.7.2.2



More information about the busybox-cvs mailing list