comment | 17 +++++++++++------ diff --git a/comment b/comment index a2fc9e4193cd891d6e79d5e9b13cdbf589516d6fd1805b401cca25c58d3ccf79..f4784bd1111fcdf084a0c454b792c15ca168f6727ced26c848d2d14a1dc079ff 100755 --- a/comment +++ b/comment @@ -11,15 +11,20 @@ [[ -n $1 ]] || usage issue=${1#issues/} comment=issues/$issue/comment -$PERL -i -npe 's/^/# /' $comment +local tmp=`mktemp` +trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT +$PERL -npe 's/^/# /' < $comment > $tmp zmodload -F zsh/stat b:zstat -zstat -A ctimePrev +ctime $comment -$EDITOR $comment -zstat -A ctime +ctime $comment +zstat -A ctimePrev +ctime $tmp +$EDITOR $tmp +zstat -A ctime +ctime $tmp [[ $ctime != $ctimePrev ]] || { echo Aborting comment >&2 - $PERL -i -npe 's/^# //' $comment exit 0 } -$PERL -i -ne 'print if $can; if (/^$/) { $can=1 };' $comment +if [[ -s $comment ]]; then + $PERL -ne 'print if $can; if (/^$/) { $can=1 };' < $tmp > $comment +else + cat < $tmp > $comment +fi git add $comment