head	1.2;
access;
symbols
	perseant-exfatfs-base-20250801:1.2
	perseant-exfatfs-base-20240630:1.2
	perseant-exfatfs:1.2.0.18
	perseant-exfatfs-base:1.2
	cjep_sun2x:1.2.0.16
	cjep_sun2x-base:1.2
	cjep_staticlib_x-base1:1.2
	cjep_staticlib_x:1.2.0.14
	cjep_staticlib_x-base:1.2
	phil-wifi-20200421:1.2
	phil-wifi-20200411:1.2
	phil-wifi-20200406:1.2
	pgoyette-compat-merge-20190127:1.2
	pgoyette-compat-20190127:1.2
	pgoyette-compat-20190118:1.2
	pgoyette-compat-1226:1.2
	pgoyette-compat-1126:1.2
	pgoyette-compat-1020:1.2
	pgoyette-compat-0930:1.2
	pgoyette-compat-0906:1.2
	pgoyette-compat-0728:1.2
	pgoyette-compat-0625:1.2
	pgoyette-compat-0521:1.2
	pgoyette-compat-0502:1.2
	pgoyette-compat-0422:1.2
	pgoyette-compat-0415:1.2
	pgoyette-compat-0407:1.2
	pgoyette-compat-0330:1.2
	pgoyette-compat-0322:1.2
	pgoyette-compat-0315:1.2
	pgoyette-compat:1.2.0.12
	pgoyette-compat-base:1.2
	perseant-stdc-iso10646:1.2.0.10
	perseant-stdc-iso10646-base:1.2
	prg-localcount2-base3:1.2
	prg-localcount2-base2:1.2
	prg-localcount2-base1:1.2
	prg-localcount2:1.2.0.8
	prg-localcount2-base:1.2
	pgoyette-localcount-20170426:1.2
	bouyer-socketcan-base1:1.2
	pgoyette-localcount-20170320:1.2
	bouyer-socketcan:1.2.0.6
	bouyer-socketcan-base:1.2
	pgoyette-localcount-20170107:1.2
	pgoyette-localcount-20161104:1.2
	localcount-20160914:1.2
	pgoyette-localcount-20160806:1.2
	pgoyette-localcount-20160726:1.2
	pgoyette-localcount:1.2.0.4
	pgoyette-localcount-base:1.2
	netbsd-5-2-3-RELEASE:1.1
	netbsd-5-1-5-RELEASE:1.1
	netbsd-6-0-6-RELEASE:1.1
	netbsd-6-1-5-RELEASE:1.1
	yamt-pagecache-base9:1.2
	yamt-pagecache-tag8:1.1
	netbsd-6-1-4-RELEASE:1.1
	netbsd-6-0-5-RELEASE:1.1
	tls-earlyentropy:1.2.0.2
	tls-earlyentropy-base:1.2
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2
	riastradh-drm2-base3:1.2
	netbsd-6-1-3-RELEASE:1.1
	netbsd-6-0-4-RELEASE:1.1
	netbsd-5-2-2-RELEASE:1.1
	netbsd-5-1-4-RELEASE:1.1
	netbsd-6-1-2-RELEASE:1.1
	netbsd-6-0-3-RELEASE:1.1
	netbsd-5-2-1-RELEASE:1.1
	netbsd-5-1-3-RELEASE:1.1
	netbsd-6-1-1-RELEASE:1.1
	riastradh-drm2-base2:1.1
	riastradh-drm2-base1:1.1
	riastradh-drm2:1.1.0.32
	riastradh-drm2-base:1.1
	netbsd-6-1:1.1.0.36
	netbsd-6-0-2-RELEASE:1.1
	netbsd-6-1-RELEASE:1.1
	netbsd-6-1-RC4:1.1
	netbsd-6-1-RC3:1.1
	agc-symver:1.1.0.34
	agc-symver-base:1.1
	netbsd-6-1-RC2:1.1
	netbsd-6-1-RC1:1.1
	yamt-pagecache-base8:1.1
	netbsd-5-2:1.1.0.30
	netbsd-6-0-1-RELEASE:1.1
	yamt-pagecache-base7:1.1
	netbsd-5-2-RELEASE:1.1
	netbsd-5-2-RC1:1.1
	matt-nb6-plus-nbase:1.1
	yamt-pagecache-base6:1.1
	netbsd-6-0:1.1.0.28
	netbsd-6-0-RELEASE:1.1
	netbsd-6-0-RC2:1.1
	tls-maxphys:1.1.0.26
	tls-maxphys-base:1.2
	matt-nb6-plus:1.1.0.24
	matt-nb6-plus-base:1.1
	netbsd-6-0-RC1:1.1
	yamt-pagecache-base5:1.1
	yamt-pagecache-base4:1.1
	netbsd-6:1.1.0.22
	netbsd-6-base:1.1
	netbsd-5-1-2-RELEASE:1.1
	netbsd-5-1-1-RELEASE:1.1
	yamt-pagecache-base3:1.1
	yamt-pagecache-base2:1.1
	yamt-pagecache:1.1.0.4
	yamt-pagecache-base:1.1
	cherry-xenmp:1.1.0.20
	cherry-xenmp-base:1.1
	bouyer-quota2-nbase:1.1
	bouyer-quota2:1.1.0.18
	bouyer-quota2-base:1.1
	matt-mips64-premerge-20101231:1.1
	matt-nb5-mips64-premerge-20101231:1.1
	matt-nb5-pq3:1.1.0.16
	matt-nb5-pq3-base:1.1
	netbsd-5-1:1.1.0.14
	netbsd-5-1-RELEASE:1.1
	netbsd-5-1-RC4:1.1
	matt-nb5-mips64-k15:1.1
	netbsd-5-1-RC3:1.1
	netbsd-5-1-RC2:1.1
	netbsd-5-1-RC1:1.1
	netbsd-5-0-2-RELEASE:1.1
	matt-nb5-mips64-premerge-20091211:1.1
	matt-premerge-20091211:1.1
	matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.1
	matt-nb4-mips64-k7-u2a-k9b:1.1
	matt-nb5-mips64-u1-k1-k5:1.1
	matt-nb5-mips64:1.1.0.12
	netbsd-5-0-1-RELEASE:1.1
	jym-xensuspend-nbase:1.1
	netbsd-5-0:1.1.0.10
	netbsd-5-0-RELEASE:1.1
	netbsd-5-0-RC4:1.1
	netbsd-5-0-RC3:1.1
	netbsd-5-0-RC2:1.1
	jym-xensuspend:1.1.0.8
	jym-xensuspend-base:1.1
	netbsd-5-0-RC1:1.1
	netbsd-5:1.1.0.6
	netbsd-5-base:1.1
	matt-mips64-base2:1.1
	wrstuden-revivesa-base-3:1.1
	wrstuden-revivesa:1.1.0.2
	wrstuden-revivesa-base-2:1.1;
locks; strict;
comment	@# @;


1.2
date	2013.11.28.22.39.30;	author christos;	state dead;
branches;
next	1.1;
commitid	XJ3zkLLBCgoe26fx;

1.1
date	2008.09.02.09.25.39;	author christos;	state Exp;
branches
	1.1.2.1
	1.1.4.1
	1.1.22.1
	1.1.26.1
	1.1.28.1
	1.1.36.1;
next	;

1.1.2.1
date	2008.09.02.09.25.39;	author wrstuden;	state dead;
branches;
next	1.1.2.2;

1.1.2.2
date	2008.09.17.05.42.11;	author wrstuden;	state Exp;
branches;
next	;

1.1.4.1
date	2014.05.22.11.42.48;	author yamt;	state dead;
branches;
next	;
commitid	cG7DCbrDdiE9MwBx;

1.1.22.1
date	2017.11.05.20.04.34;	author snj;	state Exp;
branches;
next	;
commitid	VgD5VHuTHobiXSdA;

1.1.26.1
date	2014.08.20.00.05.02;	author tls;	state dead;
branches;
next	;
commitid	jTnpym9Qu0o4R1Nx;

1.1.28.1
date	2017.11.05.20.01.48;	author snj;	state Exp;
branches;
next	;
commitid	8tyUmcxweKPiWSdA;

1.1.36.1
date	2017.11.05.20.04.00;	author snj;	state Exp;
branches;
next	;
commitid	PTgbU1GvITR5XSdA;


