aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/hush.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/shell/hush.c b/shell/hush.c
index 42f95ef6b..cdc3a8618 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -9897,12 +9897,13 @@ Test that VAR is a valid variable name?
return EXIT_FAILURE;
}
- if (optstring[0] == ':') {
- opterr = 0;
- } else {
+ c = 0;
+ if (optstring[0] != ':') {
cp = get_local_var_value("OPTERR");
- opterr = cp ? atoi(cp) : 1;
+ /* 0 if "OPTERR=0", 1 otherwise */
+ c = (!cp || NOT_LONE_CHAR(cp, '0'));
}
+ opterr = c;
cp = get_local_var_value("OPTIND");
optind = cp ? atoi(cp) : 0;
optarg = NULL;