From a1db8b8415cbac40c679a1ac11f90e97bf5a95f9 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 18 May 2010 00:24:17 +0200 Subject: [PATCH] make scripts/gen_build_files.sh standard-clean Signed-off-by: Denys Vlasenko --- scripts/gen_build_files.sh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/scripts/gen_build_files.sh b/scripts/gen_build_files.sh index 6982877d8..d2db907f3 100755 --- a/scripts/gen_build_files.sh +++ b/scripts/gen_build_files.sh @@ -1,7 +1,4 @@ #!/bin/sh -# bashism: -# "read -r" without variable name reads line into $REPLY -# without stripping whitespace. test $# -ge 2 || { echo "Syntax: $0 SRCTREE OBJTREE"; exit 1; } @@ -18,7 +15,12 @@ find -type d | while read -r d; do s=`sed -n 's@^//kbuild:@@p' -- "$srctree/$d"/*.c` echo "# DO NOT EDIT. This file is generated from Kbuild.src" >"$dst.$$.tmp" - while read -r; do + + # Why "IFS='' read -r REPLY"?? + # This atrocity is needed to read lines without mangling. + # IFS='' prevents whitespace trimming, + # -r suppresses backslash handling. + while IFS='' read -r REPLY; do test x"$REPLY" = x"INSERT" && REPLY="$s" printf "%s\n" "$REPLY" done <"$src" >>"$dst.$$.tmp" @@ -38,7 +40,8 @@ find -type d | while read -r d; do s=`sed -n 's@^//config:@@p' -- "$srctree/$d"/*.c` echo "# DO NOT EDIT. This file is generated from Config.src" >"$dst.$$.tmp" - while read -r; do + + while IFS='' read -r REPLY; do test x"$REPLY" = x"INSERT" && REPLY="$s" printf "%s\n" "$REPLY" done <"$src" >>"$dst.$$.tmp"