History log of /openbsd-current/usr.bin/rcs/rcsutil.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.48 11-Aug-2023 guenther

Switch rcs_{get,set}_mtime() from returning and taking a time_t to
doing so with a struct timespec and then use tv_nsec = UTIME_OMIT
instead of a (time_t)-1 as a "do nothing" value. They can then
fully preserve the timestamp

ok millert@


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.47 14-Oct-2020 naddy

typo in error message


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.46 29-Aug-2017 otto

kill const and string artithmetic related warnings; ok millert@


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.45 04-Jul-2016 millert

The -I flag is documented but not implemented. This fixes that and
also honors the -I flag from ci/co when prompting like GNU RCS.
OK jca@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.44 13-Jun-2015 nicm

Convert xfree to free. From Fritjof Bornebusch. ok deraadt


Revision tags: OPENBSD_5_7_BASE
# 1.43 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.42 01-Dec-2014 deraadt

An internal function called xrealloc() is actually a fail-hard
reallocarray()... so rename it.


# 1.41 10-Oct-2014 otto

Zap some stored values never read; From Fritjof Bornebusch; ok nicm@


Revision tags: OPENBSD_5_6_BASE
# 1.40 29-May-2014 tedu

use calloc, from Benjamin Baier


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.39 16-Apr-2013 deraadt

remove wrong casts; ok millert


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.38 06-Dec-2010 chl

add missing header needed by futimes()

ok tobias@ xsa@ nicm@


# 1.37 20-Oct-2010 tobias

Remove the need for rp_file in parser structure, instead keep only one
FILE pointer in RCSFILE. This fixes some ugliness in closing an
fdopen()ed FILE and its underlying file descriptor.

Notified by Joerg Sonnenberger <joerg at britannica dot bec to de>

discussed with and ok nicm


# 1.36 08-Sep-2010 tobias

Set rcs_suffixes to default value on initialization.

ok ray zinovik


Revision tags: OPENBSD_4_8_BASE
# 1.35 28-Jul-2010 ray

Make BUFs autoextend by default. This was already done in OpenCVS
a while ago.

OK zinovik nicm


# 1.34 23-Jul-2010 ray

Reduce variable/function name and whitespace differences between
cvs/rcs.

OK xsa zinovik


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.33 10-May-2008 joris

properly free suffixes.
OK tobias@


Revision tags: OPENBSD_4_3_BASE
# 1.32 04-Jan-2008 chl

remove unused function

from tobias@

ok xsa@ tobias@


Revision tags: OPENBSD_4_2_BASE
# 1.31 19-Jul-2007 ray

Sync with cvs:
> xcalloc is unneeded here since i is always 0 and we always use the
> memory after initializing it.
>
> Initial diff from Igor Zinovik.
>
> OK niallo and xsa.


# 1.30 29-May-2007 ray

Since xrealloc dies on failure it is safe to directly assign to the
original pointer. Theo agrees, and so does the rest of the tree
(ssh, etc. all do this already).

Saves a bunch of variables and assignments.

OK niallo@


Revision tags: OPENBSD_4_1_BASE
# 1.29 27-Feb-2007 xsa

As done in OpenCVS, general includes cleanup sweep. OK otto@.


# 1.28 22-Feb-2007 otto

If a ,suffix file is given as an arg to ci and co, strip it. Avoids
potential disasters. Initial diff from niallo@, ok niallo@ joris@


# 1.27 22-Feb-2007 xsa

Fix const inconsistencies, void pointer artithmetic;
Based on diff from otto@ in OpenCVS. OK otto@.


# 1.26 11-Jan-2007 niallo

remove some un-needed buffer NUL-termination. in openrcs, diff3 is already NUL-terminating its
buffers so we don't need to do it twice. this allows us to sync rcs_splitlines() with opencvs'
cvs_splitlines().

ok joris@


# 1.25 10-Jan-2007 ray

Clear EOF before prompting user for input.

Fixes PR 5342.

OK joris@ and xsa@.


