mirror of https://github.com/xemu-project/xemu.git
configure: Don't use bash-specific string-replacement syntax
The variable string-replacement syntax ${var/old/new} is a bashism
(though it is also supported by some other shells), and for instance
does not work with the NetBSD /bin/sh, which complains:
../src/configure: 687: Syntax error: Bad substitution
Replace it with a more portable sed-based approach, similar to
what we already do in quote_sh().
Note that shellcheck also diagnoses this:
In ./configure line 687:
e=${e/'\'/'\\'}
^-----------^ SC2039: In POSIX sh, string replacement is undefined.
^-- SC1003: Want to escape a single quote? echo 'This is how it'\''s done'.
^-- SC1003: Want to escape a single quote? echo 'This is how it'\''s done'.
In ./configure line 688:
e=${e/\"/'\"'}
^----------^ SC2039: In POSIX sh, string replacement is undefined.
Fixes: 8154f5e64b
("meson: Prefix each element of firmware path")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Thomas Huth <thuth@redhat.com>
Message-id: 20220720152631.450903-4-peter.maydell@linaro.org
This commit is contained in:
parent
d466d416ed
commit
65842b03d1
|
@ -684,9 +684,10 @@ meson_option_build_array() {
|
||||||
IFS=:
|
IFS=:
|
||||||
fi
|
fi
|
||||||
for e in $1; do
|
for e in $1; do
|
||||||
e=${e/'\'/'\\'}
|
printf '"""'
|
||||||
e=${e/\"/'\"'}
|
# backslash escape any '\' and '"' characters
|
||||||
printf '"""%s""",' "$e"
|
printf "%s" "$e" | sed -e 's/\([\"]\)/\\\1/g'
|
||||||
|
printf '""",'
|
||||||
done)
|
done)
|
||||||
printf ']\n'
|
printf ']\n'
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue