History log of /openbsd-current/sbin/restore/dirs.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.43 09-Jan-2024 guenther

Delete support for FFS filesystems before the in-inode symlink
optimization. As observed by ali_farzanrad(at)riseup.net, support
for these was broken in the 5.5 release in early 2014 by the time_t
changes. No one noticed before now, so clearly this isn't something
we need to continue to support; rejecting in ffs_validate() is an
improvement.

Also: simplify DIRSIZ(), drop OLDDIRFMT and NEWDIRFMT, tests of
fs_maxsymlinklen against zero, #ifdef tests of FS_44INODEFMT, and
remove support for newfs -O0, last used in 2016.

ok miod@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE
# 1.42 28-Jun-2019 deraadt

When system calls indicate an error they return -1, not some arbitrary
value < 0. errno is only updated in this case. Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.41 25-Aug-2015 guenther

Switch from utimes() to utimensat() to $estore full nanosecond granularity

ok millert@ deraadt@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.40 20-Jan-2015 deraadt

Adjust <sys/param.h> comments regarding use of use of MAXFRAG, or
delete <sys/param.h> if now possible
ok guenther


# 1.39 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


# 1.38 07-Sep-2014 guenther

Reuse xtrfile() to avoid duplication.
Casting from long to int for a size_t argument is dumb.
Calling warnx() right before err() is silly.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.37 21-Jul-2014 guenther

Switch from <sys/endian.h> or <machine/endian.h> to the new,
being-standardized <endian.h>

ok deraadt@ millert@ beck@


# 1.36 20-Jul-2014 guenther

Make sure the correct errno is reported by warn* or err* and not
the errno of an intervening cleanup operation like close/unlink/etc.

Diff from Doug Hogan (doug (at) acyclic.org)


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.35 25-Apr-2013 otto

big int_t/time_t fixes; ok deraadt@ krw@


# 1.34 24-Apr-2013 deraadt

pretty print bigger off_t
ok tedu otto


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.33 27-Jun-2011 tedu

remove some useless casts. ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.32 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.31 03-Jun-2007 millert

Add ffs2 support to dump/restore. From FreeBSD with some NetBSD changes.
With help from otto@


Revision tags: OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.30 28-Apr-2005 millert

Use strlcpy() not snprintf(). OK otto@ and moritz@


Revision tags: OPENBSD_3_7_BASE
# 1.29 30-Dec-2004 millert

Replace home-grown byte swapping routine with calls to swap* macros
from endian.h. Header swapping is moved into its own function.
Fixes problems reading non-native endian dump images on sparc64.
Adapted from changes in NetBSD.


Revision tags: OPENBSD_3_6_BASE
# 1.28 17-Jul-2004 deraadt

some ansi; khalek@linuxgamers.net


# 1.27 13-Apr-2004 henning

fix restore so that it can actually restore files larger than 4GB by
changing the type of "size" to off_t in getfiles() plus little dependent
type cleanup, from Daniel Lucq <daniel@lucq.org>
ok tdeval@ millert@ otto@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE
# 1.26 25-Aug-2003 tedu

rename struct dinode to ufs1_dinode. clears the namespace and makes
way for some future work. no function changes yet.
help testing otto@ and markus@


# 1.25 29-Jul-2003 deraadt

spaces


# 1.24 28-Jul-2003 tedu

rcsid should say openbsd. make 'em const while here.


# 1.23 07-Jul-2003 millert

Repair last commit, the NUL termination of locname is required
for the strlcat() to work since the buffer gets used for each
entry in a directory.


# 1.22 06-Jul-2003 avsm

convert strn{cpy,cat}->strl{cpy,cat} in directory processing
comments and from krw@, tdeval@, tedu@


# 1.21 02-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_3_BASE
# 1.20 13-Mar-2003 deraadt

more strlcpy; most from Hans-Joerg.Hoexer@yerbouti.franken.de, a bit from me


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE
# 1.19 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.18 05-Nov-2001 mpech

kill more registers;

millert@ ok


Revision tags: OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.17 17-Aug-1999 millert

More <sys/file.h> vs. <fcntl.h> and open() flags fixes.


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE
# 1.16 23-Jun-1998 millert

Fix snprintf return value usage.


Revision tags: OPENBSD_2_3_BASE
# 1.15 17-Feb-1998 millert

