changeset 509:e7c742f78361

Only show one normal difference (sans -l) and EOF message should go to stdout, not stderr.
author Rob Landley <rob@landley.net>
date Fri, 02 Mar 2012 08:33:01 -0600
parents f062652562bd
children 45c10e86be43
files toys/cmp.c
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/toys/cmp.c	Fri Mar 02 08:27:50 2012 -0600
+++ b/toys/cmp.c	Fri Mar 02 08:33:01 2012 -0600
@@ -63,17 +63,17 @@
 					if (!(toys.optflags & FLAG_s)) {
 						printf("%s %s differ: char %ld, line %ld\n",
 							TT.name, name, byte_no, line_no);
+						toys.exitval++;
 					}
-					return;
+					goto out;
 				}
-
 			}
 			byte_no++;
 			if (toybuf[i] == '\n') line_no++;
 		}
 		if (len1 != len2) {
 			if (!(toys.optflags & FLAG_s)) {
-				fdprintf(2, "cmp: EOF on %s\n",
+				printf("cmp: EOF on %s\n",
 					len1 < len2 ? TT.name : name);
 			}
 			toys.exitval = 1;
@@ -81,6 +81,7 @@
 		}
 		if (len1 < 1) break;
 	}
+out:
 	if (CFG_TOYBOX_FREE) close(TT.fd);
 }