aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/commit
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/commit')
-rwxr-xr-xscripts/commit28
1 files changed, 19 insertions, 9 deletions
diff --git a/scripts/commit b/scripts/commit
index 992f93c3d..18a9b4aa7 100755
--- a/scripts/commit
+++ b/scripts/commit
@@ -11,15 +11,25 @@ addr="<`id -un`@`hostname -d`>"
for i in `find . -name Changes -print`; do
dir=`dirname $i`
if [ -s $dir/Changes ]; then
- lines=`wc -l <$dir/Changes`
- echo "$date $name $addr" >$dir/ChangeLog.new
- echo >>$dir/ChangeLog.new
- cat $dir/Changes >>$dir/ChangeLog.new
- [ -f $dir/ChangeLog ] && cat $dir/ChangeLog >>$dir/ChangeLog.new
- echo -n > $dir/Changes
- [ -f $dir/ChangeLog ] && rm $dir/ChangeLog
- mv $dir/ChangeLog.new $dir/ChangeLog
- echo "$lines new lines in $dir/ChangeLog"
+ awk '
+ state == 0 && /^[ \t]*$/ { next }
+ state == 0 { state = 1 }
+ /^[ \t]*$/ { empty++; next }
+ { while ( empty > 0 ) { print ""; empty--; }; print }
+ ' < $dir/Changes > $dir/Changes.tmp
+ if [ -s $dir/Changes.tmp ]; then
+ lines=`wc -l <$dir/Changes.tmp`
+ echo "$date $name $addr" >$dir/ChangeLog.new
+ echo >>$dir/ChangeLog.new
+ cat $dir/Changes.tmp >>$dir/ChangeLog.new
+ echo >>$dir/ChangeLog.new
+ [ -f $dir/ChangeLog ] && cat $dir/ChangeLog >>$dir/ChangeLog.new
+ echo -n > $dir/Changes
+ [ -f $dir/ChangeLog ] && rm $dir/ChangeLog
+ mv $dir/ChangeLog.new $dir/ChangeLog
+ echo "$lines new lines in $dir/ChangeLog"
+ fi
+ rm $dir/Changes.tmp || true
fi
done