chflags(2) take a u_int


Revision tags: OPENBSD_2_2_BASE
# 1.14 05-Jul-1997 millert

vprintf -> Vprintf and dprintf -> Dprintf to avoid confusion
Use err/errx and warn/warnx where it makes sense.
Some sprintf -> snprintf, strcpy -> strncpy, and strcat -> strncat.
Honor $TMPDIR (based on changes from NetBSD)
Use __progname not "restore" (we could be called as rrestore).
Some -Wall happiness.


Revision tags: OPENBSD_2_1_BASE
# 1.13 16-Apr-1997 millert

No need for "pathnames.h" now that _PATH_DEFTAPE is in <paths.h>
Fix rmt -> rst in man page and change ".Nm restore" -> ".Nm"


# 1.12 24-Dec-1996 deraadt

use mkstemp()


# 1.11 16-Dec-1996 deraadt

does noone know how to use strncat correctly?


# 1.10 15-Dec-1996 millert

Fix strncpy usage and correct strncat length field, from Theo.
Also change some occurrence of MAXPATHLEN with sizeof(foo).


# 1.9 04-Dec-1996 deraadt

64 bit patches, tih@nhh.no


Revision tags: OPENBSD_2_0_BASE
# 1.8 16-Sep-1996 millert

/tmp// -> /tmp/


# 1.7 02-Aug-1996 deraadt

ptr check in skipdirs(), by joerg from freebsd


# 1.6 09-Jul-1996 deraadt

mktemp whoops


# 1.5 25-Jun-1996 deraadt

mktemp open & fdopen


# 1.4 23-Jun-1996 deraadt

update rcsid


# 1.3 17-Jun-1996 deraadt

updated patch from lukem@supp.cpr.itg.telecom.com.au to also make -r and -R work again


# 1.2 16-Jun-1996 deraadt

use unique temporary files; netbsd pr#2544; lukem@supp.cpr.itg.telecom.com.au


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.42 28-Jun-2019 deraadt

When system calls indicate an error they return -1, not some arbitrary
value < 0. errno is only updated in this case. Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.41 25-Aug-2015 guenther

Switch from utimes() to utimensat() to $estore full nanosecond granularity

ok millert@ deraadt@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.40 20-Jan-2015 deraadt

Adjust <sys/param.h> comments regarding use of use of MAXFRAG, or
delete <sys/param.h> if now possible
ok guenther


# 1.39 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


# 1.38 07-Sep-2014 guenther

Reuse xtrfile() to avoid duplication.
Casting from long to int for a size_t argument is dumb.
Calling warnx() right before err() is silly.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.37 21-Jul-2014 guenther

Switch from <sys/endian.h> or <machine/endian.h> to the new,
being-standardized <endian.h>

ok deraadt@ millert@ beck@


# 1.36 20-Jul-2014 guenther

Make sure the correct errno is reported by warn* or err* and not
the errno of an intervening cleanup operation like close/unlink/etc.

Diff from Doug Hogan (doug (at) acyclic.org)


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.35 25-Apr-2013 otto

big int_t/time_t fixes; ok deraadt@ krw@


# 1.34 24-Apr-2013 deraadt

pretty print bigger off_t
ok tedu otto


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.33 27-Jun-2011 tedu

remove some useless casts. ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.32 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.31 03-Jun-2007 millert

Add ffs2 support to dump/restore. From FreeBSD with some NetBSD changes.
With help from otto@


Revision tags: OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.30 28-Apr-2005 millert

Use strlcpy() not snprintf(). OK otto@ and moritz@


Revision tags: OPENBSD_3_7_BASE
# 1.29 30-Dec-2004 millert

Replace home-grown byte swapping routine with calls to swap* macros
from endian.h. Header swapping is moved into its own function.
Fixes problems reading non-native endian dump images on sparc64.
Adapted from changes in NetBSD.


Revision tags: OPENBSD_3_6_BASE
# 1.28 17-Jul-2004 deraadt

some ansi; khalek@linuxgamers.net


# 1.27 13-Apr-2004 henning

fix restore so that it can actually restore files larger than 4GB by
changing the type of "size" to off_t in getfiles() plus little dependent
type cleanup, from Daniel Lucq <daniel@lucq.org>
ok tdeval@ millert@ otto@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE
# 1.26 25-Aug-2003 tedu