# 1.24 02-Jan-2007 niallo

- fix support for checking out binary files.

testing from xsa@ and Igor Sobrado <igor at string1.ciencias.uniovi.es>
ok xsa@


# 1.23 09-Nov-2006 millert

Simplify stripping of write bits from file mode.
Add support for reusing the checkin message for multiple files, ala GNU
Fix the message when you abort a checkout and the file was not writable.
OK joris@ niallo@


# 1.22 12-Oct-2006 niallo

- convert some warnx() to warn(), which fixes a few stupidly un-informative error messages (found by tom@)
- make rcs_choosefile() save wrt errno, input from ray@

ok joris@ xsa@


# 1.21 25-Sep-2006 ray

Remove debugging printf accidentally committed.

OK joris@.


# 1.20 22-Sep-2006 niallo

- handle deltatexts which don't end in a newline character. fixes PR #5241.

ok ray@


# 1.19 19-Sep-2006 otto

Use S_IS* macros insted of masking with S_IF* flags. The latter may
have multiple bits set, which lead to surprising results. Spotted by
Paul Stoeber, more to come. ok millert@ pedro@ jaredy@ djm@


Revision tags: OPENBSD_4_0_BASE
# 1.18 16-Aug-2006 ray

Improve rcs_buf_load() by setting errno appropriately on failure and
never print errors or quit on error.

Fix usages of rcs_buf_load() and rcs_set_description.

Also plug an fd leak.

OK xsa@


# 1.17 08-Jul-2006 ray

rcs_splitlines() can never return NULL, so don't check for it.

OK joris@


# 1.16 04-Jul-2006 niallo

- plug a memory leak


# 1.15 03-Jun-2006 niallo

- correctly handle binary files; say bye bye to using c strings for deltatexts.

"slap it in" joris@


# 1.14 28-May-2006 ray

Remove a lot of xstrdup() calls in getopt() loops, which are usually
unnecessary. These xstrdup() calls don't call xfree() before anyway,
so if a flag is given multiple times memory leaks would have resulted.

OK joris@


# 1.13 27-May-2006 ray

Rename RCSFILE.fd to RCSFILE.rf_fd, plus minor spacing nits. No
binary change.

OK xsa@


# 1.12 27-May-2006 ray

Remove rcs_statfile(). It was just a wrapper for rcs_choosefile(),
handling exceptions oddly.

OK joris@


# 1.11 27-May-2006 ray

rcs_choosefile() no longer returns char *, it returns a file
descriptor; fix comment.

Improve spacing.

OK joris@


# 1.10 09-May-2006 ray

Remove unused variable leftover from race condition cleanup.

OK xsa@.


# 1.9 08-May-2006 ray

Use warnx() when errno is not set.

OK joris@.


# 1.8 29-Apr-2006 ray

Check return values for all strlcpy, and strlcat calls.

OK xsa@ and probably others.


# 1.7 27-Apr-2006 xsa

zap util.[ch] and move the content into rcsutil.[ch].
discussed with joris@.


# 1.6 26-Apr-2006 joris

prevent file races by obtaining an fd for the RCS file and
do our operations on that, this is safe and guarantees we
can operate on the file until we close(2) it.

a fix is coming for the remaining races in our diff code.
okay niallo@ and ray@


# 1.5 26-Apr-2006 joris

fork our code we shared between openrcs/cvs into the openrcs dir.

this was starting to become inhuman to maintain without
ugly ugly hacks in the shared code, and it will be easier
to make specific changes for openrcs without touching the
soon-to-be-replaced opencvs code.


# 1.4 25-Apr-2006 xsa

quote strings consistently.


# 1.3 25-Apr-2006 xsa

fatal() -> err()/errx() as we try to not depend on heavy cvs_log().
OK joriski.


# 1.2 24-Apr-2006 ray

o Better match GNU behavior (a bare -t does NOT read from stdin,
unlike rcs).
o Share code with rcs by moving rcs_set_description() to rcsutil.c.
o Change description prompt from #define to const char *.

