Update command and add check for edge-case.

This commit is contained in:
Devin Teske 2014-07-31 22:13:31 +00:00
parent 8d92719522
commit 7729d5e3ac
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=269354

View File

@ -222,7 +222,7 @@ f_have()
# setvar $var_to_set [$value] # setvar $var_to_set [$value]
# #
# Implement setvar for shells such as unlike FreeBSD sh(1). # Implement setvar for shells unlike FreeBSD sh(1).
# #
if ! f_have setvar; then if ! f_have setvar; then
setvar() setvar()
@ -236,6 +236,10 @@ setvar()
*) f_err "setvar: too many arguments\n" *) f_err "setvar: too many arguments\n"
return $FAILURE return $FAILURE
esac esac
case "$__setvar_var_to_set" in *[!0-9A-Za-z_]*)
f_err "setvar: %s: bad variable name\n" "$__setvar_var_to_set"
return 2
esac
while case "$__setvar_r" in *\'*) : ;; *) false ; esac while case "$__setvar_r" in *\'*) : ;; *) false ; esac
do do
__setvar_left="$__setvar_left${__setvar_right%%\'*}'\\''" __setvar_left="$__setvar_left${__setvar_right%%\'*}'\\''"