diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-11-12 01:59:41 +0300 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-11-12 01:59:41 +0300 |
commit | f91f14d2211148ade28270572b9c45023f9b6580 (patch) | |
tree | 8b8d9060a9f5c68694f494a4bcbfce9338dc1c65 /coreutils | |
parent | 0d8736772d3dda40852c552edfbc649a3494d2fa (diff) |
cksum, printenv: report errors via exitcode
function old new delta
cksum_main 296 315 +19
printenv_main 74 86 +12
Diffstat (limited to 'coreutils')
-rw-r--r-- | coreutils/cksum.c | 7 | ||||
-rw-r--r-- | coreutils/printenv.c | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/coreutils/cksum.c b/coreutils/cksum.c index 546532c3c..3a77c753a 100644 --- a/coreutils/cksum.c +++ b/coreutils/cksum.c @@ -15,6 +15,7 @@ int cksum_main(int argc UNUSED_PARAM, char **argv) uint32_t crc; off_t length, filesize; int bytes_read; + int exit_code = EXIT_SUCCESS; uint8_t *cp; #if ENABLE_DESKTOP @@ -27,8 +28,10 @@ int cksum_main(int argc UNUSED_PARAM, char **argv) do { int fd = open_or_warn_stdin(*argv ? *argv : bb_msg_standard_input); - if (fd < 0) + if (fd < 0) { + exit_code = EXIT_FAILURE; continue; + } crc = 0; length = 0; @@ -60,5 +63,5 @@ int cksum_main(int argc UNUSED_PARAM, char **argv) crc, filesize, *argv); } while (*argv && *++argv); - fflush_stdout_and_exit(EXIT_SUCCESS); + fflush_stdout_and_exit(exit_code); } diff --git a/coreutils/printenv.c b/coreutils/printenv.c index 6971f7258..2430f3a1a 100644 --- a/coreutils/printenv.c +++ b/coreutils/printenv.c @@ -13,6 +13,8 @@ int printenv_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int printenv_main(int argc UNUSED_PARAM, char **argv) { + int exit_code = EXIT_SUCCESS; + /* no variables specified, show whole env */ if (!argv[1]) { int e = 0; @@ -26,8 +28,10 @@ int printenv_main(int argc UNUSED_PARAM, char **argv) env = getenv(arg); if (env) puts(env); + else + exit_code = EXIT_FAILURE; } } - fflush_stdout_and_exit(EXIT_SUCCESS); + fflush_stdout_and_exit(exit_code); } |