Script `config' relies on extensions of `GNU sed', and is thus not working on all Unixes: - in-place edition of files (-i), which can be replaced with a temporary file; - extended-regexps (-r), which can be split into basic regexps; - single-line calls to `a' command, while some implementations require a leading newline before the parameter. Rewrite calls to `sed' program to comply with POSIX interface. Signed-off-by: Clement Chauplannaz <chauplac@xxxxxxxxx> --- scripts/config | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scripts/config b/scripts/config index a65ecbb..3fd95eb 100755 --- a/scripts/config +++ b/scripts/config @@ -66,9 +66,14 @@ set_var() { name_re="^($name=|# $name is not set)" before_re="^($before=|# $before is not set)" if test -n "$before" && grep -Eq "$before_re" "$FN"; then - sed -ri "/$before_re/a $new" "$FN" + lf=$'\n' + sed -e "/^$before=/a\\$lf$new$lf" \ + -e "/^# $before is not set/a\\$lf$new$lf" "$FN" >"$FN.swp" + mv "$FN.swp" "$FN" elif grep -Eq "$name_re" "$FN"; then - sed -ri "s:$name_re.*:$new:" "$FN" + sed -e "s:^$name=.*:$new:" \ + -e "s:^# $name is not set:$new:" "$FN" >"$FN.swp" + mv "$FN.swp" "$FN" else echo "$new" >>"$FN" fi @@ -77,7 +82,8 @@ set_var() { undef_var() { local name=$1 - sed -ri "/^($name=|# $name is not set)/d" "$FN" + sed -e "/^$name=/d" -e "/^# $name is not set/d" "$FN" >"$FN.swp" + mv "$FN.swp" "$FN" } if [ "$1" = "--file" ]; then -- 1.8.3.rc1.44.gb387c77.dirty -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html