OK xsa@


# 1.1 21-Apr-2006 xsa

move shared functions into rcsutil.[ch]; this makes rcsprog.c cleaner;
"the voices in my head say OK!" joris@.


# 1.47 14-Oct-2020 naddy

typo in error message


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.46 29-Aug-2017 otto

kill const and string artithmetic related warnings; ok millert@


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.45 04-Jul-2016 millert

The -I flag is documented but not implemented. This fixes that and
also honors the -I flag from ci/co when prompting like GNU RCS.
OK jca@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.44 13-Jun-2015 nicm

Convert xfree to free. From Fritjof Bornebusch. ok deraadt


Revision tags: OPENBSD_5_7_BASE
# 1.43 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.42 01-Dec-2014 deraadt

An internal function called xrealloc() is actually a fail-hard
reallocarray()... so rename it.


# 1.41 10-Oct-2014 otto

Zap some stored values never read; From Fritjof Bornebusch; ok nicm@


Revision tags: OPENBSD_5_6_BASE
# 1.40 29-May-2014 tedu

use calloc, from Benjamin Baier


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.39 16-Apr-2013 deraadt

remove wrong casts; ok millert


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.38 06-Dec-2010 chl

add missing header needed by futimes()

ok tobias@ xsa@ nicm@


# 1.37 20-Oct-2010 tobias

Remove the need for rp_file in parser structure, instead keep only one
FILE pointer in RCSFILE. This fixes some ugliness in closing an
fdopen()ed FILE and its underlying file descriptor.

Notified by Joerg Sonnenberger <joerg at britannica dot bec to de>

discussed with and ok nicm


# 1.36 08-Sep-2010 tobias

Set rcs_suffixes to default value on initialization.

ok ray zinovik


Revision tags: OPENBSD_4_8_BASE
# 1.35 28-Jul-2010 ray

Make BUFs autoextend by default. This was already done in OpenCVS
a while ago.

OK zinovik nicm


# 1.34 23-Jul-2010 ray

Reduce variable/function name and whitespace differences between
cvs/rcs.

OK xsa zinovik


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.33 10-May-2008 joris

properly free suffixes.
OK tobias@


Revision tags: OPENBSD_4_3_BASE
# 1.32 04-Jan-2008 chl

remove unused function

from tobias@

ok xsa@ tobias@


Revision tags: OPENBSD_4_2_BASE
# 1.31 19-Jul-2007 ray

Sync with cvs:
> xcalloc is unneeded here since i is always 0 and we always use the
> memory after initializing it.
>
> Initial diff from Igor Zinovik.
>
> OK niallo and xsa.


# 1.30 29-May-2007 ray

Since xrealloc dies on failure it is safe to directly assign to the
original pointer. Theo agrees, and so does the rest of the tree
(ssh, etc. all do this already).

Saves a bunch of variables and assignments.

OK niallo@


Revision tags: OPENBSD_4_1_BASE
# 1.29 27-Feb-2007 xsa

As done in OpenCVS, general includes cleanup sweep. OK otto@.


# 1.28 22-Feb-2007 otto

If a ,suffix file is given as an arg to ci and co, strip it. Avoids
potential disasters. Initial diff from niallo@, ok niallo@ joris@


# 1.27 22-Feb-2007 xsa

Fix const inconsistencies, void pointer artithmetic;
Based on diff from otto@ in OpenCVS. OK otto@.


# 1.26 11-Jan-2007 niallo

remove some un-needed buffer NUL-termination. in openrcs, diff3 is already NUL-terminating its
buffers so we don't need to do it twice. this allows us to sync rcs_splitlines() with opencvs'
cvs_splitlines().

ok joris@


# 1.25 10-Jan-2007 ray

Clear EOF before prompting user for input.

Fixes PR 5342.

OK joris@ and xsa@.


# 1.24 02-Jan-2007 niallo

- fix support for checking out binary files.

