From 07cc7c31cef05e5e7080333fe9f569c395b99f8d Mon Sep 17 00:00:00 2001 From: osm0sis Date: Wed, 7 Mar 2018 14:24:39 -0400 Subject: [PATCH] AK2: fix section functions with "" for next-blank-line end search --- tools/ak2-core.sh | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/tools/ak2-core.sh b/tools/ak2-core.sh index dcecf98..146c460 100755 --- a/tools/ak2-core.sh +++ b/tools/ak2-core.sh @@ -353,32 +353,38 @@ replace_string() { # replace_section replace_section() { begin=`grep -n "$2" $1 | head -n1 | cut -d: -f1`; - for end in `grep -n "$3" $1 | cut -d: -f1`; do - if [ "$begin" -a "$end" ] && [ "$begin" -lt "$end" ]; then - if [ "$3" == " " -o -z "$3" ]; then - sed -i "/${2//\//\\/}/,/^\s*$/d" $1; - else - sed -i "/${2//\//\\/}/,/${3//\//\\/}/d" $1; + if [ "$begin" ]; then + test "$3" == " " -o -z "$3" && endstr='^$' || endstr="$3"; + for end in `grep -n "$endstr" $1 | cut -d: -f1`; do + if [ "$end" ] && [ "$begin" -lt "$end" ]; then + if [ "$3" == " " -o -z "$3" ]; then + sed -i "/${2//\//\\/}/,/^\s*$/d" $1; + else + sed -i "/${2//\//\\/}/,/${3//\//\\/}/d" $1; + fi; + sed -i "${begin}s;^;${4}\n;" $1; + break; fi; - sed -i "${begin}s;^;${4}\n;" $1; - break; - fi; - done; + done; + fi; } # remove_section remove_section() { begin=`grep -n "$2" $1 | head -n1 | cut -d: -f1`; - for end in `grep -n "$3" $1 | cut -d: -f1`; do - if [ "$begin" -a "$end" ] && [ "$begin" -lt "$end" ]; then - if [ "$3" == " " -o -z "$3" ]; then - sed -i "/${2//\//\\/}/,/^\s*$/d" $1; - else - sed -i "/${2//\//\\/}/,/${3//\//\\/}/d" $1; + if [ "$begin" ]; then + test "$3" == " " -o -z "$3" && endstr='^$' || endstr="$3"; + for end in `grep -n "$endstr" $1 | cut -d: -f1`; do + if [ "$end" ] && [ "$begin" -lt "$end" ]; then + if [ "$3" == " " -o -z "$3" ]; then + sed -i "/${2//\//\\/}/,/^\s*$/d" $1; + else + sed -i "/${2//\//\\/}/,/${3//\//\\/}/d" $1; + fi; + break; fi; - break; - fi; - done; + done; + fi; } # insert_line