[git commit] build system: fix non-portable sed constructs.

Denys Vlasenko vda.linux at googlemail.com
Fri Jan 10 10:54:37 UTC 2014


commit: http://git.busybox.net/busybox/commit/?id=9b76f895bcd50c97df66c7e0192e045245eb519f
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

This includes proper line breaks for labels and closing braces,
and removing non-portable \n and \t in s/// functions.

Signed-off-by: Matthias Andree <matthias.andree at gmx.de>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 scripts/gen_build_files.sh |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/scripts/gen_build_files.sh b/scripts/gen_build_files.sh
index 0989b2f..e8fa831 100755
--- a/scripts/gen_build_files.sh
+++ b/scripts/gen_build_files.sh
@@ -31,7 +31,12 @@ generate()
 		# copy stdin to stdout
 		cat
 		# print everything after INSERT line
-		sed -n '/^INSERT$/ { :l; n; p; bl }' "${src}"
+		sed -n '/^INSERT$/ {
+		:l
+		    n
+		    p
+		    bl
+		}' "${src}"
 	} >"${dst}.tmp"
 	if ! cmp -s "${dst}" "${dst}.tmp"; then
 		gen "${dst}"
@@ -52,7 +57,12 @@ sed -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c \
 # We add line continuation backslash after each line,
 # and insert empty line before each line which doesn't start
 # with space or tab
-sed -n -e 's@^//usage:\([ \t].*\)$@\1 \\@p' -e 's@^//usage:\([^ \t].*\)$@\n\1 \\@p' \
+TAB="$(printf '\tX')"
+TAB="${TAB%X}"
+LF="$(printf '\nX')"
+LF="${LF%X}"
+sed -n -e 's@^//usage:\([ '"$TAB"'].*\)$@\1 \\@p' \
+       -e 's@^//usage:\([^ '"$TAB"'].*\)$@\'"$LF"'\1 \\@p' \
 	"$srctree"/*/*.c "$srctree"/*/*/*.c \
 | generate \
 	"$srctree/include/usage.src.h" \


More information about the busybox-cvs mailing list