testing from xsa@ and Igor Sobrado <igor at string1.ciencias.uniovi.es>
ok xsa@


# 1.23 09-Nov-2006 millert

Simplify stripping of write bits from file mode.
Add support for reusing the checkin message for multiple files, ala GNU
Fix the message when you abort a checkout and the file was not writable.
OK joris@ niallo@


# 1.22 12-Oct-2006 niallo

- convert some warnx() to warn(), which fixes a few stupidly un-informative error messages (found by tom@)
- make rcs_choosefile() save wrt errno, input from ray@

ok joris@ xsa@


# 1.21 25-Sep-2006 ray

Remove debugging printf accidentally committed.

OK joris@.


# 1.20 22-Sep-2006 niallo

- handle deltatexts which don't end in a newline character. fixes PR #5241.

ok ray@


# 1.19 19-Sep-2006 otto

Use S_IS* macros insted of masking with S_IF* flags. The latter may
have multiple bits set, which lead to surprising results. Spotted by
Paul Stoeber, more to come. ok millert@ pedro@ jaredy@ djm@


Revision tags: OPENBSD_4_0_BASE
# 1.18 16-Aug-2006 ray

Improve rcs_buf_load() by setting errno appropriately on failure and
never print errors or quit on error.

Fix usages of rcs_buf_load() and rcs_set_description.

Also plug an fd leak.

OK xsa@


# 1.17 08-Jul-2006 ray

rcs_splitlines() can never return NULL, so don't check for it.

OK joris@


# 1.16 04-Jul-2006 niallo

- plug a memory leak


# 1.15 03-Jun-2006 niallo

- correctly handle binary files; say bye bye to using c strings for deltatexts.

"slap it in" joris@


# 1.14 28-May-2006 ray

Remove a lot of xstrdup() calls in getopt() loops, which are usually
unnecessary. These xstrdup() calls don't call xfree() before anyway,
so if a flag is given multiple times memory leaks would have resulted.

OK joris@


# 1.13 27-May-2006 ray

Rename RCSFILE.fd to RCSFILE.rf_fd, plus minor spacing nits. No
binary change.

OK xsa@


# 1.12 27-May-2006 ray

Remove rcs_statfile(). It was just a wrapper for rcs_choosefile(),
handling exceptions oddly.

OK joris@


# 1.11 27-May-2006 ray

rcs_choosefile() no longer returns char *, it returns a file
descriptor; fix comment.

Improve spacing.

OK joris@


# 1.10 09-May-2006 ray

Remove unused variable leftover from race condition cleanup.

OK xsa@.


# 1.9 08-May-2006 ray

Use warnx() when errno is not set.

OK joris@.


# 1.8 29-Apr-2006 ray

Check return values for all strlcpy, and strlcat calls.

OK xsa@ and probably others.


# 1.7 27-Apr-2006 xsa

zap util.[ch] and move the content into rcsutil.[ch].
discussed with joris@.


# 1.6 26-Apr-2006 joris

prevent file races by obtaining an fd for the RCS file and
do our operations on that, this is safe and guarantees we
can operate on the file until we close(2) it.

a fix is coming for the remaining races in our diff code.
okay niallo@ and ray@


# 1.5 26-Apr-2006 joris

fork our code we shared between openrcs/cvs into the openrcs dir.

this was starting to become inhuman to maintain without
ugly ugly hacks in the shared code, and it will be easier
to make specific changes for openrcs without touching the
soon-to-be-replaced opencvs code.


# 1.4 25-Apr-2006 xsa

quote strings consistently.


# 1.3 25-Apr-2006 xsa

fatal() -> err()/errx() as we try to not depend on heavy cvs_log().
OK joriski.


# 1.2 24-Apr-2006 ray

o Better match GNU behavior (a bare -t does NOT read from stdin,
unlike rcs).
o Share code with rcs by moving rcs_set_description() to rcsutil.c.
o Change description prompt from #define to const char *.

OK xsa@


# 1.1 21-Apr-2006 xsa

