+# Create $@~ which is the previous contents. Don't use `mv' here so
+# that even if we are interrupted, the file is still available for
+# diff in the next run. Note that $@ might not exist yet.
+ { test ! -f $@ || cat $@; } >$@~
+ test ! -f $@.tmp || rm -f $@.tmp