mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
scripts/config: properly report and set string options
Currently, scripts/config removes the leading double-quote from string options, but leaves the trailing double-quote. Also, double-quotes in a string are escaped, but scripts/config does not unescape those when printing Finally, scripts/config does not escape double-quotes when setting string options. Eg. the current behavior: $ grep -E '^CONFIG_FOO=' .config CONFIG_FOO="Bar \"Buz\" Meh" $ ./scripts/config -s FOO Bar \"Buz\" Meh" $ ./scripts/config --set-str FOO 'Alpha "Bravo" Charlie' $ grep -E '^CONFIG_FOO=' .config CONFIG_FOO="Alpha "Bravo" Charlie" Fix those three, giving this new behavior: $ grep -E '^CONFIG_FOO=' .config CONFIG_FOO="Bar \"Buz\" Meh" $ ./scripts/config -s FOO Bar "Buz" Meh $ ./scripts/config --set-str FOO 'Alpha "Bravo" Charlie' $ grep -E '^CONFIG_FOO=' .config CONFIG_FOO="Alpha \"Bravo\" Charlie" Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: Andi Kleen <andi@firstfloor.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
parent
9f420bf0f4
commit
d6686da814
@ -107,7 +107,8 @@ while [ "$1" != "" ] ; do
|
||||
;;
|
||||
|
||||
--set-str)
|
||||
set_var "CONFIG_$ARG" "CONFIG_$ARG=\"$1\""
|
||||
# sed swallows one level of escaping, so we need double-escaping
|
||||
set_var "CONFIG_$ARG" "CONFIG_$ARG=\"${1//\"/\\\\\"}\""
|
||||
shift
|
||||
;;
|
||||
|
||||
@ -124,9 +125,11 @@ while [ "$1" != "" ] ; do
|
||||
if [ $? != 0 ] ; then
|
||||
echo undef
|
||||
else
|
||||
V="${V/CONFIG_$ARG=/}"
|
||||
V="${V/\"/}"
|
||||
echo "$V"
|
||||
V="${V/#CONFIG_$ARG=/}"
|
||||
V="${V/#\"/}"
|
||||
V="${V/%\"/}"
|
||||
V="${V/\\\"/\"}"
|
||||
echo "${V}"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
Loading…
Reference in New Issue
Block a user