move shared functions into rcsutil.[ch]; this makes rcsprog.c cleaner;
"the voices in my head say OK!" joris@.


Revision tags: OPENBSD_6_2_BASE
# 1.46 29-Aug-2017 otto

kill const and string artithmetic related warnings; ok millert@


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.45 04-Jul-2016 millert

The -I flag is documented but not implemented. This fixes that and
also honors the -I flag from ci/co when prompting like GNU RCS.
OK jca@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
# 1.44 13-Jun-2015 nicm

Convert xfree to free. From Fritjof Bornebusch. ok deraadt


Revision tags: OPENBSD_5_7_BASE
# 1.43 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.42 01-Dec-2014 deraadt

An internal function called xrealloc() is actually a fail-hard
reallocarray()... so rename it.


# 1.41 10-Oct-2014 otto

Zap some stored values never read; From Fritjof Bornebusch; ok nicm@


Revision tags: OPENBSD_5_6_BASE
# 1.40 29-May-2014 tedu

use calloc, from Benjamin Baier


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.39 16-Apr-2013 deraadt

remove wrong casts; ok millert


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.38 06-Dec-2010 chl

add missing header needed by futimes()

ok tobias@ xsa@ nicm@


# 1.37 20-Oct-2010 tobias

Remove the need for rp_file in parser structure, instead keep only one
FILE pointer in RCSFILE. This fixes some ugliness in closing an
fdopen()ed FILE and its underlying file descriptor.

Notified by Joerg Sonnenberger <joerg at britannica dot bec to de>

discussed with and ok nicm


# 1.36 08-Sep-2010 tobias

Set rcs_suffixes to default value on initialization.

ok ray zinovik


Revision tags: OPENBSD_4_8_BASE
# 1.35 28-Jul-2010 ray

Make BUFs autoextend by default. This was already done in OpenCVS
a while ago.

OK zinovik nicm


# 1.34 23-Jul-2010 ray

Reduce variable/function name and whitespace differences between
cvs/rcs.

OK xsa zinovik


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.33 10-May-2008 joris

properly free suffixes.
OK tobias@


Revision tags: OPENBSD_4_3_BASE
# 1.32 04-Jan-2008 chl

remove unused function

from tobias@

ok xsa@ tobias@


Revision tags: OPENBSD_4_2_BASE
# 1.31 19-Jul-2007 ray

Sync with cvs:
> xcalloc is unneeded here since i is always 0 and we always use the
> memory after initializing it.
>
> Initial diff from Igor Zinovik.
>
> OK niallo and xsa.


# 1.30 29-May-2007 ray

Since xrealloc dies on failure it is safe to directly assign to the
original pointer. Theo agrees, and so does the rest of the tree
(ssh, etc. all do this already).

Saves a bunch of variables and assignments.

OK niallo@


Revision tags: OPENBSD_4_1_BASE
# 1.29 27-Feb-2007 xsa

As done in OpenCVS, general includes cleanup sweep. OK otto@.


# 1.28 22-Feb-2007 otto

If a ,suffix file is given as an arg to ci and co, strip it. Avoids
potential disasters. Initial diff from niallo@, ok niallo@ joris@


# 1.27 22-Feb-2007 xsa

Fix const inconsistencies, void pointer artithmetic;
Based on diff from otto@ in OpenCVS. OK otto@.


# 1.26 11-Jan-2007 niallo

remove some un-needed buffer NUL-termination. in openrcs, diff3 is already NUL-terminating its
buffers so we don't need to do it twice. this allows us to sync rcs_splitlines() with opencvs'
cvs_splitlines().

ok joris@


# 1.25 10-Jan-2007 ray

Clear EOF before prompting user for input.

Fixes PR 5342.

OK joris@ and xsa@.


# 1.24 02-Jan-2007 niallo

- fix support for checking out binary files.

testing from xsa@ and Igor Sobrado <igor at string1.ciencias.uniovi.es>
ok xsa@


# 1.23 09-Nov-2006 millert

