public inbox for linux-kbuild@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] scripts/config: use sed's POSIX interface
@ 2013-07-10 19:58 Clement Chauplannaz
  2013-07-10 20:38 ` Yann E. MORIN
  0 siblings, 1 reply; 3+ messages in thread
From: Clement Chauplannaz @ 2013-07-10 19:58 UTC (permalink / raw)
  To: linux-kbuild; +Cc: mmarek, ak, yann.morin.1998

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@gmail.com>
---
 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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-07-10 22:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-10 19:58 [PATCH] scripts/config: use sed's POSIX interface Clement Chauplannaz
2013-07-10 20:38 ` Yann E. MORIN
2013-07-10 22:20   ` Clément Chauplannaz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox