3 # Script to recover nvi edit sessions.
5 RECDIR="@vi_cv_path_preserve@"
7 [ -d ${RECDIR} ] || exit 1
8 find ${RECDIR} ! -type f -a ! -type d -delete
10 # Check editor backup files.
11 vibackup=`echo ${RECDIR}/vi.*`
12 if [ "${vibackup}" != '${RECDIR}/vi.*' ]; then
13 echo -n 'Recovering vi editor sessions:'
14 for i in ${RECDIR}/vi.*; do
15 # Only test files that are readable.
16 if [ ! -r "${i}" ]; then
20 # Unmodified nvi editor backup files either have the
21 # execute bit set or are zero length. Delete them.
22 if [ -x "${i}" -o ! -s "${i}" ]; then
29 # It is possible to get incomplete recovery files, if the editor crashes
31 virecovery=`echo ${RECDIR}/recover.*`
32 if [ "${virecovery}" != "${RECDIR}/recover.*" ]; then
33 for i in ${RECDIR}/recover.*; do
34 # Only test files that are readable.
35 if [ ! -r "${i}" ]; then
39 # Delete any recovery files that are zero length, corrupted,
40 # or that have no corresponding backup file. Else send mail
42 recfile=`awk '/^X-vi-data: *file;/ { sub(/^.*;/, " "); \
43 do { if (substr($0,1,1) == " ") print; else exit } \
44 while(getline) }' < "${i}" | uudecode -mr`
45 if [ -n "${recfile}" -a -s "${recfile}" ]; then
46 sendmail -odb -t < "${i}"