[PATCH] More regressions fixes.
+ use awk again to parse git-cat-file properly
+ fixes .new -> .tmp (always use the same suffix to avoid problems)
+ write in foo.tmp and move it, and not the reverse :)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
---
guilt | 28 +++++++++++++++++-----------
1 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/guilt b/guilt
index 58df606..7c78cc7 100755
--- a/guilt
+++ b/guilt
@@ -177,16 +177,22 @@ do_make_header()
exit 2
fi
- git-cat-file -p "$1" | sed -e \
- '1,/^$/ {
- /^author/ {
- s/^author /From: /
- s/ [0-9]* [+-]*[0-9][0-9]*$//
- p
+ git-cat-file -p "$1" | awk '
+ BEGIN{headers=1; firstline=1}
+ /^author / && headers {
+ sub(/^author +/, "");
+ sub(/ [0-9]* [+-]*[0-9][0-9]*$/, "");
+ author=$0
+ }
+ !headers {
+ print
+ if (firstline) {
+ firstline = 0;
+ print "\nFrom: " author;
}
- /^$/p
- d
- }'
+ }
+ /^$/ && headers { headers = 0 }
+ '
}
# usage: do_get_header patchfile
@@ -267,7 +273,7 @@ series_rename_patch()
{
awk -v old="$1" -v new="$2" \
'{ if ($0 == old) print new; else print $0 }' \
- "$series.tmp" > "$series"
+ "$series" > "$series.tmp"
mv "$series.tmp" "$series"
}
@@ -284,7 +290,7 @@ applied_rename_patch()
print substr($0, 0, 41) new;
else
print;
- }' "$applied" > "$applied.new"
+ }' "$applied" > "$applied.tmp"
mv "$applied.tmp" "$applied"
}
--
1.5.2.1