rename struct dinode to ufs1_dinode. clears the namespace and makes
way for some future work. no function changes yet.
help testing otto@ and markus@


# 1.25 29-Jul-2003 deraadt

spaces


# 1.24 28-Jul-2003 tedu

rcsid should say openbsd. make 'em const while here.


# 1.23 07-Jul-2003 millert

Repair last commit, the NUL termination of locname is required
for the strlcat() to work since the buffer gets used for each
entry in a directory.


# 1.22 06-Jul-2003 avsm

convert strn{cpy,cat}->strl{cpy,cat} in directory processing
comments and from krw@, tdeval@, tedu@


# 1.21 02-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_3_BASE
# 1.20 13-Mar-2003 deraadt

more strlcpy; most from Hans-Joerg.Hoexer@yerbouti.franken.de, a bit from me


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE
# 1.19 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.18 05-Nov-2001 mpech

kill more registers;

millert@ ok


Revision tags: OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.17 17-Aug-1999 millert

More <sys/file.h> vs. <fcntl.h> and open() flags fixes.


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE
# 1.16 23-Jun-1998 millert

Fix snprintf return value usage.


Revision tags: OPENBSD_2_3_BASE
# 1.15 17-Feb-1998 millert

chflags(2) take a u_int


Revision tags: OPENBSD_2_2_BASE
# 1.14 05-Jul-1997 millert

vprintf -> Vprintf and dprintf -> Dprintf to avoid confusion
Use err/errx and warn/warnx where it makes sense.
Some sprintf -> snprintf, strcpy -> strncpy, and strcat -> strncat.
Honor $TMPDIR (based on changes from NetBSD)
Use __progname not "restore" (we could be called as rrestore).
Some -Wall happiness.


Revision tags: OPENBSD_2_1_BASE
# 1.13 16-Apr-1997 millert

No need for "pathnames.h" now that _PATH_DEFTAPE is in <paths.h>
Fix rmt -> rst in man page and change ".Nm restore" -> ".Nm"


# 1.12 24-Dec-1996 deraadt

use mkstemp()


# 1.11 16-Dec-1996 deraadt

does noone know how to use strncat correctly?


# 1.10 15-Dec-1996 millert

Fix strncpy usage and correct strncat length field, from Theo.
Also change some occurrence of MAXPATHLEN with sizeof(foo).


# 1.9 04-Dec-1996 deraadt

64 bit patches, tih@nhh.no


Revision tags: OPENBSD_2_0_BASE
# 1.8 16-Sep-1996 millert

/tmp// -> /tmp/


# 1.7 02-Aug-1996 deraadt

ptr check in skipdirs(), by joerg from freebsd


# 1.6 09-Jul-1996 deraadt

mktemp whoops


# 1.5 25-Jun-1996 deraadt

mktemp open & fdopen


# 1.4 23-Jun-1996 deraadt

update rcsid


# 1.3 17-Jun-1996 deraadt

updated patch from lukem@supp.cpr.itg.telecom.com.au to also make -r and -R work again


# 1.2 16-Jun-1996 deraadt

use unique temporary files; netbsd pr#2544; lukem@supp.cpr.itg.telecom.com.au


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.41 25-Aug-2015 guenther

Switch from utimes() to utimensat() to $estore full nanosecond granularity

ok millert@ deraadt@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.40 20-Jan-2015 deraadt

Adjust <sys/param.h> comments regarding use of use of MAXFRAG, or
delete <sys/param.h> if now possible
ok guenther


# 1.39 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


# 1.38 07-Sep-2014 guenther

Reuse xtrfile() to avoid duplication.
Casting from long to int for a size_t argument is dumb.
Calling warnx() right before err() is silly.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.37 21-Jul-2014 guenther

Switch from <sys/endian.h> or <machine/endian.h> to the new,
being-standardized <endian.h>

ok deraadt@ millert@ beck@


# 1.36 20-Jul-2014 guenther

Make sure the correct errno is reported by warn* or err* and not
the errno of an intervening cleanup operation like close/unlink/etc.

Diff from Doug Hogan (doug (at) acyclic.org)


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.35 25-Apr-2013 otto

big int_t/time_t fixes; ok deraadt@ krw@


# 1.34 24-Apr-2013 deraadt

