diff options
-rw-r--r-- | 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; |