diff options
Diffstat (limited to 'contrib/nvi/build/recover.in')
-rw-r--r-- | contrib/nvi/build/recover.in | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/contrib/nvi/build/recover.in b/contrib/nvi/build/recover.in new file mode 100644 index 0000000..cfaf75f --- /dev/null +++ b/contrib/nvi/build/recover.in @@ -0,0 +1,49 @@ +#!/bin/sh - +# +# @(#)recover.in 8.8 (Berkeley) 10/10/96 +# +# Script to recover nvi edit sessions. + +RECDIR="@vi_cv_path_preserve@" +SENDMAIL="@vi_cv_path_sendmail@" + +echo 'Recovering nvi editor sessions.' + +# Check editor backup files. +vibackup=`echo $RECDIR/vi.*` +if [ "$vibackup" != "$RECDIR/vi.*" ]; then + for i in $vibackup; do + # Only test files that are readable. + if test ! -r $i; then + continue + fi + + # Unmodified nvi editor backup files either have the + # execute bit set or are zero length. Delete them. + if test -x $i -o ! -s $i; then + rm $i + fi + done +fi + +# It is possible to get incomplete recovery files, if the editor crashes +# at the right time. +virecovery=`echo $RECDIR/recover.*` +if [ "$virecovery" != "$RECDIR/recover.*" ]; then + for i in $virecovery; do + # Only test files that are readable. + if test ! -r $i; then + continue + fi + + # Delete any recovery files that are zero length, corrupted, + # or that have no corresponding backup file. Else send mail + # to the user. + recfile=`awk '/^X-vi-recover-path:/{print $2}' < $i` + if test -n "$recfile" -a -s "$recfile"; then + $SENDMAIL -t < $i + else + rm $i + fi + done +fi |