configure: properly quote configure options stored in config.*
authorMåns Rullgård <mans@mansr.com>
Mon, 15 Jun 2009 22:12:21 +0000 (22:12 +0000)
committerMåns Rullgård <mans@mansr.com>
Mon, 15 Jun 2009 22:12:21 +0000 (22:12 +0000)
Originally committed as revision 19201 to svn://svn.ffmpeg.org/ffmpeg/trunk

configure

index 38f84a8..05e5d19 100755 (executable)
--- a/configure
+++ b/configure
@@ -283,6 +283,12 @@ c_escape(){
     echo "$*" | sed 's/["\\]/\\\0/g'
 }
 
+sh_quote(){
+    v=$(echo "$1" | sed "s/'/'\\\\''/g")
+    test "$v" = "${v#*[ |&;<>()$\`\\\"\'*?\[\]#~=%]}" || v="'$v'"
+    echo "$v"
+}
+
 set_all(){
     value=$1
     shift
@@ -1270,9 +1276,9 @@ else
 fi
 
 for v in "$@"; do
-    r="${v#*=}"
-    l="${v%$r}"
-    test "$r" = "${r#* }" || r="'$r'"
+    r=${v#*=}
+    l=${v%"$r"}
+    r=$(sh_quote "$r")
     FFMPEG_CONFIGURATION="${FFMPEG_CONFIGURATION# } ${l}${r}"
 done
 
@@ -2444,7 +2450,7 @@ echo "# Automatically generated by configure - do not modify!" > config.mak
 echo "/* Automatically generated by configure - do not modify! */" > $TMPH
 echo "#ifndef FFMPEG_CONFIG_H" >> $TMPH
 echo "#define FFMPEG_CONFIG_H" >> $TMPH
-echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH
+echo "#define FFMPEG_CONFIGURATION \"$(c_escape $FFMPEG_CONFIGURATION)\"" >> $TMPH
 echo "#define FFMPEG_DATADIR \"$(eval c_escape $datadir)\"" >> $TMPH
 
 echo "FFMPEG_CONFIGURATION=$FFMPEG_CONFIGURATION" >> config.mak