Simplify stripping of write bits from file mode.
Add support for reusing the checkin message for multiple files, ala GNU
Fix the message when you abort a checkout and the file was not writable.
OK joris@ niallo@


# 1.22 12-Oct-2006 niallo

- convert some warnx() to warn(), which fixes a few stupidly un-informative error messages (found by tom@)
- make rcs_choosefile() save wrt errno, input from ray@

ok joris@ xsa@


# 1.21 25-Sep-2006 ray

Remove debugging printf accidentally committed.

OK joris@.


# 1.20 22-Sep-2006 niallo

- handle deltatexts which don't end in a newline character. fixes PR #5241.

ok ray@


# 1.19 19-Sep-2006 otto

Use S_IS* macros insted of masking with S_IF* flags. The latter may
have multiple bits set, which lead to surprising results. Spotted by
Paul Stoeber, more to come. ok millert@ pedro@ jaredy@ djm@


Revision tags: OPENBSD_4_0_BASE
# 1.18 16-Aug-2006 ray

Improve rcs_buf_load() by setting errno appropriately on failure and
never print errors or quit on error.

Fix usages of rcs_buf_load() and rcs_set_description.

Also plug an fd leak.

OK xsa@


# 1.17 08-Jul-2006 ray

rcs_splitlines() can never return NULL, so don't check for it.

OK joris@


# 1.16 04-Jul-2006 niallo

- plug a memory leak


# 1.15 03-Jun-2006 niallo

- correctly handle binary files; say bye bye to using c strings for deltatexts.

"slap it in" joris@


# 1.14 28-May-2006 ray

Remove a lot of xstrdup() calls in getopt() loops, which are usually
unnecessary. These xstrdup() calls don't call xfree() before anyway,
so if a flag is given multiple times memory leaks would have resulted.

OK joris@


# 1.13 27-May-2006 ray

Rename RCSFILE.fd to RCSFILE.rf_fd, plus minor spacing nits. No
binary change.

OK xsa@


# 1.12 27-May-2006 ray

Remove rcs_statfile(). It was just a wrapper for rcs_choosefile(),
handling exceptions oddly.

OK joris@


# 1.11 27-May-2006 ray

rcs_choosefile() no longer returns char *, it returns a file
descriptor; fix comment.

Improve spacing.

OK joris@


# 1.10 09-May-2006 ray

Remove unused variable leftover from race condition cleanup.

OK xsa@.


# 1.9 08-May-2006 ray

Use warnx() when errno is not set.

OK joris@.


# 1.8 29-Apr-2006 ray

Check return values for all strlcpy, and strlcat calls.

OK xsa@ and probably others.


# 1.7 27-Apr-2006 xsa

zap util.[ch] and move the content into rcsutil.[ch].
discussed with joris@.


# 1.6 26-Apr-2006 joris

prevent file races by obtaining an fd for the RCS file and
do our operations on that, this is safe and guarantees we
can operate on the file until we close(2) it.

a fix is coming for the remaining races in our diff code.
okay niallo@ and ray@


# 1.5 26-Apr-2006 joris

fork our code we shared between openrcs/cvs into the openrcs dir.

this was starting to become inhuman to maintain without
ugly ugly hacks in the shared code, and it will be easier
to make specific changes for openrcs without touching the
soon-to-be-replaced opencvs code.


# 1.4 25-Apr-2006 xsa

quote strings consistently.


# 1.3 25-Apr-2006 xsa

fatal() -> err()/errx() as we try to not depend on heavy cvs_log().
OK joriski.


# 1.2 24-Apr-2006 ray

o Better match GNU behavior (a bare -t does NOT read from stdin,
unlike rcs).
o Share code with rcs by moving rcs_set_description() to rcsutil.c.
o Change description prompt from #define to const char *.

OK xsa@


# 1.1 21-Apr-2006 xsa

move shared functions into rcsutil.[ch]; this makes rcsprog.c cleaner;
"the voices in my head say OK!" joris@.