desc
@@


1.2
log
@we have moved.
@
text
@#!/bin/sh -
#
#	$NetBSD: virecover,v 1.1 2008/09/02 09:25:39 christos Exp $
#
#	@@(#)recover.in	8.8 (Berkeley) 10/10/96
#
# Script to recover nvi edit sessions.

RECDIR="/var/tmp/vi.recover"
SENDMAIL="/usr/sbin/sendmail"

# 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 ! -f $i || 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
@


1.1
log
@Add docs back the best way we can:
1. Don't add changelog and other implementation specific nvi files because
   this have changed from 1.79 and are probably not relevant in 1.81
2. Put back virecover.
3. Descend regularly to subdirs instead of Makefile hacks
4. Use USD.doc stuff from the 1.81 docs except for vi.ref which has
   unfortunately been converted to texinfo. For that, we preserve
   the original documents because we want to still be able to make
   section 13 (building texinfo is not acceptable because it will not
   have the same look and feel as the rest of the book)
5. Since the texinfo reference is probably better maintained, build
   that too as a texinfo document.
@
text
@d3 1
a3 1
#	$NetBSD: virecover,v 1.3 2008/07/10 17:48:04 tnozaki Exp $
@


1.1.22.1
log
@Pull up following revision(s) (requested by spz in ticket #1509):
	external/bsd/nvi/usr.bin/recover/virecover: 1.2-1.3 via patch
	external/bsd/nvi/dist/common/recover.c: revision 1.6-1.9 via patch
be more careful about opening recovery files... in particular deal with
people trying to get 'vi -r' stuck using named pipes, symlink attacks,
and coercing others opening recovery files they did not create.
Put back the tests for "no files matched" (in a different way than they
were written previously - but that's just style.)   This is not csh...
Use the correct test operator to test for an empty file (rather than
testing for an empty file name...)
Write test ('[') commands in a way that is defined to work, rather than
just happens to - we can afford the (negligible) performance hit here.
- don't use command substitution to glob a pattern into a list of filenames;
  it is less efficient than doing it directly and does not handle whitespace
  in filenames properly.
- change test to [
- quote variables
Deal safely with recovery mail files.
oops, accidendally committed an earlier non-working version; fixed.
Don't use popenve() for portability; forking an extra shell here is not an
issue.
@
text
@d3 1
a3 1
#	$NetBSD: virecover,v 1.3 2017/11/04 07:04:01 kre Exp $
d13 15
a27 17
for i in $RECDIR/vi.*; do

	case "$i" in
	$RECDIR/vi.\*) continue;;
	esac

	# Only test files that are readable.
	if ! [ -f "$i" ] || ! [ -r "$i" ]; then
		continue
	fi

	# Unmodified nvi editor backup files either have the
	# execute bit set or are zero length.  Delete them.
	if [ -x "$i" ] || ! [ -s "$i" ]; then
		rm -f "$i"
	fi
done
d31 19
a49 21
for i in $RECDIR/recover.*; do

	case "$i" in
	$RECDIR/recover.\*) continue;;
	esac

	# Only test files that are readable.
	if ! [ -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 [ -n "$recfile" ] && [ -s "$recfile" ]; then
		$SENDMAIL -t < "$i"
	else
		rm -f "$i"
	fi
done
@


1.1.36.1
log
@Pull up following revision(s) (requested by spz in ticket #1509):
	external/bsd/nvi/usr.bin/recover/virecover: 1.2-1.3 via patch
	external/bsd/nvi/dist/common/recover.c: revision 1.6-1.9 via patch
be more careful about opening recovery files... in particular deal with
people trying to get 'vi -r' stuck using named pipes, symlink attacks,
and coercing others opening recovery files they did not create.
Put back the tests for "no files matched" (in a different way than they
were written previously - but that's just style.)   This is not csh...
Use the correct test operator to test for an empty file (rather than
testing for an empty file name...)
Write test ('[') commands in a way that is defined to work, rather than
just happens to - we can afford the (negligible) performance hit here.
- don't use command substitution to glob a pattern into a list of filenames;
  it is less efficient than doing it directly and does not handle whitespace
  in filenames properly.
- change test to [
- quote variables
Deal safely with recovery mail files.
oops, accidendally committed an earlier non-working version; fixed.
Don't use popenve() for portability; forking an extra shell here is not an
issue.
@
text
@d3 1
a3 1
#	$NetBSD: virecover,v 1.3 2017/11/04 07:04:01 kre Exp $
d13 15
a27 17
for i in $RECDIR/vi.*; do

	case "$i" in
	$RECDIR/vi.\*) continue;;
	esac

	# Only test files that are readable.
	if ! [ -f "$i" ] || ! [ -r "$i" ]; then
		continue
	fi

	# Unmodified nvi editor backup files either have the
	# execute bit set or are zero length.  Delete them.
	if [ -x "$i" ] || ! [ -s "$i" ]; then
		rm -f "$i"
	fi
done
d31 19
a49 21
for i in $RECDIR/recover.*; do

	case "$i" in
	$RECDIR/recover.\*) continue;;
	esac

	# Only test files that are readable.
	if ! [ -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 [ -n "$recfile" ] && [ -s "$recfile" ]; then
		$SENDMAIL -t < "$i"
	else
		rm -f "$i"
	fi
done
@


1.1.28.1
log
@Pull up following revision(s) (requested by spz in ticket #1509):
	external/bsd/nvi/usr.bin/recover/virecover: 1.2-1.3 via patch
	external/bsd/nvi/dist/common/recover.c: revision 1.6-1.9 via patch
be more careful about opening recovery files... in particular deal with
people trying to get 'vi -r' stuck using named pipes, symlink attacks,
and coercing others opening recovery files they did not create.
Put back the tests for "no files matched" (in a different way than they
were written previously - but that's just style.)   This is not csh...
Use the correct test operator to test for an empty file (rather than
testing for an empty file name...)
Write test ('[') commands in a way that is defined to work, rather than
just happens to - we can afford the (negligible) performance hit here.
- don't use command substitution to glob a pattern into a list of filenames;
  it is less efficient than doing it directly and does not handle whitespace
  in filenames properly.
- change test to [
- quote variables
Deal safely with recovery mail files.
oops, accidendally committed an earlier non-working version; fixed.
Don't use popenve() for portability; forking an extra shell here is not an
issue.
@
text
@d3 1
a3 1
#	$NetBSD: virecover,v 1.3 2017/11/04 07:04:01 kre Exp $
d13 15
a27 17
for i in $RECDIR/vi.*; do

	case "$i" in
	$RECDIR/vi.\*) continue;;
	esac

	# Only test files that are readable.
	if ! [ -f "$i" ] || ! [ -r "$i" ]; then
		continue
	fi

	# Unmodified nvi editor backup files either have the
	# execute bit set or are zero length.  Delete them.
	if [ -x "$i" ] || ! [ -s "$i" ]; then
		rm -f "$i"
	fi
done
d31 19
a49 21
for i in $RECDIR/recover.*; do

	case "$i" in
	$RECDIR/recover.\*) continue;;
	esac

	# Only test files that are readable.
	if ! [ -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 [ -n "$recfile" ] && [ -s "$recfile" ]; then
		$SENDMAIL -t < "$i"
	else
		rm -f "$i"
	fi
done
@


1.1.26.1
log
@Rebase to HEAD as of a few days ago.
@
text
@d3 1
a3 1
#	$NetBSD: virecover,v 1.1 2008/09/02 09:25:39 christos Exp $
@


1.1.4.1
log
@sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")
@
text
@d3 1
a3 1
#	$NetBSD: virecover,v 1.1 2008/09/02 09:25:39 christos Exp $
@


1.1.2.1
log
@file virecover was added on branch wrstuden-revivesa on 2008-09-17 05:42:11 +0000
@
text
@d1 49
@


1.1.2.2
log
@Sync with wrstuden-revivesa-base-2.
@
text
@a0 49
#!/bin/sh -
#
#	$NetBSD: virecover,v 1.1 2008/09/02 09:25:39 christos Exp $
#
#	@@(#)recover.in	8.8 (Berkeley) 10/10/96
#
# Script to recover nvi edit sessions.

RECDIR="/var/tmp/vi.recover"
SENDMAIL="/usr/sbin/sendmail"

# 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 ! -f $i || 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
@
