summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/Z99-cloud-locale-test.sh19
1 files changed, 11 insertions, 8 deletions
diff --git a/tools/Z99-cloud-locale-test.sh b/tools/Z99-cloud-locale-test.sh
index 4012beeb..3c51f22d 100755
--- a/tools/Z99-cloud-locale-test.sh
+++ b/tools/Z99-cloud-locale-test.sh
@@ -10,10 +10,13 @@
#
locale_warn() {
- local cr="
-"
- local bad_names="" bad_lcs="" key="" value="" var=""
+ local bad_names="" bad_lcs="" key="" val="" var="" vars=""
local w1 w2 w3 w4 remain
+
+ # if shell is zsh, act like sh only for this function (-L).
+ # The behavior change will not permenently affect user's shell.
+ [ "${ZSH_NAME+zsh}" = "zsh" ] && emulate -L sh
+
# locale is expected to output either:
# VARIABLE=
# VARIABLE="value"
@@ -22,7 +25,7 @@ locale_warn() {
case "$w1" in
locale:) bad_names="${bad_names} ${w4}";;
*)
- key=${w1%%\=*}
+ key=${w1%%=*}
val=${w1#*=}
val=${val#\"}
val=${val%\"}
@@ -31,10 +34,10 @@ locale_warn() {
done
for bad in $bad_names; do
for var in ${vars}; do
- [ "${bad}" = "${var%\=*}" ] || continue
- value=${var#*=}
- [ "${bad_lcs#* ${value}}" = "${bad_lcs}" ] &&
- bad_lcs="${bad_lcs} ${value}"
+ [ "${bad}" = "${var%=*}" ] || continue
+ val=${var#*=}
+ [ "${bad_lcs#* ${val}}" = "${bad_lcs}" ] &&
+ bad_lcs="${bad_lcs} ${val}"
break
done
done