aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2013-11-30 16:21:15 -0500
committerMike Frysinger <vapier@gentoo.org>2013-11-30 16:33:31 -0500
commitaf30c4b86e20512cbd2cfa861ff8346ed6bd1c3e (patch)
treec04c41ef1a3c63a44a91aeeaac627ed115768317
parent6965d85f2efb4e1d7b37e04af890b715091fe3d9 (diff)
functions.sh: yesno: (mostly) fix eval logic
We need to quote the expansion. X-Gentoo-Bug: 475032 X-Gentoo-Bug: https://bugs.gentoo.org/475032 Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--sh/functions.sh.in7
1 files changed, 6 insertions, 1 deletions
diff --git a/sh/functions.sh.in b/sh/functions.sh.in
index 52a8ae77..e4e69eb7 100644
--- a/sh/functions.sh.in
+++ b/sh/functions.sh.in
@@ -24,13 +24,18 @@ yesno()
{
[ -z "$1" ] && return 1
+ # Check the value directly so people can do:
+ # yesno ${VAR}
case "$1" in
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0;;
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1;;
esac
+ # Check the value of the var so people can do:
+ # yesno VAR
+ # Note: this breaks when the var contains a double quote.
local value=
- eval value=\$${1}
+ eval value=\"\$$1\"
case "$value" in
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0;;
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1;;