summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-11-11 22:59:41 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-11-11 22:59:41 +0000
commitf91f14d2211148ade28270572b9c45023f9b6580 (patch)
tree8b8d9060a9f5c68694f494a4bcbfce9338dc1c65
parent0d8736772d3dda40852c552edfbc649a3494d2fa (diff)
cksum, printenv: report errors via exitcode
function old new delta cksum_main 296 315 +19 printenv_main 74 86 +12
-rw-r--r--coreutils/cksum.c7
-rw-r--r--coreutils/printenv.c6
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);
}