aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-11-11 22:43:10 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-11-11 22:43:10 +0000
commit0d8736772d3dda40852c552edfbc649a3494d2fa (patch)
treeee01fb7bf66c8477914bf2b0dc1b8d4d7cd0286d
parent272710fe938d122617e35989f071f083d959e13f (diff)
downloadbusybox-w32-0d8736772d3dda40852c552edfbc649a3494d2fa.tar.gz
busybox-w32-0d8736772d3dda40852c552edfbc649a3494d2fa.tar.bz2
busybox-w32-0d8736772d3dda40852c552edfbc649a3494d2fa.zip
head: report file open errors with exitcode 1 (was happily returning 0)
head_main 409 417 +8
-rw-r--r--coreutils/head.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/coreutils/head.c b/coreutils/head.c
index 570f140b1..ac476d091 100644
--- a/coreutils/head.c
+++ b/coreutils/head.c
@@ -40,7 +40,6 @@ int head_main(int argc, char **argv)
40 int count_bytes = 0; 40 int count_bytes = 0;
41 int header_threshhold = 1; 41 int header_threshhold = 1;
42#endif 42#endif
43
44 FILE *fp; 43 FILE *fp;
45 const char *fmt; 44 const char *fmt;
46 char *p; 45 char *p;
@@ -50,7 +49,7 @@ int head_main(int argc, char **argv)
50 49
51#if ENABLE_INCLUDE_SUSv2 || ENABLE_FEATURE_FANCY_HEAD 50#if ENABLE_INCLUDE_SUSv2 || ENABLE_FEATURE_FANCY_HEAD
52 /* Allow legacy syntax of an initial numeric option without -n. */ 51 /* Allow legacy syntax of an initial numeric option without -n. */
53 if (argc > 1 && argv[1][0] == '-' 52 if (argv[1] && argv[1][0] == '-'
54 && isdigit(argv[1][1]) 53 && isdigit(argv[1][1])
55 ) { 54 ) {
56 --argc; 55 --argc;
@@ -79,7 +78,6 @@ int head_main(int argc, char **argv)
79#if ENABLE_INCLUDE_SUSv2 || ENABLE_FEATURE_FANCY_HEAD 78#if ENABLE_INCLUDE_SUSv2 || ENABLE_FEATURE_FANCY_HEAD
80 GET_COUNT: 79 GET_COUNT:
81#endif 80#endif
82
83#if !ENABLE_FEATURE_FANCY_HEAD 81#if !ENABLE_FEATURE_FANCY_HEAD
84 count = xatoul(p); 82 count = xatoul(p);
85#else 83#else
@@ -128,10 +126,12 @@ int head_main(int argc, char **argv)
128 putchar(c); 126 putchar(c);
129 } 127 }
130 if (fclose_if_not_stdin(fp)) { 128 if (fclose_if_not_stdin(fp)) {
131 bb_simple_perror_msg(*argv); /* Avoid multibyte problems. */ 129 bb_simple_perror_msg(*argv);
132 retval = EXIT_FAILURE; 130 retval = EXIT_FAILURE;
133 } 131 }
134 die_if_ferror_stdout(); 132 die_if_ferror_stdout();
133 } else {
134 retval = EXIT_FAILURE;
135 } 135 }
136 fmt = header_fmt_str; 136 fmt = header_fmt_str;
137 } while (*++argv); 137 } while (*++argv);