changeset 313:d1ae502ee190

An error from an input file isn't fatal, keep reading remaining input files.
author Rob Landley <rob@landley.net>
date Fri, 15 Aug 2008 14:16:53 -0500
parents 064fc1b8b7b1
children 5ab9d0e5e0f8
files toys/cat.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/toys/cat.c	Fri Aug 15 14:14:10 2008 -0500
+++ b/toys/cat.c	Fri Aug 15 14:16:53 2008 -0500
@@ -1,6 +1,6 @@
 /* vi: set sw=4 ts=4:
  *
- * hello.c - A hello world program.
+ * cat.c - copy inputs to stdout.
  *
  * Copyright 2006 Rob Landley <rob@landley.net>
  *
@@ -14,6 +14,7 @@
 	help
 	  usage: cat [-u] [file...]
 	  Copy (concatenate) files to stdout.  If no files listed, copy from stdin.
+	  Filename "-" is a synonym for stdin.
 
 	  -u	Copy one byte at a time (slow).
 */
@@ -25,8 +26,11 @@
 	int len, size=toys.optflags ? 1 : sizeof(toybuf);
 
 	for (;;) {
-		len = xread(fd, toybuf, size);
-		if (len<0) toys.exitval = EXIT_FAILURE;
+		len = read(fd, toybuf, size);
+		if (len<0) {
+			perror_msg("%s",name);
+			toys.exitval = EXIT_FAILURE;
+		}
 		if (len<1) break;
 		xwrite(1, toybuf, len);
 	}