[PATCH] kbuild-2.5: quote Menuconfig quotemarks

From: Lightweight patch manager (patch@luckynet.dynu.com)
Date: Sun Jun 02 2002 - 13:57:21 EST


kbuild-2.5: quote the quotemarks in scripts/Menuconfig in order to pass
            them through to eval and avoid annoying bugs

BTW, these patches are also available at
<URL:ftp://luckynet.dynu.com/pub/linux/kbuild-2.5/>

diff -Nur kbuild-2.5/scripts/Menuconfig kbuild-2.5/scripts/Menuconfig
--- kbuild-2.5/scripts/Menuconfig Sat Jun 1 16:19:33 2002
+++ kbuild-2.5/scripts/Menuconfig Sat Jun 1 16:19:33 2002 +0000 thunder (thunder-2.5/scripts/Menuconfig 1.1 0644)
@@ -73,6 +73,10 @@
 # - Support for multiple conditions in dep_tristate().
 # - Implemented new functions: define_tristate(), define_int(), define_hex(),
 # define_string(), dep_bool().
+#
+# 12 November 2001, Keith Owens <kaos@ocs.com.au>
+# Escape double quotes on eval so the quotes are still there on the second
+# evaluation, required to handle strings with special characters.
 #
 
 
@@ -105,11 +109,11 @@
     eval x=\$$1
     if [ -z "$x" ]; then
         eval `sed -n -e 's/# \(.*\) is not set.*/\1=n/' -e "/^$1=/p" arch/$ARCH/defconfig`
- eval x=\${$1:-"$2"}
+ eval x=\${$1:-\"$2\"}
         eval $1=$x
         eval INFO_$1="' (NEW)'"
     fi
- eval info="\$INFO_$1"
+ eval info=\"\$INFO_$1\"
 }
 
 #
@@ -151,7 +155,7 @@
 }
 
 function define_string () {
- eval $1="$2"
+ eval $1=\"$2\"
 }
 
 #
@@ -333,7 +337,7 @@
 
         while [ -n "$2" ]
         do
- if eval [ "_\$$2" = "_y" ]
+ if eval [ \"_\$$2\" = \"_y\" ]
                 then
                         current=$1
                         break
@@ -543,9 +547,9 @@
                         # we avoid them:
                         if expr "$answer" : '0$' '|' "$answer" : '[1-9][0-9]*$' '|' "$answer" : '-[1-9][0-9]*$' >/dev/null
                         then
- eval $2="$answer"
+ eval $2=\"$answer\"
                         else
- eval $2="$3"
+ eval $2=\"$3\"
                                 echo -en "\007"
                                 ${DIALOG} --backtitle "$backtitle" \
                                         --infobox "You have made an invalid entry." 3 43
@@ -576,9 +580,9 @@
 
                         if expr "$answer" : '[0-9a-fA-F][0-9a-fA-F]*$' >/dev/null
                         then
- eval $2="$answer"
+ eval $2=\"$answer\"
                         else
- eval $2="$3"
+ eval $2=\"$3\"
                                 echo -en "\007"
                                 ${DIALOG} --backtitle "$backtitle" \
                                         --infobox "You have made an invalid entry." 3 43
@@ -676,9 +680,9 @@
         do
                 if [ "$2" = "$choice" ]
                 then
- eval $2="y"
+ eval $2=\"y\"
                 else
- eval $2="n"
+ eval $2=\"n\"
                 fi
                 
                 shift ; shift
@@ -941,9 +945,9 @@
 
                         [ "_" = "_$ALT_CONFIG" ] && break
 
- if eval [ -r "$ALT_CONFIG" ]
+ if eval [ -r \"$ALT_CONFIG\" ]
                         then
- eval load_config_file "$ALT_CONFIG"
+ eval load_config_file \"$ALT_CONFIG\"
                                 break
                         else
                                 echo -ne "\007"
@@ -1067,12 +1071,12 @@
         #
         function bool () {
                 set_x_info "$2" "n"
- eval define_bool "$2" "$x"
+ eval define_bool \"$2\" \"$x\"
         }
 
         function tristate () {
                 set_x_info "$2" "n"
- eval define_tristate "$2" "$x"
+ eval define_tristate \"$2\" \"$x\"
         }
 
         function dep_tristate () {
@@ -1138,19 +1142,19 @@
         }
 
         function define_hex () {
- eval $1="$2"
+ eval $1=\"$2\"
                        echo "$1=$2" >>$CONFIG
                 echo "#define $1 0x${2##*[x,X]}" >>$CONFIG_H
         }
 
         function define_int () {
- eval $1="$2"
+ eval $1=\"$2\"
                 echo "$1=$2" >>$CONFIG
                 echo "#define $1 ($2)" >>$CONFIG_H
         }
 
         function define_string () {
- eval $1="$2"
+ eval $1=\"$2\"
                 echo "$1=\"$2\"" >>$CONFIG
                 echo "#define $1 \"$2\"" >>$CONFIG_H
         }
@@ -1160,7 +1164,7 @@
         }
 
         function define_tristate () {
- eval $1="$2"
+ eval $1=\"$2\"
 
                    case "$2" in
                  y)
@@ -1199,7 +1203,7 @@
                 set -- $choices
                 while [ -n "$2" ]
                 do
- if eval [ "_\$$2" = "_y" ]
+ if eval [ \"_\$$2\" = \"_y\" ]
                         then
                                 current=$1
                                 break

-- 
Lightweight patch manager using pine. If you have any objections, tell me.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Jun 07 2002 - 22:00:12 EST