pretty print bigger off_t
ok tedu otto


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.33 27-Jun-2011 tedu

remove some useless casts. ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.32 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.31 03-Jun-2007 millert

Add ffs2 support to dump/restore. From FreeBSD with some NetBSD changes.
With help from otto@


Revision tags: OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.30 28-Apr-2005 millert

Use strlcpy() not snprintf(). OK otto@ and moritz@


Revision tags: OPENBSD_3_7_BASE
# 1.29 30-Dec-2004 millert

Replace home-grown byte swapping routine with calls to swap* macros
from endian.h. Header swapping is moved into its own function.
Fixes problems reading non-native endian dump images on sparc64.
Adapted from changes in NetBSD.


Revision tags: OPENBSD_3_6_BASE
# 1.28 17-Jul-2004 deraadt

some ansi; khalek@linuxgamers.net


# 1.27 13-Apr-2004 henning

fix restore so that it can actually restore files larger than 4GB by
changing the type of "size" to off_t in getfiles() plus little dependent
type cleanup, from Daniel Lucq <daniel@lucq.org>
ok tdeval@ millert@ otto@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE
# 1.26 25-Aug-2003 tedu

rename struct dinode to ufs1_dinode. clears the namespace and makes
way for some future work. no function changes yet.
help testing otto@ and markus@


# 1.25 29-Jul-2003 deraadt

spaces


# 1.24 28-Jul-2003 tedu

rcsid should say openbsd. make 'em const while here.


# 1.23 07-Jul-2003 millert

Repair last commit, the NUL termination of locname is required
for the strlcat() to work since the buffer gets used for each
entry in a directory.


# 1.22 06-Jul-2003 avsm

convert strn{cpy,cat}->strl{cpy,cat} in directory processing
comments and from krw@, tdeval@, tedu@


# 1.21 02-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_3_BASE
# 1.20 13-Mar-2003 deraadt

more strlcpy; most from Hans-Joerg.Hoexer@yerbouti.franken.de, a bit from me


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE
# 1.19 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.18 05-Nov-2001 mpech

kill more registers;

millert@ ok


Revision tags: OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.17 17-Aug-1999 millert

More <sys/file.h> vs. <fcntl.h> and open() flags fixes.


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE
# 1.16 23-Jun-1998 millert

Fix snprintf return value usage.


Revision tags: OPENBSD_2_3_BASE
# 1.15 17-Feb-1998 millert

chflags(2) take a u_int


Revision tags: OPENBSD_2_2_BASE
# 1.14 05-Jul-1997 millert

vprintf -> Vprintf and dprintf -> Dprintf to avoid confusion
Use err/errx and warn/warnx where it makes sense.
Some sprintf -> snprintf, strcpy -> strncpy, and strcat -> strncat.
Honor $TMPDIR (based on changes from NetBSD)
Use __progname not "restore" (we could be called as rrestore).
Some -Wall happiness.


Revision tags: OPENBSD_2_1_BASE
# 1.13 16-Apr-1997 millert

No need for "pathnames.h" now that _PATH_DEFTAPE is in <paths.h>
Fix rmt -> rst in man page and change ".Nm restore" -> ".Nm"


# 1.12 24-Dec-1996 deraadt

use mkstemp()


# 1.11 16-Dec-1996 deraadt

does noone know how to use strncat correctly?


# 1.10 15-Dec-1996 millert

Fix strncpy usage and correct strncat length field, from Theo.
Also change some occurrence of MAXPATHLEN with sizeof(foo).


# 1.9 04-Dec-1996 deraadt

64 bit patches, tih@nhh.no


Revision tags: OPENBSD_2_0_BASE
# 1.8 16-Sep-1996 millert

/tmp// -> /tmp/


# 1.7 02-Aug-1996 deraadt

ptr check in skipdirs(), by joerg from freebsd


# 1.6 09-Jul-1996 deraadt

mktemp whoops


# 1.5 25-Jun-1996 deraadt

mktemp open & fdopen


# 1.4 23-Jun-1996 deraadt

update rcsid


# 1.3 17-Jun-1996 deraadt

updated patch from lukem@supp.cpr.itg.telecom.com.au to also make -r and -R work again


# 1.2 16-Jun-1996 deraadt

use unique temporary files; netbsd pr#2544; lukem@supp.cpr.itg.telecom.com.au


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision