This commit was generated by cvs2svn to compensate for changes in r102840,

which included commits to RCS files with non-trunk default branches.
This commit is contained in:
peter 2002-09-02 05:50:28 +00:00
commit d588342b92
81 changed files with 8937 additions and 2733 deletions

View File

@ -1,3 +1,296 @@
2002-04-17 Derek Price <oberon@umich.edu>
* configure.in: Update version number.
* configure: Regenerated.
2002-04-03 Derek Price <oberon@umich.edu>
* cvs.spec.in: Use a lowercase "cvshome.org". Add some RedHat safety
features to avoid "rm -rf /". No need to rebuild the docs in the
distribution. Don't strip the binary.
2002-03-26 Derek Price <oberon@umich.edu>
* configure.in: Add a FIXME comment.
2002-03-21 Derek Price <oberon@umich.edu>
* aclocal.m4: Regenerate with recent version of Autoconf. It looks
like things changed because of some RedHat patches or the like which
didn't change the Autoconf version number, but the differences look
like useful changes so I'm going to use them for consistency.
* config.h.in: Ditto.
* configure: Ditto.
2002-03-19 Larry Jones <larry.jones@sdrc.com>
* NEWS (Changes since 1.11.1p1): Note -S flag for [r]log.
2002-02-08 Larry Jones <larry.jones@sdrc.com>
* NEWS (Changes since 1.11.1p1): Note read-only tag fix.
2002-02-01 Larry Jones <larry.jones@sdrc.com>
* NEWS (Changes from 1.9 to 1.10): Note -t/-f wrappers disabled.
2001-12-12 Larry Jones <larry.jones@sdrc.com>
* NEWS (Changes from 1.10 to 1.11): Note update -C.
2001-12-03 Larry Jones <larry.jones@sdrc.com>
* TODO (206, 207): New items.
* NEWS (Changes since 1.11.1p1): Note -F flag for [r]annotate.
(Changes from 1.11 to 1.11.1): Note :: for log.
2001-10-18 Derek Price <dprice@collab.net>
* TESTS: Remove outdated note about tests that don't use the dotest
function and add some notes on writing tests.
* HACKING: Reference TESTS file in note about submitting test cases
with patches.
2001-09-28 Larry Jones <larry.jones@sdrc.com>
* noautomake.sh: Protect wildcards from shell expansion.
(Patch submitted by Stephen Cameron <smcameron@yahoo.com>.)
2001-09-22 Derek Price <dprice@collab.net>
* INSTALL (Building from source code under Unix): Continue
noautoconf.sh note, stressing source checked out from CVS.
2001-09-22 Derek Price <dprice@collab.net>
* noautomake.sh: Correct usage.
2001-09-13 Derek Price <dprice@collab.net>
* Makefile.am (AUTOMAKE_OPTIONS): Updated to require Automake 1.5.
* NEWS (Changes since 1.11.1p1): Added note about standardizing on
Automake 1.5.
* INSTALL (Building from source code under UNIX): It's Automake version
`1.5', not `2.5'.
(Detailed information about your interaction with "configure"): Added
note about using `configure --help'.
* README (Installation): Add noautoconf.sh to the list of build and
installation commands.
* Makefile.in: Regenerated.
2001-09-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with automake 1.5.
* aclocal.m4: Ditto.
* configure: Ditto.
2001-09-04 Derek Price <dprice@collab.net>
* INSTALL (Building from source code under UNIX): Add a comment about
the noautomake.sh script and autotool versions.
2001-08-20 Derek Price <dprice@collab.net>
* configure.in (AC_OUTPUT): Add src/version.h.
(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
* configure: Regenerated.
2001-08-20 Derek Price <dprice@collab.net>
* .cvsignore: Add cvs.spec.
2001-08-14 Derek Price <dprice@collab.net>
* configure.in (AC_OUTPUT): Add cvs.spec.
* Makefile.am (EXTRA_DIST): Remove cvs.spec.in and cvs.spec.
(Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
* cvs.spec.in: Use @PACKAGE@ from configure.
* cvs.spec: Remove this file.
* configure: Regenerated.
* Makefile.in: Ditto.
2001-08-14 Derek Price <dprice@collab.net>
* DEVEL-CVS: Update mailing list addresses.
* HACKING: Ditto.
2001-08-09 Derek Price <dprice@collab.net>
* cvsnt.mak: Add entry for annotate.c.
2001-08-07 Derek Price <dprice@collab.net>
* build.com: correct name of build .com for zlib.
(Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
2001-08-06 Derek Price <dprice@collab.net>
* configure.in: Remove some redundant macros (they appear to be run
automatically by AC_INIT).
* configure: Regenerated.
2001-08-06 Derek Price <dprice@collab.net>
* configure.in: Add AC_EXEEXT to get things right when under Windows.
(Report and patch from manklu@web.de.)
* configure.in: Reorder some macros to prevent Autoconf warnings.
* configure: Regenerated.
* Makefile.in: Ditto.
2001-07-26 Larry Jones <larry.jones@sdrc.com>
* NEWS: Fix format, add note about tag -B.
2001-07-16 Derek Price <dprice@collab.net>
* compile: New Automake file.
* configure.in: Add AM_PROG_CC_C_O to work around problems with some
compilers.
* aclocal.m4: Regenerated.
* Makefile.in: Ditto.
* config.h.in: Ditto.
* configure: Ditto.
(Thanks to Stephen Cameron <smcameron@yahoo.com> and
Tom Tromey <tromey@redhat.com>.)
2001-07-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new Automake release candidate 1.4h.
* aclocal.m4: Ditto.
2001-07-04 Derek Price <dprice@collab.net>
* configure.in: Tidy and add some comments.
* configure: Regenerated.
2001-07-03 Derek Price <dprice@collab.net>
* HACKING (Source): Add a note about where to obtain the development
sources.
(Thanks to Bear Giles <bear@coyotesong.com>.)
2001-07-03 Derek Price <dprice@collab.net>
* configure.in: Test for mmap.
* configure: Regenerated.
* config.h.in: Ditto.
2001-06-28 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new version of Automake.
* aclocal.m4: Ditto.
* configure: Regenerated.
2001-06-28 Derek Price <dprice@collab.net>
* mdate-sh: New file to support doc/version.texi.
2001-06-27 Larry Jones <larry.jones@sdrc.com>
* TESTS: Note environment variables to select certain tools,
potential problems with big environments.
* TODO: Add note about non-canonical paths. Reformat long lines.
* NEWS (Changes since 1.11): Note new loginfo format string expansion.
Reformat some long lines.
2001-06-11 Derek Price <dprice@collab.net>
* cvsnt.dsp: Add src/annotate.c to source file list.
(Thanks to Jerzy Kaczorowski <kaczoroj@hotmail.com>.)
2001-05-30 Derek Price <dprice@collab.net>
* configure.in (AC_OUTPUT): Change contrib/pvcs2cvs to contrib/pvcs2rcs.
* configure: Regenerated.
2001-05-29 Derek Price <dprice@collab.net>
* configure.in (AC_OUTPUT): Add pvcs2cvs.
* configure: Regenerated.
2001-05-21 Derek Price <dprice@collab.net>
* NEWS (Changes since 1.11): It's "noautomake.sh", not "noautoconf.sh".
* Makefile.am (EXTRA_DIST): Include noautomake.sh.
(AUTOMAKE_OPTIONS): Update required Automake version to 1.4e.
(Reported by Alexey Mahotkin <alexm@hsys.msk.ru>).
2001-05-21 Derek Price <dprice@collab.net>
* Makefile.am (EXTRA_DIST): Add noautoconf.sh.
2001-05-17 Larry Jones <larry.jones@sdrc.com>
* depcomp: Yet another newer (unofficial) version from Automake.
2001-05-10 Larry Jones <larry.jones@sdrc.com>
* configure.in (AC_OUTPUT): Remove -f from chmod -- not portable.
* configure: Regenerated.
2001-05-03 Derek Price <dprice@collab.net>
* TODO (204): New item.
2001-05-02 Derek Price <dprice@collab.net>
* acinclude.m4 (ACX_WITH_GSSAPI): Make krb5.h a requirement for GSSAPI.
krb5.h shouldn't be required, but CVS's GSSAPI implementation is
broken.
(Reported by Stephen Rasku <stephen@tgivan.com>.)
* aclocal.m4: Regenerated.
* configure: Ditto.
2001-04-29 Derek Price <dprice@collab.net>
* Makefile.am (distcheck-hook): Undo last change.
(localcheck): New target.
* Makefile.in: Regenerated.
2001-04-29 Derek Price <dprice@collab.net>
* Makefile.am: Add remotecheck to distcheck-hook.
* Makefile.in: Regenerated.
2001-04-27 Derek Price <dprice@collab.net>
* TODO (202): Remove my claim.
(203): New item.
2001-04-27 Derek Price <dprice@collab.net>
* configure.in: Update version number.
* configure: Regenerated.
* cvs.spec: Ditto.
2001-04-27 Derek Price <dprice@collab.net>
* configure.in: Update version number.
* NEWS (new since 1.11.1): Broke read-only fix.
(new since 1.11): Diff fix.
* configure: Regenerated.
* cvs.spec: Ditto.
2001-04-26 Derek Price <dprice@collab.net>
* cvs.spec.in: Don't include %{_infodir}/dir.
@ -18,11 +311,11 @@
* NEWS: Correct punctuation.
2001-04-25 Larry Jones <larry.jones@sdr.com>
2001-04-25 Larry Jones <larry.jones@sdrc.com>
* depcomp (aix, sgi): Correct previous fixes.
2001-04-24 Larry Jones <larry.jones@sdr.com>
2001-04-24 Larry Jones <larry.jones@sdrc.com>
* depcomp (sgi): Remove stray HP-UX code.
@ -32,23 +325,23 @@
prevent unecessary AUtomake rebuilds after updates.
* NEWS: Note this new scipt.
2001-04-16 Larry Jones <larry.jones@sdr.com>
2001-04-16 Larry Jones <larry.jones@sdrc.com>
* depcomp (aix): Remove stray HP-UX code.
2001-04-12 Larry Jones <larry.jones@sdr.com>
2001-04-12 Larry Jones <larry.jones@sdrc.com>
* mkinstalldirs: Newer version from Automake.
2001-04-12 Larry Jones <larry.jones@sdr.com>
2001-04-12 Larry Jones <larry.jones@sdrc.com>
* depcomp: Newer version from Automake.
2001-04-04 Larry Jones <larry.jones@sdr.com>
2001-04-04 Larry Jones <larry.jones@sdrc.com>
* depcomp: Don't count on $? being set in then or else clauses.
2001-03-30 Larry Jones <larry.jones@sdr.com>
2001-03-30 Larry Jones <larry.jones@sdrc.com>
* NEWS: Note new rlog and rannotate commands.

View File

@ -6,7 +6,7 @@ development group operates. Also see the HACKING file.
----------------------------------------------------------------------
Charter for the devel-cvs mailing list:
The CVS Developers' List <devel-cvs@cvshome.org> exists to help people
The CVS Developers' List <dev@ccvs.cvshome.org> exists to help people
with access to the CVS source repository co-ordinate changes, make
releases, and administer the repository.

View File

@ -1,5 +1,11 @@
How to write code for CVS
* Source
Patches against the development version of CVS are most likely to be accepted:
$ cvs -d:pserver:anoncvs@cvs.cvshome.org/cvsroot co ccvs
* Compiler options
If you are using GCC, you'll want to configure with -Wall, which can
@ -141,7 +147,7 @@ process the following should exist:
- Most of the time, a test case (see TESTS). It can be quite
frustrating to fix a bug only to see it reappear later, and adding
the case to the testsuite, where feasible, solves this and other
problems.
problems. See the TESTS file for notes on writing new tests.
If you solve several unrelated problems, it is generally easier to
consider the desirability of the changes if there is a separate patch
@ -180,20 +186,20 @@ intentional, to avoid a last minute rush to get new features in.
Anyone can add themselves to the following mailing lists:
devel-cvs. Unless you are accepted as a CVS developer as
dev. Unless you are accepted as a CVS developer as
described in the DEVEL-CVS file, you will only be able to
read this list, not send to it. The charter of the list is
also in DEVEL-CVS.
commit-cvs. The only messages sent to this list are sent
cvs. The only messages sent to this list are sent
automatically, via the CVS `loginfo' mechanism, when someone
checks something in to the master CVS repository.
test-results. The only messages sent to this list are sent
automatically, daily, by a script which runs "make check"
and "make remotecheck" on the master CVS sources.
To subscribe to devel-cvs, commit-cvs, or test-results, send
a message to "majordomo@cvshome.org" whose body consists of
"subscribe <list>", where <list> is devel-cvs, commit-cvs or
test-results.
To subscribe to dev, cvs, or test-results, send
a message to "<list>-subscribe@ccvs.cvshome.org" or visit
http://ccvs.cvshome.org/servlets/ProjectMailingListList and follow the
instructions there.
One other list related to CVS development is bug-cvs. This is the
list which users are requested to send bug reports to. Anyone can

View File

@ -241,7 +241,19 @@ VAX:
Building from source code under Unix:
1) Run "configure":
1) Some combinations of Automake and Autoconf versions may break the CVS build
if file timestamps aren't set correctly, so you may wish to run
noautomake.sh to set the timestamps and avoid attempting to run the
autotools on your system, especially if you are building from source
checked out from CVS:
$ ./noautomake.sh --noautoconf
The CVS Makefiles and configure script were built using Automake 1.5 and
Autoconf 2.13, respectively. Other combinations of autotool versions may
or may not work.
2) Run "configure":
$ ./configure
@ -332,10 +344,10 @@ Building from source code under Unix:
END OF NOTE FOR NDBM GUNK.
2) Edit src/options.h. The defaults should be reasonable, and in fact
3) Edit src/options.h. The defaults should be reasonable, and in fact
if you are lazy you can safely skip this step.
3) Try to build it:
4) Try to build it:
$ make
@ -346,7 +358,7 @@ Building from source code under Unix:
compiler information, make output, and anything else you think
will be helpful.
3a) Run the regression tests (optional).
4a) Run the regression tests (optional).
You may also wish to validate the correctness of the new binary by
running the regression tests. If they succeed, that is nice to
@ -358,7 +370,7 @@ Building from source code under Unix:
If you want to run the tests, see the file TESTS for more information.
4) Install the binaries/documentation:
5) Install the binaries/documentation:
$ make install
@ -371,7 +383,8 @@ Detailed information about your interaction with "configure":
The "configure" script and its interaction with its options and the
environment is described here. For more detailed documentation about
"configure", please refer to the GNU Autoconf documentation.
"configure", please run `./configure --help' or refer to the GNU Autoconf
documentation.
Supported options are:

View File

@ -12,7 +12,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
AUTOMAKE_OPTIONS = 1.4a dist-bzip2
AUTOMAKE_OPTIONS = 1.5 dist-bzip2
## Subdirectories to run make in for the primary targets.
# Unix source subdirs, where we'll want to run lint and etags:
@ -35,32 +35,23 @@ EXTRA_DIST = \
TESTS \
build.com \
cvs-format.el \
cvs.spec \
cvs.spec.in \
cvsnt.dsp \
cvsnt.dsw \
cvsnt.mak
cvsnt.mak \
noautomake.sh
.PHONY: remotecheck
remotecheck: all
## MAINTAINER Targets
.PHONY: localcheck remotecheck
localcheck remotecheck: all
cd src && $(MAKE) $(AM_MAKEFLAGS) "$@"
.PHONY: doc
doc:
cd doc && $(MAKE) $(AM_MAKEFLAGS) "$@"
## MAINTAINER Targets
## cvs.spec ##
# - cvs.spec needs to be updated only once, since it depends on
# configure.in, not on the results of a 'configure' run.
# - It is guaranteed (with GNU Make) that when the version in configure.in
# is changed, acversion.m4 is built only after the new version number is
# propagated to the Makefile. (Libtool uses the same guarantee.)
cvs.spec: $(srcdir)/cvs.spec.in $(top_srcdir)/configure.in
sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/cvs.spec.in >cvs.tspec
mv cvs.tspec $(srcdir)/cvs.spec
# for backwards compatibility with the old makefiles
.PHONY: realclean
realclean: maintainer-clean

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4e from Makefile.am.
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
@ -26,7 +26,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
SHELL = @SHELL@
srcdir = @srcdir@
@ -47,11 +46,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
@ -65,7 +62,6 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -77,29 +73,26 @@ AWK = @AWK@
CC = @CC@
CSH = @CSH@
DEPDIR = @DEPDIR@
ETAGS = @ETAGS@
ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
EXEEXT = @EXEEXT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
KRB4 = @KRB4@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PR = @PR@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
ROFF = @ROFF@
STRIP = @STRIP@
TEXI2DVI = @TEXI2DVI@
VERSION = @VERSION@
YACC = @YACC@
_am_include = @_am_include@
_am_quote = @_am_quote@
am__include = @am__include@
am__quote = @am__quote@
includeopt = @includeopt@
install_sh = @install_sh@
AUTOMAKE_OPTIONS = 1.4a dist-bzip2
AUTOMAKE_OPTIONS = 1.5 dist-bzip2
# Unix source subdirs, where we'll want to run lint and etags:
# This is a legacy variable from b4 Automake
@ -122,52 +115,47 @@ EXTRA_DIST = \
TESTS \
build.com \
cvs-format.el \
cvs.spec \
cvs.spec.in \
cvsnt.dsp \
cvsnt.dsw \
cvsnt.mak
cvsnt.mak \
noautomake.sh
EXEEXT =
OBJEXT = o
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h $(top_builddir)/src/options.h
CONFIG_CLEAN_FILES = emx/Makefile os2/Makefile zlib/Makefile
CONFIG_CLEAN_FILES = cvs.spec emx/Makefile os2/Makefile zlib/Makefile
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive install-data-recursive \
RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
uninstall-info-recursive all-recursive install-data-recursive \
install-exec-recursive installdirs-recursive install-recursive \
uninstall-recursive check-recursive installcheck-recursive
DIST_COMMON = README ./stamp-h1.in AUTHORS COPYING COPYING.LIB \
ChangeLog INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h \
acinclude.m4 aclocal.m4 config.h.in configure configure.in \
depcomp install-sh missing mkinstalldirs
acinclude.m4 aclocal.m4 compile config.h.in configure \
configure.in cvs.spec.in depcomp install-sh mdate-sh missing \
mkinstalldirs
DIST_SUBDIRS = $(SUBDIRS)
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$@ $(SHELL) ./config.status
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): configure.in acinclude.m4
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
@ -193,12 +181,15 @@ $(srcdir)/./stamp-h1.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/
distclean-hdr:
-rm -f config.h
cvs.spec: $(top_builddir)/config.status cvs.spec.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
emx/Makefile: $(top_builddir)/config.status $(top_srcdir)/emx/Makefile.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
os2/Makefile: $(top_builddir)/config.status $(top_srcdir)/os2/Makefile.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
zlib/Makefile: $(top_builddir)/config.status $(top_srcdir)/zlib/Makefile.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@ -272,39 +263,44 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -f $$subdir/TAGS && tags="$$tags $(ETAGS_INCLUDE_OPTION)$$here/$$subdir/TAGS"; \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list @CONFIG@; do \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
|| $(ETAGS) $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)
|| etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $$here
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = .
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
# Avoid unsightly `./'.
distdir = $(PACKAGE)-$(VERSION)
GZIP_ENV = --best
distdir: $(DISTFILES)
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
mkdir $(distdir)
$(mkinstalldirs) $(distdir)/contrib $(distdir)/emx $(distdir)/os2 $(distdir)/src $(distdir)/zlib
$(mkinstalldirs) $(distdir)/. $(distdir)/contrib $(distdir)/emx $(distdir)/os2 $(distdir)/src $(distdir)/zlib
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
@ -359,7 +355,9 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& test `find $$dc_install_base -type f -print | wc -l` -le 1 \
&& (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
|| (echo "Error: files left after uninstall" 1>&2; \
exit 1) ) \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& $(MAKE) $(AM_MAKEFLAGS) distclean \
&& rm -f $(distdir).tar.gz \
@ -372,7 +370,6 @@ distcheck: dist
check-am: all-am
check: check-recursive
all-am: Makefile config.h
installdirs: installdirs-recursive
installdirs-am:
@ -385,38 +382,37 @@ install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
dist-all: dist dist-bzip2
dist-all: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
distclean: distclean-recursive
-rm -f config.status
-rm -f config.status config.cache config.log
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
dvi:
dvi: dvi-recursive
dvi-am:
info:
info: info-recursive
info-am:
@ -424,56 +420,52 @@ install-data-am:
install-exec-am:
install-info:
install-info: install-info-recursive
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f config.status
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
.PHONY: $(RECURSIVE_TARGETS) all all-am check check-am clean \
uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
clean-generic clean-recursive dist dist-all dist-bzip2 \
distcheck distclean distclean-generic distclean-hdr \
distclean-recursive distclean-tags distdir dvi dvi-am info \
info-am install install-am install-data install-data-am \
install-data-recursive install-exec install-exec-am \
install-exec-recursive install-info install-man \
distclean-recursive distclean-tags distdir dvi dvi-am \
dvi-recursive info info-am info-recursive install install-am \
install-data install-data-am install-data-recursive \
install-exec install-exec-am install-exec-recursive \
install-info install-info-am install-info-recursive install-man \
install-recursive install-strip installcheck installcheck-am \
installdirs installdirs-am installdirs-recursive \
maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-generic \
mostlyclean-recursive tags tags-recursive uninstall \
uninstall-am uninstall-recursive
uninstall-am uninstall-info-am uninstall-info-recursive \
uninstall-recursive
.PHONY: remotecheck
remotecheck: all
.PHONY: localcheck remotecheck
localcheck remotecheck: all
cd src && $(MAKE) $(AM_MAKEFLAGS) "$@"
.PHONY: doc
doc:
cd doc && $(MAKE) $(AM_MAKEFLAGS) "$@"
# - cvs.spec needs to be updated only once, since it depends on
# configure.in, not on the results of a 'configure' run.
# - It is guaranteed (with GNU Make) that when the version in configure.in
# is changed, acversion.m4 is built only after the new version number is
# propagated to the Makefile. (Libtool uses the same guarantee.)
cvs.spec: $(srcdir)/cvs.spec.in $(top_srcdir)/configure.in
sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/cvs.spec.in >cvs.tspec
mv cvs.tspec $(srcdir)/cvs.spec
# for backwards compatibility with the old makefiles
.PHONY: realclean
realclean: maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,46 +1,88 @@
Changes since 1.11.1:
Changes since 1.11.1p1:
* The "log" and "rlog" commands now have a -S option to suppress the
header information when no revisions are selected.
* A serious error that allowed read-only users to tag files has been
corrected.
* The "annotate" command will no longer annotate binary files unless
you specify the new -F option.
* The "tag" and "rtag" commands will no longer move or delete branch
tags unless you use the new -B option. (This prevents accidental
changes to branch tags that are hard to undo.)
* We've standardized on the 1.5 Automake release for the moment. Again, this
should only really affect developers. See the section of the INSTALL file
about using the autotools if you are compiling CVS yourself.
Changes from 1.11.1 to 1.11.1p1:
* Read only access was broken - now fixed.
Changes since 1.11:
Changes from 1.11 to 1.11.1:
* There was a bug in the diff code which caused conflicts to be flagged which shouldn't
have been. This has been fixed.
* The "cvs diff" command now accepts the -y/--side=by-side and -T/
--initial-tab options. (To use these options with a remote repository,
both the client and the server must support them.)
* The expansion of the loginfo format string has changed slightly.
Previously, the expansion was surrounded by single quotes ('); if a file
name contained a single quote character, the string would not be parsed
as a single entity by the Unix shell (and it would not be possible to
parse it unambiguously). Now the expansion is surrounded by double
quotes (") and any embedded dollar signs ($), backticks (`), backslashes
(\), and double quotes are preceded by a backslash. This is parsed as a
single entity by the shell reguardless of content. This change should
not be noticable unless you're not using a Unix shell or you have
embedded the format string inside a double quoted string.
* There was a bug in the diff code which sometimes caused conflicts to
be flagged which shouldn't have been. This has been fixed.
* New "cvs rlog" and "cvs rannotate" commands have been added to get log
messages and annotations without having to have a checked-out copy.
* Exclusive revision ranges have been added to "cvs log" using ::
(similar to "cvs admin -o").
* The VMS client now accepts wildcards if you're running VMS 7.x.
* ZLIB has been updated to version 1.1.3, the most current version. This
includes mostly some optimizations and minor bug fixes.
* The ~/.cvspass file has a slightly modified format. CVSROOTs are now
stored in a new canonical form - hostnames are now case insensitive and port
numbers are always stored in the new format. Until a new login for a
particular CVSROOT is performed with the new version of CVS, new and old
versions of CVS should interoperate invisibly. After that point, an extra login
using the old version of CVS may be necessary to continue to allow the new and
old versions of CVS to interoperate using the same ~/.cvspass file and CVSROOT.
The exception to this rule occurs when the CVSROOTs used with the different
versions use case insensitively different hostnames, for example, "empress",
and "empress.2-wit.com".
stored in a new canonical form - hostnames are now case insensitive and
port numbers are always stored in the new format. Until a new login for
a particular CVSROOT is performed with the new version of CVS, new and
old versions of CVS should interoperate invisibly. After that point, an
extra login using the old version of CVS may be necessary to continue to
allow the new and old versions of CVS to interoperate using the same
~/.cvspass file and CVSROOT. The exception to this rule occurs when the
CVSROOTs used with the different versions use case insensitively
different hostnames, for example, "empress", and "empress.2-wit.com".
* A password and a port number may now be specified in CVSROOT for pserver
connections. The new format is:
* A password and a port number may now be specified in CVSROOT for
pserver connections. The new format is:
:pserver:[[user][:password]@]host[:[port]]/path
Note that passwords specified in a checkout command will be saved in the clear
in the CVS/Root file in each created directory, so this is not recommended,
except perhaps when accessing anonymous repositories or the like.
Note that passwords specified in a checkout command will be saved in the
clear in the CVS/Root file in each created directory, so this is not
recommended, except perhaps when accessing anonymous repositories or the
like.
* The distribution has been converted to use Automake. This shouldn't affect
most users except to ease some portability concerns, but if you are building
from the repository and encounter problems with the makefiles, you might try
running ./noautoconf.sh after a fresh update -AC.
* The distribution has been converted to use Automake. This shouldn't
affect most users except to ease some portability concerns, but if you
are building from the repository and encounter problems with the
makefiles, you might try running ./noautomake.sh after a fresh update
-AC.
Changes since 1.10:
Changes from 1.10 to 1.11:
* The "cvs update" command has a new -C option to get clean copies from
the repository, abandoning any local changes.
* The new "cvs version" command gives a short version message. If
the repository is remote, both the client and server versions are
@ -84,6 +126,11 @@ continues to be to put the lock files in the repository itself.
Changes from 1.9 to 1.10:
* A bug was discovered in the -t/-f wrapper support that can cause
serious data loss. Because of this (and also the fact that it doesn't
work at all in client/server mode), the -t/-f wrapper code has been
disabled until it can be fixed.
* There is a new feature, enabled by TopLevelAdmin in CVSROOT/config,
which tells CVS to modify the behavior of the "checkout" command. The
command now creates a CVS directory at the top level of the new

View File

@ -75,6 +75,7 @@ Installation:
Please read the INSTALL file for installation instructions. Brief summary:
$ ./noautomake.sh --noautoconf
$ ./configure
$ make
(run the regression tests if desired)

View File

@ -27,19 +27,22 @@ provide multiple versions of tools (typically an ancient, traditional
version and a new, standards-conforming version), so you may already
have a usable version even if the default version isn't. If you don't
have a suitable tool, you can probably get one from the GNU Project (see
http://www.gnu.org). expr and id are both part of the GNU shellutils
package, tr is part of the GNU textutils package, and awk is part of the
GNU gawk package. The test script tries to verify that the tools exist
and are usable; if not, it tries to find the GNU versions and use them
instead. If it can't find the GNU versions either, it will print an
error message and, depending on the severity of the deficiency, it may
exit.
http://www.gnu.org). At this writting, expr and id are both part of the
GNU shellutils package, tr is part of the GNU textutils package, and awk
is part of the GNU gawk package. The test script tries to verify that
the tools exist and are usable; if not, it tries to find the GNU
versions and use them instead. If it can't find the GNU versions
either, it will print an error message and, depending on the severity of
the deficiency, it may exit. There are environment variables you can
set to use a particular version of a tool -- see the test script
(src/sanity.sh) for details.
If there is some unexpected output, that is a failure which can be
somewhat hard to track down. Finding out which test is producing the
output is not always easy. The newer tests (that is, ones using
dotest*) will not have this problem, but there are many old tests
which have not been converted.
Some of the tests use fairly long command lines -- this usually isn't a
problem, but if you have a very short command line length limit (or a
lot of environment variables), you may run into trouble. Also, some of
the tests expect your local timezone to be an integral number of hours
from UTC -- if you usually use a fractional timezone, use a different
(integral) timezone when running the tests to avoid spurious failures.
If running the tests produces the output "FAIL:" followed by the name
of the test that failed, then the details on the failure are in the
@ -161,3 +164,66 @@ c. have a send-expect type dialog with the program under test
(e.g. see server-7 or pserver-4 which want to talk the CVS
protocol, or the many tests which need to answer the prompt of "cvs
release", e.g. deep-5).
ABOUT ADDING YOUR OWN TESTS
***************************
As stated in the HACKING file, patches are not accepted without documentation
and tests. Many people seem to be scared off by the large size of the
sanity.sh script, but it is not really very complicated.
You can probably ignore most of the begining of the script. This section
just sets some environment variables and finds the tools the script needs to
run.
There is one main loop you can find by grepping for "The big loop". This loop
repeatedly calls a case statement where the individual cases are of the form:
testname)
...
;;
If you add a complete new test be sure to add it into the default list of tests
(grep for 'tests=' near the begining of the script) as well as the case
statement. During debugging, be aware that the sanity.sh usage allows for a '-f
testname' option to continue through the default list "from" a particular test
as well as interpreting everything in argv past the required options as test
names to run individual tests.
Within each major test section, individual tests usually look like:
dotest testname-subtestname "shell command" "optionally multiline regexp"
Tests should always start in $testdir and create a subdirectory to operate in
and remove their cruft and end back in $testdir. The dotest functions output
failure messages and exit if the shell command exits with the wrong exit code or
its stdin/stderr output doesn't match the regexp. There are a few dotest
variations, most notably dotest_fail for expected non-zero exit codes.
Other than that the script is mostly vanilla Bourne shell. There are a few
constructs used for versatility and portability. You can grep for the ones I
miss, but here are a few important ones. I'm leaving off long explanations
after the first few since it probably gives you the idea and the data is in
sanity.sh.
* $testdir = the directory this test is taking place in
(CVSROOT=$testdir/cvsroot or CVSROOT=:fork:$testdir/cvsroot)
* $testcvs = full path to the cvs executable we are testing
* $PLUS = expr dependant uninterpreted '+' since this can vary
* $DOTSTAR = expr dependant _interpreted_ .* since some exprs don't match
EOL
* $username = regexp to match a username
* $hostname = regexp to match a hostname
* $PROG = regexp to match progname in CVS error messages
* $remote = 'yes' or 'no', depending on whether the script is running with
a remote CVSROOT
And, of course, some characters like '.' in regexps need to be '\' escaped when
you mean them literally. Some characters may be interpreted by the shell,
e.g. backquotes and '$', are usually either escaped or replaced with '.'.
dotest adds the final '$' anchor to the regexp itself and all the expr
implementations I know of implicitly supply the start anchor ('^').
If you only make a few mistakes, the work is, of course, still usable, though we
may send the patch back to you for repair. :)

View File

@ -801,15 +801,35 @@ but most unlinks should probably be using unlink_file and not CVS_UNLINK.
199. Add test for login & logout functionality, including support for
backwards compatibility with old CVSROOTs.
200. Make a 'cvs add' without write access a non-fatal error so that the
user's Entries file is updated and future 'cvs diffs' will work properly. This
should ease patch submission.
200. Make a 'cvs add' without write access a non-fatal error so that
the user's Entries file is updated and future 'cvs diffs' will work
properly. This should ease patch submission.
201. cvs_temp_file should be creating temporary files in a privately owned
subdirectory of of temp due to security issues on some systems.
**
202. Merge most of the diff & rdiff code. Enable rdiff to accept most diff
options. Make rdiff output look like diff's. Make diff garbage go to stderr
and only standard diff output go to stdout.
** In progress - DRP
202. Merge most of the diff & rdiff code. Enable rdiff to accept most
diff options. Make rdiff output look like diff's. Make CVS diff
garbage go to stderr and only standard diff output go to stdout.
203. Add val-tags additions to the tagging code. Don't remove the
update additions since val-tags could still be used as a cache when the
repository was imported from elsewhere (the tags weren't applied with a
version which wrote val-tags).
204. Add test case for compression. A buf_shutdown error using compression
wasn't caught by the test suite.
205. There are lots of cases where trailing slashes on directory names
and other non-canonical paths confuse CVS. Most of the cases that do
work are handled on an ad-hoc basis. We need to come up with a coherent
strategy to address path canonicalization and apply it consistently.
206. Restore directory-at-a-time locking for tag operations instead of
locking the entire tree.
207. Fix the branch following logic in log to work with CVS branching.
Right now the code assumes RCS branching where all revisions on the
branch have the same number of components in their revision numbers and
that isn't true for CVS (revisions 1.2 and 2.4.6.8 can be on the same
branch in CVS).

View File

@ -60,9 +60,11 @@ if test x$acx_gssapi_withgssapi = xyes; then
fi
unset ac_cv_header_gssapi_h
unset ac_cv_header_gssapi_gssapi_h
AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h])
if test "$ac_cv_header_gssapi_h" = "yes" ||
test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then
unset ac_cv_header_krb5_h
AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h krb5.h])
if (test "$ac_cv_header_gssapi_h" = yes ||
test "$ac_cv_header_gssapi_gssapi_h" = yes) &&
test "$ac_cv_header_krb5_h" = yes; then
break
fi
done

367
contrib/cvs/aclocal.m4 vendored
View File

@ -1,6 +1,6 @@
# aclocal.m4 generated automatically by aclocal 1.4e
# aclocal.m4 generated automatically by aclocal 1.5
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000
# Copyright 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -73,9 +73,11 @@ if test x$acx_gssapi_withgssapi = xyes; then
fi
unset ac_cv_header_gssapi_h
unset ac_cv_header_gssapi_gssapi_h
AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h])
if test "$ac_cv_header_gssapi_h" = "yes" ||
test "$ac_cv_header_gssapi_gssapi_h" = "yes"; then
unset ac_cv_header_krb5_h
AC_CHECK_HEADERS([gssapi.h gssapi/gssapi.h krb5.h])
if (test "$ac_cv_header_gssapi_h" = yes ||
test "$ac_cv_header_gssapi_gssapi_h" = yes) &&
test "$ac_cv_header_krb5_h" = yes; then
break
fi
done
@ -295,7 +297,16 @@ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
# the ones we care about.
ifdef([m4_pattern_allow],
[m4_pattern_allow([^AM_(C|CPP|CXX|OBJC|F|R|GCJ)FLAGS])])dnl
[m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
# Autoconf 2.50 always computes EXEEXT. However we need to be
# compatible with 2.13, for now. So we always define EXEEXT, but we
# don't compute it.
AC_SUBST(EXEEXT)
# Similar for OBJEXT -- only we only use OBJEXT if the user actually
# requests that it be used. This is a bit dumb.
: ${OBJEXT=o}
AC_SUBST(OBJEXT)
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
@ -306,23 +317,22 @@ AM_MISSING_PROG(AUTOMAKE, automake)
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
AM_MISSING_PROG(AMTAR, tar)
AM_MISSING_INSTALL_SH
AM_PROG_INSTALL_SH
AM_PROG_INSTALL_STRIP
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_PROG_ETAGS])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_PROVIDE_IFELSE([AC_PROG_][CC],
[AM_DEPENDENCIES(CC)],
[_AM_DEPENDENCIES(CC)],
[define([AC_PROG_][CC],
defn([AC_PROG_][CC])[AM_DEPENDENCIES(CC)])])dnl
defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_][CXX],
[AM_DEPENDENCIES(CXX)],
[_AM_DEPENDENCIES(CXX)],
[define([AC_PROG_][CXX],
defn([AC_PROG_][CXX])[AM_DEPENDENCIES(CXX)])])dnl
defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
])
#
@ -349,6 +359,7 @@ if (
# -L didn't work.
set X `ls -t $srcdir/configure conftest.file`
fi
rm -f conftest.file
if test "$[*]" != "X $srcdir/configure conftest.file" \
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
@ -369,7 +380,6 @@ else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
rm -f conftest*
AC_MSG_RESULT(yes)])
@ -383,32 +393,13 @@ $1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
# AM_MISSING_INSTALL_SH
# ---------------------
# Like AM_MISSING_PROG, but only looks for install-sh.
AC_DEFUN([AM_MISSING_INSTALL_SH],
[AC_REQUIRE([AM_MISSING_HAS_RUN])
if test -z "$install_sh"; then
for install_sh in "$ac_aux_dir/install-sh" \
"$ac_aux_dir/install.sh" \
"${am_missing_run}${ac_auxdir}/install-sh";
do
test -f "$install_sh" && break
done
# FIXME: an evil hack: we remove the SHELL invocation from
# install_sh because automake adds it back in. Sigh.
install_sh=`echo $install_sh | sed -e 's/\${SHELL}//'`
fi
AC_SUBST(install_sh)])
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it supports --run.
# If it does, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[test x"${MISSING+set}" = xset ||
MISSING="\${SHELL} `CDPATH=:; cd $ac_aux_dir && pwd`/missing"
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
@ -422,140 +413,71 @@ fi
# AM_AUX_DIR_EXPAND
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to ${srcdir}/foo. In other projects, it is set to `.'.
# Of course, Automake must honor this variable whenever it call a tool
# from the auxiliary directory. The problem is that $srcdir (hence
# $ac_aux_dir) can be either an absolute path or a path relative to
# $top_srcdir or absolute, this depends on how configure is run. This
# is pretty anoying since it makes $ac_aux_dir quite unusable in
# subdirectories: on the top source directory, any form will work
# fine, but in subdirectories relative pat needs to be adapted.
# - calling $top_srcidr/$ac_aux_dir/missing would success if $srcdir is
# relative, but fail if $srcdir is absolute
# - conversly, calling $ax_aux_dir/missing would fail if $srcdir is
# absolute, and success on relative paths.
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
#
# Consequently, we define and use $am_aux_dir, the "always absolute"
# version of $ac_aux_dir.
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
# therefore $ac_aux_dir as well) can be either absolute or relative,
# depending on how configure is run. This is pretty annoying, since
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
# source directory, any form will work fine, but in subdirectories a
# relative path needs to be adjusted first.
#
# $ac_aux_dir/missing
# fails when called from a subdirectory if $ac_aux_dir is relative
# $top_srcdir/$ac_aux_dir/missing
# fails if $ac_aux_dir is absolute,
# fails when called from a subdirectory in a VPATH build with
# a relative $ac_aux_dir
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
# harmless because $srcdir is `.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
# and then we would define $MISSING as
# MISSING="\${SHELL} $am_aux_dir/missing"
# This will work as long as MISSING is not called from configure, because
# unfortunately $(top_srcdir) has no meaning in configure.
# However there are other variables, like CC, which are often used in
# configure, and could therefore not use this "fixed" $ac_aux_dir.
#
# Another solution, used here, is to always expand $ac_aux_dir to an
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND], [
# expand $ac_aux_dir to an absolute path
am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
])
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
install_sh=${install_sh-"$am_aux_dir/install-sh"}
AC_SUBST(install_sh)])
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross=compiling environments, where the build's strip
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so if we ever
# need to use a non standard strip, we just have to make sure we use
# install-sh with the STRIPPROG variable set.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in `make install-strip', and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_MISSING_INSTALL_SH])
dnl Don't test for $cross_compiling = yes, it might be `maybe'...
# We'd like to do this but we can't because it will unconditionally
# require config.guess. One way would be if autoconf had the capability
# to let us compile in this code only when config.guess was already
# a possibility.
#if test "$cross_compiling" != no; then
# # since we are cross-compiling, we need to check for a suitable `strip'
# AM_PROG_STRIP
# if test -z "$STRIP"; then
# AC_MSG_WARN([strip missing, install-strip will not strip binaries])
# fi
#fi
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# If $STRIP is defined (either by the user, or by AM_PROG_STRIP),
# instruct install-strip to use install-sh and the given $STRIP program.
# Otherwise, just use ${INSTALL}: the idea is to use the vendor install
# as much as possible, because it's faster.
if test -z "$STRIP"; then
# The top level make will set INSTALL_PROGRAM=$(INSTALL_STRIP_PROGRAM)
# and the double dolard below is there to make sure that ${INSTALL}
# is substitued in the sub-makes, not at the top-level; this is
# needed if ${INSTALL} is a relative path (ajusted in each subdirectory
# by config.status).
INSTALL_STRIP_PROGRAM='$${INSTALL} -s'
INSTALL_STRIP_PROGRAM_ENV=''
else
_am_dirpart="`echo $install_sh | sed -e 's,//*[[^/]]*$,,'`"
INSTALL_STRIP_PROGRAM="\${SHELL} \`CDPATH=: && cd $_am_dirpart && pwd\`/install-sh -c -s"
INSTALL_STRIP_PROGRAM_ENV="STRIPPROG='\$(STRIP)'"
fi
AC_SUBST([STRIP])
AC_SUBST([INSTALL_STRIP_PROGRAM])
AC_SUBST([INSTALL_STRIP_PROGRAM_ENV])])
#AC_DEFUN([AM_PROG_STRIP],
#[# Check for `strip', unless the installer
# has set the STRIP environment variable.
# Note: don't explicitly check for -z "$STRIP" here because
# that will cause problems if AC_CANONICAL_* is AC_REQUIREd after
# this macro, and anyway it doesn't have an effect anyway.
#AC_CHECK_TOOL([STRIP],[strip])
#])
#
# Find some information about the etags program
#
# Sets
# ETAGS = path to etags
# ETAGS_INCLUDE_OPTION = option to pass to etags with arg for includes
#
AC_DEFUN([AM_PROG_ETAGS],
[AC_BEFORE([$0], [AM_PROG_ETAGS_WORKS])dnl
AC_CHECK_PROG(ETAGS, etags, etags)
if test -z "$ETAGS"; then
AC_CHECK_PROG(ETAGS, ctags, ctags -e)
fi
if test -n "$ETAGS"; then
AM_PROG_ETAGS_WORKS
if test "$am_cv_prog_etags_works" = yes ; then
AM_PROG_ETAGS_INCLUDE_OPTION
else
AM_MISSING_PROG(ETAGS, etags)
fi
else
AM_MISSING_PROG(ETAGS, etags)
fi])
# serial 4 -*- Autoconf -*-
AC_DEFUN([AM_PROG_ETAGS_WORKS],
[AC_CACHE_CHECK([whether ${ETAGS-etags} works], [am_cv_prog_etags_works],
[cat >conftest.c <<EOF
int globalvar;
EOF
if AC_TRY_COMMAND([${ETAGS-etags} -f - conftest.c |egrep ^int\ globalvar\; >&2]); then
am_cv_prog_etags_works=yes
else
am_cv_prog_etags_works=no
fi
rm -f conftest.c])])
AC_DEFUN([AM_PROG_ETAGS_INCLUDE_OPTION],
[AC_REQUIRE([AM_PROG_ETAGS_WORKS])dnl
if test "$am_cv_prog_etags_works" = yes ; then
AC_CACHE_CHECK([for etags include option],
[am_cv_prog_etags_include_option],
[cat >conftest.c <<EOF
int globalvar;
EOF
if AC_TRY_COMMAND([${ETAGS-etags} --etags-include=TAGS.inc -f - conftest.c |egrep ^TAGS.inc,include\$ >&2]); then
am_cv_prog_etags_include_option=--etags-include=
elif AC_TRY_COMMAND([${ETAGS-etags} -i TAGS.inc -f - conftest.c |egrep ^TAGS.inc,include\$ >&2]); then
am_cv_prog_etags_include_option='"-i "'
else :
# AC_MSG_ERROR(unfamiliar etags implementation)
fi
rm -f conftest.c])
else
:
fi
ETAGS_INCLUDE_OPTION="$am_cv_prog_etags_include_option"
AC_SUBST(ETAGS_INCLUDE_OPTION)])
# serial 3
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
@ -563,53 +485,57 @@ AC_SUBST(ETAGS_INCLUDE_OPTION)])
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# AM_DEPENDENCIES(NAME)
# _AM_DEPENDENCIES(NAME)
# ---------------------
# See how the compiler implements dependency checking.
# NAME is "CC", "CXX" or "OBJC".
# We try a few techniques and use that to set a single cache variable.
AC_DEFUN([AM_DEPENDENCIES],
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
# dependency, and given that the user is not expected to run this macro,
# just rely on AC_PROG_CC.
AC_DEFUN([_AM_DEPENDENCIES],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
ifelse([$1], CC,
[AC_REQUIRE([AC_PROG_][CC])dnl
AC_REQUIRE([AC_PROG_][CPP])
depcc="$CC"
depcpp="$CPP"],
[$1], CXX, [AC_REQUIRE([AC_PROG_][CXX])dnl
AC_REQUIRE([AC_PROG_][CXXCPP])
depcc="$CXX"
depcpp="$CXXCPP"],
[$1], OBJC, [am_cv_OBJC_dependencies_compiler_type=gcc],
[AC_REQUIRE([AC_PROG_][$1])dnl
depcc="$$1"
depcpp=""])
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
[$1], CXX, [depcc="$CXX" am_compiler_list=],
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
[depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[if test -z "$AMDEP"; then
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir confdir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" confdir
cd confdir
cp "$am_depcomp" conftest.dir
cd conftest.dir
am_cv_$1_dependencies_compiler_type=none
for depmode in `sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < "./depcomp"`; do
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
for depmode in $am_compiler_list; do
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
echo '#include "conftest.h"' > conftest.c
echo 'int i;' > conftest.h
echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
case "$depmode" in
case $depmode in
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
@ -624,18 +550,19 @@ AC_CACHE_CHECK([dependency style of $depcc],
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this.
if depmode="$depmode" \
if depmode=$depmode \
source=conftest.c object=conftest.o \
depfile=conftest.Po tmpdepfile=conftest.TPo \
$SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
grep conftest.h conftest.Po > /dev/null 2>&1; then
am_cv_$1_dependencies_compiler_type="$depmode"
grep conftest.h conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
am_cv_$1_dependencies_compiler_type=$depmode
break
fi
done
cd ..
rm -rf confdir
rm -rf conftest.dir
else
am_cv_$1_dependencies_compiler_type=none
fi
@ -648,16 +575,17 @@ AC_SUBST([$1DEPMODE])
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in AM_DEPENDENCIES
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
AC_DEFUN([AM_SET_DEPDIR],
[if test -d .deps || mkdir .deps 2> /dev/null || test -d .deps; then
[rm -f .deps 2>/dev/null
mkdir .deps 2>/dev/null
if test -d .deps; then
DEPDIR=.deps
# We redirect because .deps might already exist and be populated.
# In this situation we don't want to see an error.
rmdir .deps > /dev/null 2>&1
else
# MS-DOS does not allow filenames that begin with a dot.
DEPDIR=_deps
fi
rmdir .deps 2>/dev/null
AC_SUBST(DEPDIR)
])
@ -689,7 +617,7 @@ popdef([subst])
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
AC_OUTPUT_COMMANDS([
test x"$AMDEP" != x"" ||
test x"$AMDEP_TRUE" != x"" ||
for mf in $CONFIG_FILES; do
case "$mf" in
Makefile) dirpart=.;;
@ -726,7 +654,7 @@ for mf in $CONFIG_FILES; do
echo '# dummy' > "$dirpart/$file"
done
done
], [AMDEP="$AMDEP"
], [AMDEP_TRUE="$AMDEP_TRUE"
ac_aux_dir="$ac_aux_dir"])])
# AM_MAKE_INCLUDE()
@ -740,27 +668,32 @@ doit:
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
_am_include='#'
_am_quote=
am__include='#'
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
_am_include=include
_am_quote=
# We grep out `Entering directory' and `Leaving directory'
# messages which can occur if `w' ends up in MAKEFLAGS.
# In particular we don't look at `^make:' because GNU make might
# be invoked under some other name (usually "gmake"), in which
# case it prints its new name instead of `make'.
if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
am__include=include
am__quote=
_am_result=GNU
fi
# Now try BSD make style include.
if test "$_am_include" = "#"; then
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
_am_include=.include
_am_quote='"'
am__include=.include
am__quote='"'
_am_result=BSD
fi
fi
AC_SUBST(_am_include)
AC_SUBST(_am_quote)
AC_SUBST(am__include)
AC_SUBST(am__quote)
AC_MSG_RESULT($_am_result)
rm -f confinc confmf
])
@ -859,3 +792,43 @@ AC_DEFUN([_AM_DIRNAME],
m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
]) # _AM_DIRNAME
# serial 2
# AM_PROG_CC_C_O
# --------------
# Like AC_PROG_CC_C_O, but changed for automake.
AC_DEFUN([AM_PROG_CC_C_O],
[AC_REQUIRE([AC_PROG_CC_C_O])dnl
AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
# FIXME: we rely on the cache variable name because
# there is no other way.
set dummy $CC
ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
# But if we don't then we get into trouble of one sort or another.
# A longer-term fix would be to have automake use am__CC in this case,
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
CC="$am_aux_dir/compile $CC"
fi
])
#serial 1
# This test replaces the one in autoconf.
# Currently this macro should have the same name as the autoconf macro
# because gettext's gettext.m4 (distributed in the automake package)
# still uses it. Otherwise, the use in gettext.m4 makes autoheader
# give these diagnostics:
# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
undefine([AC_ISC_POSIX])
AC_DEFUN([AC_ISC_POSIX],
[
dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
]
)

82
contrib/cvs/compile Executable file
View File

@ -0,0 +1,82 @@
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
# Copyright 1999, 2000 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Usage:
# compile PROGRAM [ARGS]...
# `-o FOO.o' is removed from the args passed to the actual compile.
prog=$1
shift
ofile=
cfile=
args=
while test $# -gt 0; do
case "$1" in
-o)
ofile=$2
shift
;;
*.c)
cfile=$1
args="$args $1"
;;
*)
args="$args $1"
;;
esac
shift
done
test -z "$ofile" && {
echo "compile: no \`-o' option seen" 1>&2
exit 1
}
test -z "$cfile" && {
echo "compile: no \`.c' file seen" 1>&2
exit 1
}
# Name of file we expect compiler to create.
cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
# Create the lock directory.
lockdir=`echo $ofile | sed -e 's|/|_|g'`
while true; do
if mkdir $lockdir > /dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir $lockdir; exit 1" 1 2 15
# Run the compile.
"$prog" $args
status=$?
if test -f "$cofile"; then
mv "$cofile" "$ofile"
fi
rmdir $lockdir
exit $status

View File

@ -22,6 +22,9 @@
/* Define if you support file names longer than 14 characters. */
#undef HAVE_LONG_FILE_NAMES
/* Define if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define if your struct stat has st_blksize. */
#undef HAVE_ST_BLKSIZE
@ -43,6 +46,9 @@
/* Define to `int' if <sys/types.h> doesn't define. */
#undef mode_t
/* Define if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O
/* Define to `int' if <sys/types.h> doesn't define. */
#undef pid_t
@ -275,6 +281,9 @@
/* Define if you have the <ndir.h> header file. */
#undef HAVE_NDIR_H
/* Define if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
@ -299,12 +308,18 @@
/* Define if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
/* Define if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define if you have the <sys/timeb.h> header file. */
#undef HAVE_SYS_TIMEB_H
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define if you have the <syslog.h> header file. */
#undef HAVE_SYSLOG_H

1698
contrib/cvs/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +1,30 @@
dnl configure.in for cvs
AC_INIT(src/cvs.h)
AM_INIT_AUTOMAKE(cvs, 1.11.1p1)
AM_INIT_AUTOMAKE(cvs, 1.11.2)
AC_PREREQ(2.13)
AC_PREFIX_PROGRAM(cvs)
AM_CONFIG_HEADER(config.h src/options.h)
AC_PROG_AWK
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_MAKE_SET
# Automake's more advanced version of AC_PROG_RANLIB
AM_PROG_CC_C_O
dnl FIXME the next three calls should be avoided according to autoconf
dnl philosophy. for example, AC_CHECK_LIB should be used to look for crypt.
dnl
dnl These are here instead of later because they want to be called before
dnl anything that calls a C compiler.
AC_AIX
AC_MINIX
AC_ISC_POSIX
if test "$ISC" = yes; then
CFLAGS="$CFLAGS -D_SYSV3"
LIBS="-lcrypt $LIBS"
fi
AC_PROG_RANLIB
AC_PROG_YACC
AC_PROG_LN_S
AC_EXEEXT
AC_PATH_PROG(PERL, perl, no)
AC_PATH_PROG(CSH, csh, no)
@ -26,6 +38,9 @@ dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
dnl FIXME I pulled this default list from sanity.sh. Perhaps these lists
dnl can be stored in one location?
dnl
dnl Yeah, put the value in a variable add it to the substitution list
dnl then have configure create sanity.sh from sanity.sh.in...
glocs="$PATH:/usr/local/bin:/usr/contrib/bin:/usr/gnu/bin:/local/bin:/local/gnu/bin:/gnu/bin"
AC_PATH_PROGS(ROFF, groff roff, $missing_dir/missing roff, $glocs)
AC_PATH_PROG(PS2PDF, ps2pdf, $missing_dir/missing ps2pdf)
@ -66,21 +81,29 @@ AM_CONDITIONAL(MAKE_TARGETS_IN_VPATH, \
test $ccvs_cv_bsd_make_vpath_bug = no \
|| test $srcdir = .)
AC_AIX
AC_MINIX
AC_ISC_POSIX
if test "$ISC" = yes; then
CFLAGS="$CFLAGS -D_SYSV3"
LIBS="-lcrypt $LIBS"
fi
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(errno.h unistd.h string.h memory.h utime.h fcntl.h ndbm.h \
limits.h sys/file.h \
sys/param.h sys/select.h sys/time.h sys/timeb.h \
io.h direct.h sys/bsdtypes.h sys/resource.h syslog.h)
AC_CHECK_HEADERS(\
errno.h \
direct.h \
fcntl.h \
io.h \
limits.h \
memory.h \
ndbm.h \
string.h \
syslog.h \
sys/bsdtypes.h \
sys/file.h \
sys/param.h \
sys/resource.h \
sys/select.h \
sys/time.h \
sys/timeb.h \
unistd.h \
utime.h\
)
AC_HEADER_STAT
AC_HEADER_TIME
@ -93,7 +116,17 @@ AC_TYPE_SIGNAL
AC_STRUCT_ST_BLKSIZE
AC_STRUCT_ST_RDEV
AC_REPLACE_FUNCS(mkdir rename strstr dup2 strerror valloc waitpid memmove strtoul)
AC_REPLACE_FUNCS(\
dup2 \
memmove \
mkdir \
rename \
strerror \
strstr \
strtoul\
valloc \
waitpid \
)
AC_CHECK_FUNCS(\
fchdir \
fchmod \
@ -174,6 +207,9 @@ if test "$ac_cv_func_fnmatch_works" = no; then
LIBOBJS="$LIBOBJS fnmatch.o"
fi
dnl for the buffer routine replacements
AC_FUNC_MMAP
# Try to find connect and gethostbyname.
AC_CHECK_LIB(nsl, main,
AC_SEARCH_LIBS(connect, xnet socket inet, AC_DEFINE(HAVE_CONNECT),, -lnsl),
@ -319,6 +355,11 @@ dnl Windows support code in lib/fncase.c to handle the case
dnl insensitive file system. We also need some support libraries. We
dnl do this at the end so that the new libraries are added at the end
dnl of LIBS.
dnl
dnl FIXME: We should be trying to meet the autoconf ideal of checking for
dnl the properties of the system rather than the name of the os here. In other
dnl words, we should check the case sensitivty of the system and then for
dnl the support functions we are using and which library we find them in.
AC_CACHE_CHECK(for cygwin32, ccvs_cv_sys_cygwin32,
[AC_TRY_COMPILE([], [return __CYGWIN32__;],
ccvs_cv_sys_cygwin32=yes, ccvs_cv_sys_cygwin32=no)])
@ -345,6 +386,7 @@ test -f src/options.h && (
)
AC_OUTPUT([Makefile \
cvs.spec \
contrib/Makefile \
contrib/clmerge \
contrib/cln_hist \
@ -353,6 +395,7 @@ AC_OUTPUT([Makefile \
contrib/log \
contrib/log_accum \
contrib/mfpipe \
contrib/pvcs2rcs \
contrib/rcslock \
contrib/sccs2rcs \
diff/Makefile \
@ -363,12 +406,13 @@ AC_OUTPUT([Makefile \
os2/Makefile \
src/Makefile \
src/cvsbug \
src/version.h \
tools/Makefile \
vms/Makefile \
windows-NT/Makefile \
windows-NT/SCC/Makefile \
zlib/Makefile],
[chmod -f +x \
[chmod +x \
contrib/clmerge \
contrib/cln_hist \
contrib/commit_prep \
@ -376,6 +420,7 @@ AC_OUTPUT([Makefile \
contrib/log \
contrib/log_accum \
contrib/mfpipe \
contrib/pvcs2rcs \
contrib/rcslock \
contrib/sccs2rcs \
src/cvsbug])

View File

@ -1,3 +1,124 @@
2002-03-21 Derek Price <oberon@umich.edu>
* Makefile.am (install-data-local): Import a patch from RedHat which
was no longer necessary but causes a FIXME to print - maybe someone
will see it and fix it.
* Makefile.in: Regenerated.
2001-12-06 Derek Price <oberon@umich.edu>
* cvs_acls.in: Allow ACL specification based on branch matching.
(Patch from Aaron Voisine <voisine@bytemobile.com>.)
2001-10-16 Derek Price <dprice@collab.net>
* sccs2rcs.in: Replace Y2K bug fix with something more succint.
(Suggested by SAKAI Hiroaki <sakai.hiroaki@pfu.fujitsu.com>.)
2001-10-16 Derek Price <dprice@collab.net>
* rcs2sccs.in: Fix Y2K bug.
(Patch from SAKAI Hiroaki <sakai.hiroaki@pfu.fujitsu.com>.)
2001-09-06 Larry Jones <larry.jones@sdrc.com>
for Paul Eggert <eggert@twinsun.com>
Sync with revision 1.48 of the GNU Emacs sources. This
incorporates the following changes:
* rcs2log (Help, mainline code): Add new option -L FILE.
(Copyright): Update year.
(LANG, LANGUAGE, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES,
LC_NUMERIC, LC_TIME): New shell vars, to make sure we live in the C locale.
(mainline code): Handle nonstandard -u option differently, by
transforming it to standard form. Check for "Working file: ", not
"Working file:". Allow file names with spaces.
(SOH, rlogfile): New shell vars.
(rlogout): Remove. Its old functionality is mostly migrated to rlogfile.
Append ';;' to the last arm of every case statement, for portability to
ancient broken BSD shells.
(logins): Fix bug; was not being computed at all, lowering performance.
(pository): New var. This fixes some bugs where repositories are
remote, or have trailing slashes.
(authors): $llogout is never an empty shell var, so don't worry about that
possibility.
(printlogline, mainline code): Fix bug with SOH's being put into the output.
2001-07-20 Gerd Moellmann <gerd@gnu.org>
* rcs2log: Update copyright notice.
2001-01-03 Paul Eggert <eggert@twinsun.com>
* rcs2log: Avoid security hole allowing attacker to
cause user of rcs2log to overwrite arbitrary files, fixing
a bug reported by Morten Welinder.
Don't put "exit 1" at the end of the exit trap; it's
ineffective in POSIX shells.
2001-09-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with automake 1.5.
2001-08-21 Larry Jones <larry.jones@sdrc.com>
* sccs2rcs.in: Fix typo: missing quote.
(Patch submitted by "Mark D. Baushke" <mdb@cvshome.org>.)
2001-08-06 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated.
2001-07-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new Automake release candidate 1.4h.
2001-06-28 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new version of Automake.
2001-05-30 Derek Price <dprice@collab.net>
* pvcs2cvs.in: Rename to...
* pvcs2rcs.in: here.
* .cvsignore: Add pvcs2rcs.
* Makefile.am (contrib_SCRIPTS): Change pvcs2cvs to pvcs2rcs.
* Makefile.in: Regenerated.
2001-05-29 Derek Price <dprice@collab.net>
patch from Pavel Roskin <proski@gnu.org>
* Makefile.am (install-data-local): Double hash comment in rule since
single hash comments are not portable.
* Makefile.in: Regenerated.
2001-05-29 Derek Price <dprice@collab.net>
* pvcs2cvs.in: New file.
* Makefile.am (contrib_SCRIPTS): Add pcvs2cvs.
* Makefile.in: Regenerated.
2001-05-23 Larry Jones <larry.jones@sdrc.com>
* sccs2rcs.in: No need for grep when you're already using awk.
* sccs2rcs.in: Fix y2k bug correctly.
(Reported by "Hayes, Ted (London)" <HayesRog@exchange.uk.ml.com>.)
2001-04-25 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.

View File

@ -38,6 +38,7 @@ contrib_SCRIPTS = \
log \
log_accum \
mfpipe \
pvcs2rcs \
rcs-to-cvs \
rcs2log \
rcslock \
@ -72,8 +73,8 @@ CLEANFILES = $(bin_SCRIPTS) $(contrib_SCRIPTS)
# we'd rather have a link here rather than two copies of a script
install-data-local:
# FIXME - this path should be determined dynamically from bindir
# & contribdir
: FIXME - this path should be determined dynamically from bindir
: and contribdir
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_LINKS)'; for p in $$list; do \

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4e from Makefile.am.
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
@ -39,7 +39,6 @@
#
# CONTRIB_FILES = README intro.doc cvscheck.man
SHELL = @SHELL@
srcdir = @srcdir@
@ -60,11 +59,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -78,7 +75,6 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -90,25 +86,22 @@ AWK = @AWK@
CC = @CC@
CSH = @CSH@
DEPDIR = @DEPDIR@
ETAGS = @ETAGS@
ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
EXEEXT = @EXEEXT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
KRB4 = @KRB4@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PR = @PR@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
ROFF = @ROFF@
STRIP = @STRIP@
TEXI2DVI = @TEXI2DVI@
VERSION = @VERSION@
YACC = @YACC@
_am_include = @_am_include@
_am_quote = @_am_quote@
am__include = @am__include@
am__quote = @am__quote@
includeopt = @includeopt@
install_sh = @install_sh@
@ -125,6 +118,7 @@ contrib_SCRIPTS = \
log \
log_accum \
mfpipe \
pvcs2rcs \
rcs-to-cvs \
rcs2log \
rcslock \
@ -163,13 +157,11 @@ EXTRA_DIST = \
CLEANFILES = $(bin_SCRIPTS) $(contrib_SCRIPTS)
SUFFIXES = .sh
EXEEXT =
OBJEXT = o
subdir = contrib
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
CONFIG_CLEAN_FILES = clmerge cln_hist commit_prep cvs_acls log log_accum \
mfpipe rcslock sccs2rcs
mfpipe pvcs2rcs rcslock sccs2rcs
SCRIPTS = $(contrib_SCRIPTS)
DIST_SOURCES =
@ -177,16 +169,14 @@ DATA = $(contrib_DATA)
DIST_COMMON = README ChangeLog Makefile.am Makefile.in clmerge.in \
cln_hist.in commit_prep.in cvs_acls.in log.in log_accum.in \
mfpipe.in rcslock.in sccs2rcs.in
mfpipe.in pvcs2rcs.in rcslock.in sccs2rcs.in
all: all-am
.SUFFIXES:
.SUFFIXES: .sh
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu contrib/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
@ -205,6 +195,8 @@ log_accum: $(top_builddir)/config.status log_accum.in
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
mfpipe: $(top_builddir)/config.status mfpipe.in
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
pvcs2rcs: $(top_builddir)/config.status pvcs2rcs.in
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
rcslock: $(top_builddir)/config.status rcslock.in
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
sccs2rcs: $(top_builddir)/config.status sccs2rcs.in
@ -230,6 +222,7 @@ uninstall-contribSCRIPTS:
echo " rm -f $(DESTDIR)$(contribdir)/$$f"; \
rm -f $(DESTDIR)$(contribdir)/$$f; \
done
uninstall-info-am:
install-contribDATA: $(contrib_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(contribdir)
@ -258,7 +251,11 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
@ -284,24 +281,21 @@ install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
clean: clean-am
clean-am: clean-generic mostlyclean-am
@ -310,11 +304,11 @@ distclean: distclean-am
distclean-am: clean-am distclean-generic
dvi:
dvi: dvi-am
dvi-am:
info:
info: info-am
info-am:
@ -323,7 +317,7 @@ install-data-am: install-contribDATA install-contribSCRIPTS \
install-exec-am:
install-info:
install-info: install-info-am
install-man:
@ -338,23 +332,24 @@ mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
uninstall-am: uninstall-contribDATA uninstall-contribSCRIPTS \
uninstall-local
uninstall-info-am uninstall-local
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am info info-am install \
install-am install-contribDATA install-contribSCRIPTS \
install-data install-data-am install-data-local install-exec \
install-exec-am install-info install-man install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
uninstall uninstall-am uninstall-contribDATA \
uninstall-contribSCRIPTS uninstall-local
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic uninstall uninstall-am \
uninstall-contribDATA uninstall-contribSCRIPTS \
uninstall-info-am uninstall-local
# we'd rather have a link here rather than two copies of a script
install-data-local:
# FIXME - this path should be determined dynamically from bindir
# & contribdir
: FIXME - this path should be determined dynamically from bindir
: and contribdir
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_LINKS)'; for p in $$list; do \
@ -385,7 +380,6 @@ uninstall-local:
# for backwards compatibility with the old makefiles
realclean: maintainer-clean
.PHONY: realclean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -2,6 +2,7 @@
# -*-Perl-*-
#
# Access control lists for CVS. dgg@ksr.com (David G. Grubbs)
# Branch specific controls added by voisine@bytemobile.com (Aaron Voisine)
#
# CVS "commitinfo" for matching repository names, running the program it finds
# on the same line. More information is available in the CVS man pages.
@ -32,7 +33,7 @@
# Lines beginning with "avail" or "unavail" are assumed to be '|'-separated
# triples: (All spaces and tabs are ignored in a line.)
#
# {avail.*,unavail.*} [| user,user,... [| repos,repos,...]]
# {avail.*,unavail.*} [|user,user,... [|repos,repos,... [|branch,branch,...]]]
#
# 1. String starting with "avail" or "unavail".
# 2. Optional, comma-separated list of usernames.
@ -40,6 +41,9 @@
# These are pathnames relative to $CVSROOT. They can be directories or
# filenames. A directory name allows access to all files and
# directories below it.
# 4. Optional, comma-separated list of branch tags.
# If not specified, all branches are assumed. Use HEAD to reference the
# main branch.
#
# Example: (Text from the ';;' rightward may not appear in the file.)
#
@ -47,6 +51,8 @@
# avail|dgg ;; Except for user "dgg".
# avail|fred, john|bin/ls ;; Except when "fred" or "john" commit to
# ;; the module whose repository is "bin/ls"
# avail|ed|/bin/ls|stable ;; Except when "ed" commits to the "stable"
# ;; branch of the "bin/ls" repository
#
# PROGRAM LOGIC:
#
@ -54,8 +60,8 @@
# appended to your $CVSROOT variable), followed by a list of filenames
# within that directory.
#
# We walk through the avail file looking for a line that matches both
# the username and repository.
# We walk through the avail file looking for a line that matches the
# username, repository and branch.
#
# A username match is simply the user's name appearing in the second
# column of the avail line in a space-or-comma separate list.
@ -73,10 +79,18 @@
# all files specified in a single commit must all appear in
# third column of a single avail line.
#
# A branch match is either:
# - When no branches are listed in the fourth column.
# - One element from the fourth column matches each of the tag
# names for $ARGV[1..$#ARGV] found in the CVS/Entries file.
# - HEAD specified in the fourth column will match if there
# is no tag listed in the CVS/Entries file.
#
$debug = 0;
$cvsroot = $ENV{'CVSROOT'};
$availfile = $cvsroot . "/CVSROOT/avail";
$entries = "CVS/Entries";
$myname = $ENV{"USER"} if !($myname = $ENV{"LOGNAME"});
eval "print STDERR \$die='Unknown parameter $1\n' if !defined \$$1; \$$1=\$';"
@ -92,12 +106,27 @@ print "$$ Repos: $repos\n","$$ ==== ",join("\n$$ ==== ",@ARGV),"\n" if $debug;
$exit_val = 0; # Good Exit value
$universal_off = 0;
my %branch;
my $f;
open(ENTRIES, $entries) || die("Cannot open $entries.\n");
while(<ENTRIES>) {
chop;
next if /^\s*$/;
if(m|^[^/]*/([^/]*)/(?:[^/]*/)*[^/]?([^/]*)$|) {
$branch{$repos . '/' . $1} = ($2) ? $2 : "HEAD";
print "$$ $1/$2\n" if $debug;
}
}
close(ENTRIES);
open (AVAIL, $availfile) || exit(0); # It is ok for avail file not to exist
while (<AVAIL>) {
chop;
next if /^\s*\#/;
next if /^\s*$/;
($flagstr, $u, $m) = split(/[\s,]*\|[\s,]*/, $_);
($flagstr, $u, $m, $b) = split(/[\s,]*\|[\s,]*/, $_);
# Skip anything not starting with "avail" or "unavail" and complain.
(print "Bad avail line: $_\n"), next
@ -107,7 +136,7 @@ while (<AVAIL>) {
$flag = (($& eq "avail") ? 0 : 1);
# If we find a "universal off" flag (i.e. a simple "unavail") remember it
$universal_off = 1 if ($flag && !$u && !$m);
$universal_off = 1 if ($flag && !$u && !$m && !$b);
# $myname considered "in user list" if actually in list or is NULL
$in_user = (!$u || grep ($_ eq $myname, split(/[\s,]+/,$u)));
@ -130,12 +159,26 @@ while (<AVAIL>) {
}
print "$$ \$repos($repos) in repository list: $_\n" if $debug && $in_repo;
$exit_val = $flag if ($in_user && $in_repo);
# Branch matches if it is in the branch list in the avail line, the branch
# list is NULL, or there is no branch and HEAD is in the branch list.
if(!($in_branch = !$b)) {
@bls = split (/[\s,]+/,$b);
for $j (@ARGV) {
$f = $j;
last if !($in_branch = grep($_ eq $branch{$j}, @bls));
}
}
print "$$ \$branch($branch{$f}) in branch list: $_\n"
if $debug && $in_branch;
$exit_val = $flag if ($in_user && $in_repo && $in_branch);
print "$$ ==== \$exit_val = $exit_val\n$$ ==== \$flag = $flag\n" if $debug;
}
close(AVAIL);
print "$$ ==== \$exit_val = $exit_val\n" if $debug;
print "**** Access denied: Insufficient Karma ($myname|$repos)\n" if $exit_val;
print "**** Access denied: Insufficient Karma ($myname|$repos|$branch{$f})\n"
if $exit_val;
print "**** Access allowed: Personal Karma exceeds Environmental Karma.\n"
if $universal_off && !$exit_val;
exit($exit_val);

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,7 @@ Options:
-h HOSTNAME Use HOSTNAME in change log entries (default current host).
-i INDENT Indent change log lines by INDENT spaces (default 8).
-l LENGTH Try to limit log lines to LENGTH characters (default 79).
-L FILE Use rlog-format FILE for source of logs.
-R If no FILEs are given and RCS is used, recurse through working directory.
-r OPTION Pass OPTION to subsidiary log command.
-t TABWIDTH Tab stops are every TABWIDTH characters (default 8).
@ -28,9 +29,10 @@ Options:
Report bugs to <bug-gnu-emacs@gnu.org>.'
Id='$Id: rcs2log,v 1.45 1998/08/12 22:33:01 eggert Exp $'
Id='$Id: rcs2log,v 1.48 2001/09/05 23:07:46 eggert Exp $'
# Copyright 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -47,13 +49,29 @@ Id='$Id: rcs2log,v 1.45 1998/08/12 22:33:01 eggert Exp $'
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
Copyright='Copyright 1998 Free Software Foundation, Inc.
Copyright='Copyright 2001 Free Software Foundation, Inc.
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of this program
under the terms of the GNU General Public License.
For more information about these matters, see the files named COPYING.
Author: Paul Eggert <eggert@twinsun.com>'
# Use the traditional C locale.
LANG=C
LANGUAGE=C
LC_ALL=C
LC_COLLATE=C
LC_CTYPE=C
LC_MESSAGES=C
LC_NUMERIC=C
LC_TIME=C
export LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_TIME
# These variables each contain a single ASCII character.
# Unfortunately, there's no portable way of writing these characters
# in older Unix implementations, other than putting them directly into
# this text file.
SOH='' # SOH, octal code 001
tab=' '
nl='
'
@ -74,6 +92,7 @@ logTZ= # time zone for log dates (if empty, use local time)
recursive= # t if we want recursive rlog
revision= # t if we want revision numbers
rlog_options= # options to pass to rlog
rlogfile= # log file to read from
tabwidth=8 # width of horizontal tab
while :
@ -83,17 +102,16 @@ do
-i) indent=${2?}; shift;;
-h) hostname=${2?}; shift;;
-l) length=${2?}; shift;;
-L) rlogfile=${2?}; shift;;
-[nu]) # -n is obsolescent; it is replaced by -u.
case $1 in
-n) case ${2?}${3?}${4?} in
*"$tab"* | *"$nl"*)
echo >&2 "$0: -n '$2' '$3' '$4': tabs, newlines not allowed"
exit 1
esac
case $loginFullnameMailaddrs in
'') loginFullnameMailaddrs=$2$tab$3$tab$4;;
?*) loginFullnameMailaddrs=$loginFullnameMailaddrs$nl$2$tab$3$tab$4
exit 1;;
esac
login=$2
lfm=$2$tab$3$tab$4
shift; shift; shift;;
-u)
# If $2 is not tab-separated, use colon for separator.
@ -104,33 +122,39 @@ do
*"$tab"*)
t=$tab;;
*)
t=:
t=':';;
esac
case $2 in
*"$t"*"$t"*"$t"*)
echo >&2 "$0: -u '$2': too many fields"
exit 1;;
*"$t"*"$t"*)
;;
uf="[^$t]*$t" # An unselected field, followed by a separator.
sf="\\([^$t]*\\)" # The selected field.
login=`expr "X$2" : "X$sf"`
lfm="$login$tab"`
expr "X$2" : "$uf$sf"
`"$tab"`
expr "X$2" : "$uf$uf$sf"
`;;
*)
echo >&2 "$0: -u '$2': not enough fields"
exit 1
exit 1;;
esac
case $loginFullnameMailaddrs in
'') loginFullnameMailaddrs=$2;;
?*) loginFullnameMailaddrs=$loginFullnameMailaddrs$nl$2
esac
shift
shift;;
esac
case $logins in
'') logins=$login;;
?*) logins=$logins$nl$login
?*) logins=$logins$nl$login;;
esac
;;
case $loginFullnameMailaddrs in
'') loginFullnameMailaddrs=$lfm;;
?*) loginFullnameMailaddrs=$loginFullnameMailaddrs$nl$lfm;;
esac;;
-r)
case $rlog_options in
'') rlog_options=${2?};;
?*) rlog_options=$rlog_options$nl${2?}
?*) rlog_options=$rlog_options$nl${2?};;
esac
shift;;
-R) recursive=t;;
@ -144,9 +168,9 @@ do
-*) echo >&2 "Usage: $0 [OPTION]... [FILE ...]$nl$Help"
case $1 in
--help) exit 0;;
*) exit 1
*) exit 1;;
esac;;
*) break
*) break;;
esac
shift
done
@ -158,158 +182,177 @@ month_data='
m[9]="Oct"; m[10]="Nov"; m[11]="Dec"
'
logdir=$TMPDIR/rcs2log$$
llogout=$logdir/l
trap exit 1 2 13 15
trap "rm -fr $logdir 2>/dev/null" 0
(umask 077 && exec mkdir $logdir) || exit
# Put rlog output into $rlogout.
# If no rlog options are given,
# log the revisions checked in since the first ChangeLog entry.
# Since ChangeLog is only by date, some of these revisions may be duplicates of
# what's already in ChangeLog; it's the user's responsibility to remove them.
case $rlog_options in
# If no rlog-format log file is given, generate one into $rlogfile.
case $rlogfile in
'')
rlogfile=$logdir/r
# If no rlog options are given,
# log the revisions checked in since the first ChangeLog entry.
# Since ChangeLog is only by date, some of these revisions may be duplicates of
# what's already in ChangeLog; it's the user's responsibility to remove them.
case $rlog_options in
'')
if test -s "$changelog"
then
e='
/^[0-9]+-[0-9][0-9]-[0-9][0-9]/{
# ISO 8601 date
print $1
exit
}
/^... ... [ 0-9][0-9] [ 0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9]+ /{
# old-fashioned date and time (Emacs 19.31 and earlier)
'"$month_data"'
year = $5
for (i=0; i<=11; i++) if (m[i] == $2) break
dd = $3
printf "%d-%02d-%02d\n", year, i+1, dd
exit
}
'
d=`$AWK "$e" <"$changelog"` || exit
case $d in
?*) datearg="-d>$d";;
esac
fi;;
esac
# Use TZ specified by ChangeLog local variable, if any.
if test -s "$changelog"
then
e='
/^[0-9]+-[0-9][0-9]-[0-9][0-9]/{
# ISO 8601 date
print $1
exit
extractTZ='
/^.*change-log-time-zone-rule['"$tab"' ]*:['"$tab"' ]*"\([^"]*\)".*/{
s//\1/; p; q
}
/^... ... [ 0-9][0-9] [ 0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9]+ /{
# old-fashioned date and time (Emacs 19.31 and earlier)
'"$month_data"'
year = $5
for (i=0; i<=11; i++) if (m[i] == $2) break
dd = $3
printf "%d-%02d-%02d\n", year, i+1, dd
exit
/^.*change-log-time-zone-rule['"$tab"' ]*:['"$tab"' ]*t.*/{
s//UTC0/; p; q
}
'
d=`$AWK "$e" <"$changelog"` || exit
case $d in
?*) datearg="-d>$d"
logTZ=`tail "$changelog" | sed -n "$extractTZ"`
case $logTZ in
?*) TZ=$logTZ; export TZ;;
esac
fi
esac
# Use TZ specified by ChangeLog local variable, if any.
if test -s "$changelog"
then
extractTZ='
/^.*change-log-time-zone-rule['"$tab"' ]*:['"$tab"' ]*"\([^"]*\)".*/{
s//\1/; p; q
}
/^.*change-log-time-zone-rule['"$tab"' ]*:['"$tab"' ]*t.*/{
s//UTC0/; p; q
}
'
logTZ=`tail "$changelog" | sed -n "$extractTZ"`
case $logTZ in
?*) TZ=$logTZ; export TZ
esac
fi
# If CVS is in use, examine its repository, not the normal RCS files.
if test ! -f CVS/Repository
then
rlog=rlog
repository=
else
rlog='cvs -q log'
repository=`sed 1q <CVS/Repository` || exit
test ! -f CVS/Root || CVSROOT=`cat <CVS/Root` || exit
case $CVSROOT in
*:/*)
# remote repository
;;
*)
# local repository
case $repository in
/*) ;;
*) repository=${CVSROOT?}/$repository
esac
if test ! -d "$repository"
then
echo >&2 "$0: $repository: bad repository (see CVS/Repository)"
exit 1
fi
esac
fi
# Use $rlog's -zLT option, if $rlog supports it.
case `$rlog -zLT 2>&1` in
*' option'*) ;;
*)
case $rlog_options in
'') rlog_options=-zLT;;
?*) rlog_options=-zLT$nl$rlog_options
esac
esac
# With no arguments, examine all files under the RCS directory.
case $# in
0)
case $repository in
'')
oldIFS=$IFS
IFS=$nl
case $recursive in
t)
RCSdirs=`find . -name RCS -type d -print`
filesFromRCSfiles='s|,v$||; s|/RCS/|/|; s|^\./||'
files=`
{
case $RCSdirs in
?*) find $RCSdirs \
-type f \
! -name '*_' \
! -name ',*,' \
! -name '.*_' \
! -name .rcsfreeze.log \
! -name .rcsfreeze.ver \
-print
esac
find . -name '*,v' -print
} |
sort -u |
sed "$filesFromRCSfiles"
`;;
# If CVS is in use, examine its repository, not the normal RCS files.
if test ! -f CVS/Repository
then
rlog=rlog
repository=
else
rlog='cvs -q log'
repository=`sed 1q <CVS/Repository` || exit
test ! -f CVS/Root || CVSROOT=`cat <CVS/Root` || exit
case $CVSROOT in
*:/*:/*)
echo >&2 "$0: $CVSROOT: CVSROOT has multiple ':/'s"
exit 1;;
*:/*)
# remote repository
pository=`expr "X$repository" : '.*:\(/.*\)'`;;
*)
files=
for file in RCS/.* RCS/* .*,v *,v
do
case $file in
RCS/. | RCS/.. | RCS/,*, | RCS/*_) continue;;
RCS/.rcsfreeze.log | RCS/.rcsfreeze.ver) continue;;
RCS/.\* | RCS/\* | .\*,v | \*,v) test -f "$file" || continue;;
RCS/*,v | RCS/.*,v) ;;
RCS/* | RCS/.*) test -f "$file" || continue
esac
case $files in
'') files=$file;;
?*) files=$files$nl$file
esac
done
case $files in
'') exit 0
# local repository
case $repository in
/*) ;;
*) repository=${CVSROOT?}/$repository;;
esac
if test ! -d "$repository"
then
echo >&2 "$0: $repository: bad repository (see CVS/Repository)"
exit 1
fi
pository=$repository;;
esac
set x $files
shift
IFS=$oldIFS
# Ensure that $pository ends in exactly one slash.
while :
do
case $pository in
*//) pository=`expr "X$pository" : 'X\(.*\)/'`;;
*/) break;;
*) pository=$pository/; break;;
esac
done
fi
# Use $rlog's -zLT option, if $rlog supports it.
case `$rlog -zLT 2>&1` in
*' option'*) ;;
*)
case $rlog_options in
'') rlog_options=-zLT;;
?*) rlog_options=-zLT$nl$rlog_options;;
esac;;
esac
# With no arguments, examine all files under the RCS directory.
case $# in
0)
case $repository in
'')
oldIFS=$IFS
IFS=$nl
case $recursive in
t)
RCSdirs=`find . -name RCS -type d -print`
filesFromRCSfiles='s|,v$||; s|/RCS/|/|; s|^\./||'
files=`
{
case $RCSdirs in
?*) find $RCSdirs \
-type f \
! -name '*_' \
! -name ',*,' \
! -name '.*_' \
! -name .rcsfreeze.log \
! -name .rcsfreeze.ver \
-print;;
esac
find . -name '*,v' -print
} |
sort -u |
sed "$filesFromRCSfiles"
`;;
*)
files=
for file in RCS/.* RCS/* .*,v *,v
do
case $file in
RCS/. | RCS/.. | RCS/,*, | RCS/*_) continue;;
RCS/.rcsfreeze.log | RCS/.rcsfreeze.ver) continue;;
RCS/.\* | RCS/\* | .\*,v | \*,v) test -f "$file" || continue;;
RCS/*,v | RCS/.*,v) ;;
RCS/* | RCS/.*) test -f "$file" || continue;;
esac
case $files in
'') files=$file;;
?*) files=$files$nl$file;;
esac
done
case $files in
'') exit 0;;
esac;;
esac
set x $files
shift
IFS=$oldIFS;;
esac;;
esac
case $datearg in
?*) $rlog $rlog_options "$datearg" ${1+"$@"} >$rlogfile;;
'') $rlog $rlog_options ${1+"$@"} >$rlogfile;;
esac || exit;;
esac
llogout=$TMPDIR/rcs2log$$l
rlogout=$TMPDIR/rcs2log$$r
trap exit 1 2 13 15
trap "rm -f $llogout $rlogout; exit 1" 0
case $datearg in
?*) $rlog $rlog_options "$datearg" ${1+"$@"} >$rlogout;;
'') $rlog $rlog_options ${1+"$@"} >$rlogout
esac || exit
# Get the full name of each author the logs mention, and set initialize_fullname
# to awk code that initializes the `fullname' awk associative array.
@ -326,17 +369,14 @@ case $loginFullnameMailaddrs in
sed 's/["\\]/\\&/g' >$llogout <<EOF || exit
$loginFullnameMailaddrs
EOF
loginFullnameMailaddrs=`cat $llogout`
loginFullnameMailaddrs=`cat $llogout`;;
esac
oldIFS=$IFS
IFS=$nl
for loginFullnameMailaddr in $loginFullnameMailaddrs
do
case $loginFullnameMailaddr in
*"$tab"*) IFS=$tab;;
*) IFS=:
esac
IFS=$tab
set x $loginFullnameMailaddr
login=$2
fullname=$3
@ -346,25 +386,26 @@ EOF
initialize_mailaddr="$initialize_mailaddr
mailaddr[\"$login\"] = \"$mailaddr\""
done
IFS=$oldIFS
IFS=$oldIFS;;
esac
case $llogout in
?*) sort -u -o $llogout <<EOF || exit
case $logins in
?*)
sort -u -o $llogout <<EOF
$logins
EOF
esac
;;
'')
: ;;
esac >$llogout || exit
output_authors='/^date: / {
if ($2 ~ /^[0-9]*[-\/][0-9][0-9][-\/][0-9][0-9]$/ && $3 ~ /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9][-+0-9:]*;$/ && $4 == "author:" && $5 ~ /^[^;]*;$/) {
print substr($5, 1, length($5)-1)
}
}'
authors=`
$AWK "$output_authors" <$rlogout |
case $llogout in
'') sort -u;;
?*) sort -u | comm -23 - $llogout
esac
$AWK "$output_authors" <"$rlogfile" | sort -u | comm -23 - $llogout
`
case $authors in
?*)
@ -436,13 +477,13 @@ EOF
)
} 2>/dev/null |
$AWK -F: "$awkscript"
`$initialize_fullname
`$initialize_fullname;;
esac
# Function to print a single log line.
# We don't use awk functions, to stay compatible with old awk versions.
# `Log' is the log message (with \n replaced by \001).
# `Log' is the log message.
# `files' contains the affected files.
printlogline='{
@ -452,19 +493,25 @@ printlogline='{
# * file (function): comment
if (Log ~ /^\([^)]*\): /) {
i = index(Log, ")")
files = files " " substr(Log, 1, i)
filefunc = substr(Log, 1, i)
while ((j = index(filefunc, "\n"))) {
files = files " " substr(filefunc, 1, j-1)
filefunc = substr(filefunc, j+1)
}
files = files " " filefunc
Log = substr(Log, i+3)
}
# If "label: comment" is too long, break the line after the ":".
sep = " "
if ('"$length"' <= '"$indent"' + 1 + length(files) + index(Log, SOH)) sep = "\n" indent_string
i = index(Log, "\n")
if ('"$length"' <= '"$indent"' + 1 + length(files) + i) sep = "\n" indent_string
# Print the label.
printf "%s*%s:", indent_string, files
# Print each line of the log, transliterating \001 to \n.
while ((i = index(Log, SOH)) != 0) {
# Print each line of the log.
while (i) {
logline = substr(Log, 1, i-1)
if (logline ~ /[^'"$tab"' ]/) {
printf "%s%s\n", sep, logline
@ -473,6 +520,7 @@ printlogline='{
}
sep = indent_string
Log = substr(Log, i+1)
i = index(Log, "\n")
}
}'
@ -493,24 +541,27 @@ case $hostname in
*)
domainname=`(domainname) 2>/dev/null` &&
case $domainname in
*.*) hostname=$hostname.$domainname
esac
esac
*.*) hostname=$hostname.$domainname;;
esac;;
esac;;
esac
# Process the rlog output, generating ChangeLog style entries.
# First, reformat the rlog output so that each line contains one log entry.
# Transliterate \n to \001 so that multiline entries fit on a single line.
# Transliterate \n to SOH so that multiline entries fit on a single line.
# Discard irrelevant rlog output.
$AWK <$rlogout '
BEGIN { repository = "'"$repository"'" }
/^RCS file:/ {
if (repository != "") {
filename = $3
if (substr(filename, 1, length(repository) + 1) == repository "/") {
filename = substr(filename, length(repository) + 2)
$AWK '
BEGIN {
pository = "'"$pository"'"
SOH="'"$SOH"'"
}
/^RCS file: / {
if (pository != "") {
filename = substr($0, 11)
if (substr(filename, 1, length(pository)) == pository) {
filename = substr(filename, length(pository) + 1)
}
if (filename ~ /,v$/) {
filename = substr(filename, 1, length(filename) - 2)
@ -523,7 +574,7 @@ $AWK <$rlogout '
}
rev = "?"
}
/^Working file:/ { if (repository == "") filename = $3 }
/^Working file: / { if (repository == "") filename = substr($0, 15) }
/'"$rlog_revision_pattern"'/, /^(-----------*|===========*)$/ {
line = $0
if (line ~ /'"$rlog_revision_pattern"'/) {
@ -544,7 +595,7 @@ $AWK <$rlogout '
}
time = substr($3, 1, length($3) - 1)
author = substr($5, 1, length($5)-1)
printf "%s %s %s %s %s %c", filename, rev, date, time, author, 1
printf "%s%s%s%s%s%s%s%s%s%s", filename, SOH, rev, SOH, date, SOH, time, SOH, author, SOH
rev = "?"
next
}
@ -553,29 +604,25 @@ $AWK <$rlogout '
if (line == "Initial revision" || line ~ /^file .+ was initially added on branch .+\.$/) {
line = "New file."
}
printf "%s%c", line, 1
printf "%s%s", line, SOH
}
' |
' <"$rlogfile" |
# Now each line is of the form
# FILENAME REVISION YYYY-MM-DD HH:MM:SS[+-TIMEZONE] AUTHOR \001LOG
# where \001 stands for a carriage return,
# and each line of the log is terminated by \001 instead of \n.
# FILENAME@REVISION@YYYY-MM-DD@HH:MM:SS[+-TIMEZONE]@AUTHOR@LOG
# where @ stands for an SOH (octal code 001),
# and each line of LOG is terminated by SOH instead of \n.
# Sort the log entries, first by date+time (in reverse order),
# then by author, then by log entry, and finally by file name and revision
# (just in case).
sort +2 -4r +4 +0 |
sort -t"$SOH" +2 -4r +4 +0 |
# Finally, reformat the sorted log entries.
$AWK '
$AWK -F"$SOH" '
BEGIN {
logTZ = "'"$logTZ"'"
revision = "'"$revision"'"
# Some awk variants do not understand "\001", so we have to
# put the char directly in the file.
SOH="" # <-- There is a single SOH (octal code 001) here.
# Initialize the fullname and mailaddr associative arrays.
'"$initialize_fullname"'
'"$initialize_mailaddr"'
@ -591,7 +638,8 @@ $AWK '
}
{
newlog = substr($0, 1 + index($0, SOH))
newlog = ""
for (i = 6; i < NF; i++) newlog = newlog $i "\n"
# Ignore log entries prefixed by "#".
if (newlog ~ /^#/) { next }
@ -670,7 +718,7 @@ $AWK '
# Exit successfully.
exec rm -f $llogout $rlogout
exec rm -fr $logdir
# Local Variables:
# tab-width:4

View File

@ -55,7 +55,7 @@ for vfile in *,v; do
exit
fi
# get file into current dir and get stats
date=`rlog -r$rev $file | grep "^date: " | awk '{print $2; exit}' | sed -e 's/^19//'`
date=`rlog -r$rev $file | grep "^date: " | awk '{print $2; exit}' | sed -e 's/^19\|^20//'`
time=`rlog -r$rev $file | grep "^date: " | awk '{print $3; exit}' | sed -e 's/;//'`
author=`rlog -r$rev $file | grep "^date: " | awk '{print $5; exit}' | sed -e 's/;//'`
date="$date $time"

View File

@ -123,18 +123,29 @@ sgi)
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
rm -f "$depfile"
cp "$tmpdepfile" "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file.
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" | \
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' -e '/^#/d' | sed -e 's/$/ :/' >> "$depfile"
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
@ -146,8 +157,12 @@ sgi)
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file.
tmpdepfile=`echo "$object" | sed 's/\(.*\)\..*$/\1.u/'`
# in a .u file. This file always lives in the current directory.
# Also, the AIX compiler puts `$object:' at the start of each line;
# $object doesn't have directory information.
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
outname="$stripped.o"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
@ -162,16 +177,11 @@ aix)
fi
if test -f "$tmpdepfile"; then
rm -f "$depfile"
cp "$tmpdepfile" "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file.
tr ' ' '
' < "$tmpdepfile" | \
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
@ -181,6 +191,35 @@ aix)
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 AIX compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# Subdirectories are respected.
tmpdepfile="$object.d"
if test "$libtool" = yes; then
"$@" -Wc,-MD
else
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a space and a tab in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.

View File

@ -1,3 +1,38 @@
2001-09-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with automake 1.5.
2001-08-09 Derek Price <dprice@collab.net>
* system.h: Source some header files when present to eliminate warning
messages under Windows.
(Patch from "Manfred Klug" <manklu@web.de>.)
2001-08-07 Derek Price <dprice@collab.net>
* build_diff.com: Turn on verify to get a better trace of the DCL.
* diff3.c: Eliminate compiler warning. The VMS read rval is ssize_t
(signed). The VMS size_t appears to be unsigned.
* io.c: Eliminate compiler warning (ssize_t).
(Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
2001-08-06 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated.
2001-07-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new Automake release candidate 1.4h.
2001-06-28 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new version of Automake.
2001-05-07 Larry Jones <larry.jones@sdrc.com>
* diff3.c (diff3_run): Put the name of the output file in the error
message instead of "could not open output file" to aid in debugging.
2001-04-25 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4e from Makefile.am.
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
@ -13,7 +13,6 @@
@SET_MAKE@
SHELL = @SHELL@
srcdir = @srcdir@
@ -34,11 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -52,7 +49,6 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -64,25 +60,22 @@ AWK = @AWK@
CC = @CC@
CSH = @CSH@
DEPDIR = @DEPDIR@
ETAGS = @ETAGS@
ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
EXEEXT = @EXEEXT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
KRB4 = @KRB4@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PR = @PR@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
ROFF = @ROFF@
STRIP = @STRIP@
TEXI2DVI = @TEXI2DVI@
VERSION = @VERSION@
YACC = @YACC@
_am_include = @_am_include@
_am_quote = @_am_quote@
am__include = @am__include@
am__quote = @am__quote@
includeopt = @includeopt@
install_sh = @install_sh@
@ -96,8 +89,6 @@ libdiff_a_SOURCES = diff.c diff3.c analyze.c cmpbuf.c cmpbuf.h io.c \
EXTRA_DIST = ChangeLog build_diff.com diagmeet.note libdiff.dsp
EXEEXT =
OBJEXT = o
subdir = diff
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
@ -111,19 +102,12 @@ am_libdiff_a_OBJECTS = diff.$(OBJEXT) diff3.$(OBJEXT) analyze.$(OBJEXT) \
normal.$(OBJEXT) ifdef.$(OBJEXT) util.$(OBJEXT) dir.$(OBJEXT) \
version.$(OBJEXT) side.$(OBJEXT)
libdiff_a_OBJECTS = $(am_libdiff_a_OBJECTS)
AR = ar
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CFLAGS = @CFLAGS@
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/src
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/src
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
DIST_SOURCES = $(libdiff_a_SOURCES)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/analyze.Po $(DEPDIR)/cmpbuf.Po \
@AMDEP_TRUE@ $(DEPDIR)/context.Po $(DEPDIR)/diff.Po \
@ -131,28 +115,32 @@ depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@ $(DEPDIR)/ifdef.Po $(DEPDIR)/io.Po \
@AMDEP_TRUE@ $(DEPDIR)/normal.Po $(DEPDIR)/side.Po \
@AMDEP_TRUE@ $(DEPDIR)/util.Po $(DEPDIR)/version.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(libdiff_a_SOURCES)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
SOURCES = $(libdiff_a_SOURCES)
OBJECTS = $(am_libdiff_a_OBJECTS)
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu diff/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
AR = ar
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
libdiff.a: $(libdiff_a_OBJECTS) $(libdiff_a_DEPENDENCIES)
libdiff.a: $(libdiff_a_OBJECTS) $(libdiff_a_DEPENDENCIES)
-rm -f libdiff.a
$(libdiff_a_AR) libdiff.a $(libdiff_a_OBJECTS) $(libdiff_a_LIBADD)
$(RANLIB) libdiff.a
@ -163,6 +151,37 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/analyze.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/cmpbuf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/context.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/diff.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/diff3.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/dir.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ed.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ifdef.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/io.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/normal.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/side.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/util.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/version.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@ -179,53 +198,21 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list @CONFIG@; do \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| $(ETAGS) $(ETAGS_ARGS) $$tags $$unique $(LISP)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $$here
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
@_am_include@ @_am_quote@$(DEPDIR)/analyze.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/cmpbuf.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/context.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/diff.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/diff3.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/dir.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/ed.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/ifdef.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/io.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/normal.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/side.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/util.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/version.Po@_am_quote@
distclean-depend:
-rm -rf $(DEPDIR)
CCDEPMODE = @CCDEPMODE@
.c.o:
source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c -o $@ `cygpath -w $<`
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@ -234,7 +221,11 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
@ -259,23 +250,20 @@ install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
clean: clean-am
clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
@ -285,11 +273,11 @@ distclean: distclean-am
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi:
dvi: dvi-am
dvi-am:
info:
info: info-am
info-am:
@ -297,7 +285,7 @@ install-data-am:
install-exec-am:
install-info:
install-info: install-info-am
install-man:
@ -311,16 +299,18 @@ mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
.PHONY: all all-am check check-am clean clean-generic \
uninstall-am: uninstall-info-am
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-noinstLIBRARIES distclean distclean-compile \
distclean-depend distclean-generic distclean-tags distdir dvi \
dvi-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic tags \
uninstall uninstall-am
install-info-am install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -101,7 +101,7 @@ sip (current, skip_test)
#if HAVE_SETMODE
int oldmode = setmode (current->desc, O_BINARY);
#endif
size_t n = read (current->desc, current->buffer, current->bufsize);
ssize_t n = read (current->desc, current->buffer, current->bufsize);
if (n == -1)
pfatal_with_name (current->name);
current->buffered_chars = n;
@ -128,7 +128,7 @@ void
slurp (current)
struct file_data *current;
{
size_t cc;
ssize_t cc;
if (current->desc < 0)
/* The file is nonexistent. */

View File

@ -69,6 +69,16 @@ GNU General Public License for more details.
#include <unistd.h>
#endif
#ifdef HAVE_IO_H
# include <io.h>
#endif
#ifdef HAVE_FCNTL_H
# include <fcntl.h>
#else
# include <sys/file.h>
#endif
#ifndef SEEK_SET
#define SEEK_SET 0
#endif

View File

@ -1,3 +1,300 @@
2002-04-18 Derek Price <oberon@umich.edu>
* doc/Makefile.am: Add FIXME comment about an automake bug.
* doc/Makefile.in: Regenerated.
* doc/stamp-vti: Regenerated as a workaround for the above mentioned
automake bug.
* doc/version.texi: Ditto.
2002-04-17 Derek Price <oberon@umich.edu>
* stamp-vti: Regenerated.
* version.texi: Ditto.
2002-04-17 Derek Price <oberon@umich.edu>
* cvs.texinfo: Add index entries for inetd and xinetd.
2002-03-26 Derek Price <oberon@umich.edu>
* stamp-vti: Regenerated.
* version.texi: Ditto.
2002-03-17 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (log options): Add new -S option.
2002-03-12 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (diff options): Add missing menu for new subsections.
(Patch from Pavel Roskin <proski@gnu.org>.)
2002-03-09 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (Update imports): Suggest merging with two rel tags
instead of the branch tag and a date and explain why.
2002-02-26 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (diff options): Document all the diff options.
2002-01-10 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (log options): Update -r :: to match code changes.
(Variables): Document LOGNAME and USER environment variables.
2001-12-03 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (Invoking CVS): Add -F option for annotate and
rannotate.
2001-11-28 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (File permissions): Add note about SGID being required
on some systems. Add note about LockDir.
2001-10-18 Derek Price <dprice@collab.net>
* Makefile.am: Add --batch to texi2dvi invocations.
(Thanks to Akim Demaille <akim@epita.fr> for the suggestion.)
* Makefile.in: Regenerated.
2001-10-04 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (Connecting via rsh): Add : between host name and
root directory in example since some versions of CVS require it.
(Reported by Trevor Jim <trevor@research.att.com>.)
2001-09-14 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (commit files): Make following sections (commitinfo,
verifymsg, editinfo, and loginfo) subsections of this one.
2001-09-06 Derek Price <dprice@collab.net>
* cvs.texinfo (Watch information): Cleanup some watch/edit
explanations and discourage the belief that files should be
releasable.
* stamp-vti: Regenerated.
* version.texi: Ditto.
(Patch from Eric Siegerman <erics@telepres.com>.)
2001-09-05 Derek Price <dprice@collab.net>
* cvsclient.texi: Use version-client.texi instead of version.texi so
cvsclient.* can have a different build date than cvs.texinfo.
* Makefile.in: Regenerated.
* stamp-1: New file.
* version-client.texi: Ditto.
(Reportred by Alexey Mahotkin <alexm@hsys.msk.ru>.)
2001-09-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with automake 1.5.
* version.texi: Ditto.
2001-08-24 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (Error messages): Add new message about root not
being allowed to do commit.
2001-08-24 Derek Price <dprice@collab.net>
* cvs.texinfo (config): Add a new RereadLogAfterVerify
CVSROOT/config option to control how verifymsg scripts deal with
read-write log messages.
(Patch from Mark D. Baushke <mdb@cvshome.org>.)
* cvs.texinfo (verifymsg): The verification script may now modify
the log message.
(Patch from Mark D. Baushke <mdb@cvshome.org>.)
* cvs.texinfo (config, verifymsg): Correct default, changes for clarity,
and add a warning about `stat' and large repositories.
* version.texi: Regenerated.
* stamp-vti: Ditto.
2001-08-20 Derek Price <dprice@collab.net>
* Makefile.am: Reformat comment for 80 chars.
* Makefile.in: Regenerated.
2001-08-10 Derek Price <dprice@collab.net>
* cvs.texinfo (Default options and the ~/.cvsrc file): Added a few more
"standard" options to the example.
* stamp-vti: Regenerated.
* version.texi: Ditto.
2001-08-06 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated.
2001-07-17 Derek Price <dprice@collab.net>
* version.texi: Regenerated.
* stamp-vti: Ditto.
2001-07-06 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (Variables): Add index entry for CVS_USER.
(Reported by Jens Schweikhardt <Jens.Schweikhardt@marconi.com>.)
(Working directory storage): Fix Emptydir index entry: Emptydir
is a directory, not a file.
2001-07-05 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (Working directory storage): Add Emptydir to index.
2001-07-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new Automake release candidate 1.4h.
2001-06-28 Derek Price <dprice@collab.net>
* Makefile.am: Reference to CVSvn.texi removed.
* cvs.texinfo: @include version.texi and change CVSVN to VERSION.
* cvsclient.texi: Ditto.
* version.texi: New file.
* stamp-vti: Ditto.
* mdate-sh: New File. Work-around bug in Automake 1.4f by copying
top-level mdate-sh here.
* CVSvn.texi.in: Removed.
* CVSvn.texi: Ditto.
* Makefile.in: Regenerated.
(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
2001-06-27 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (loginfo): Note that format string expansion is
quoted and contains escapes.
2001-06-22 Derek Price <dprice@collab.net>
* cvs.texinfo (checkout options): Fix transliteration typo in co
example.
(Patch from Adrian Aichner <adrian@xemacs.org>.)
2001-06-12 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (Global options): Note that -T only affects the local
process in client/server mode.
(Environment variables): Note that CVS_SERVER can include arguments
as well as a program name, and note that it applies to :fork: as well
as to :ext: and :server:, although the default value is different.
2001-06-08 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (config): Mention using LockDir on in-memory
filesystem to speed up locking.
2001-06-07 Derek Price <dprice@collab.net>
* Makefile.am (EXTRA_DIST): Remove *.aux.
(MOSTLYCLEAN_FILES): Remove this macro since the Automake bug it was
working around has been fixed.
2001-06-07 Derek Price <dprice@collab.net>
* HACKING.DOCS: Add link to the main texinfo documentation.
2001-06-07 Derek Price <dprice@collab.net>
* README.DOCS: Rename to
* HACKING.DOCS: this.
2001-06-07 Derek Price <dprice@collab.net>
* README.DOCS: New file attempting to document some of our texinfo
conventions.
2001-06-06 Derek Price <dprice@collab.net>
(Reformatting, rewording, & additions to a patch from
Stephen Cameron <steve.cameron@compaq.com>.)
* cvs.texinfo (Invoking cvs, Modifying tags)
document new -B option of rtag and tag commands.
2001-06-04 Derek Price <dprice@collab.net>
* Makefile.am: Remove commented out DISTFILES &
AUTOMAKE_OPTIONS=no-texinfo.tex.
(Reported by Alexey Mahotkin <alexm@hsys.msk.ru>.)
* Makefile.in: Regenerated.
2001-06-04 Larry Jones <larry.jones@sdrc.com>
* Makefile.am: Fix rules for cvs-paper (.pdf rule actually generated
.ps and vice versa).
(Reported by Alexey Mahotkin <alexm@hsys.msk.ru>.)
* Makefile.in: Regenerated.
2001-05-29 Derek Price <dprice@collab.net>
* cvs.texinfo (Repository): Fix explanation of CVSROOT parsing
algorithm.
2001-05-29 Derek Price <dprice@collab.net>
patch from Pavel Roskin <proski@gnu.org>
* Makefile.am (CVSvn.texi): Double hash comment in rule since single
hash comments are not portable.
* Makefile.in: Regenerated.
2001-05-21 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (Error messages): Fix ordering; add "cannot commit
files as root".
* cvs.texinfo (Invoking CVS): Add entries for kserver, pserver,
rannotate, rlog, and server.
* cvs.texinfo: Lots of minor editorial corrections. Mostly adding
@noindent after examples where the following text is intended to
be a continuation of the preceding text, not a new paragraph.
* cvs.texinfo (Connection): Replace information about unsetting
$HOME for people with old releases.
* cvs.texinfo (Connecting via rsh): Use @samp{} instead of @file{}
where it seemed appropriate.
(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>).
2001-05-18 Larry Jones <larry.jones@sdrc.com>
* cvs.texinfo (Password authentication server): Add xinetd info.
(Connection): Add "broken pipe" to possible error messages.
2001-05-18 Derek Price <dprice@collab.net>
* cvs.texinfo (update output): Change wording to something that sounds
a bit more like english.
2001-05-02 Derek Price <dprice@collab.net>
* cvs.texinfo (Top): Change @ifinfo to @ifnottex to placate HTML
generators.
2001-04-27 Derek Price <dprice@collab.net>
* CVSvn.texi: Regenerated.
2001-04-27 Derek Price <dprice@collab.net>
* CVSvn.texi: Regenerated.
2001-04-25 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.

View File

@ -12,20 +12,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#DISTFILES = \
# .cvsignore \
# RCSFILES \
# AUTOMAKE_OPTIONS = no-texinfo.tex
# FIXME - these rebuild every 'make dist' with some BSD makes due to a bug
# that prevents make from searching VPATH for targets. There is some
# machinery in place in configure.in to work around this for some targets
# (see the CVSvn.texi target below) now, but fixing the two info_TEXINFOS
# targets below is probably going to require work on Automake
info_TEXINFOS = cvs.texinfo cvsclient.texi
cvs_TEXINFOS = CVSvn.texi
cvsclient_TEXINFOS = CVSvn.texi
POSTSCRIPTS = \
cvs.ps \
@ -44,17 +31,10 @@ TXTS = \
EXTRA_DIST = \
$(POSTSCRIPTS) \
.cvsignore \
CVSvn.texi.in \
ChangeLog.fsf \
RCSFILES \
cvs-paper.ms \
cvs.aux \
cvsclient.aux
# Listing cvs.cps & cvs.fns here is a workaround for an Automake deficiency
MOSTLYCLEANFILES = \
cvs.cps \
cvs.fns
mdate-sh \
cvs-paper.ms
CLEANFILES = \
$(PDFS) \
@ -75,18 +55,21 @@ txt: $(TXTS)
dvi: cvs.dvi cvsclient.dvi
.PHONY: dvi
cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(cvs_TEXINFOS)
cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi $(cvsclient_TEXINFOS)
# FIXME-AUTOMAKE:
# For some reason if I remove version.texi, it doesn't get built automatically.
# This needs to be fixed in automake.
cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(srcdir)/version.texi
cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi
# These targets need to be very specific so that the other PDFs get generated correctly.
# If they are more generic and cvs.ps is made before cvs.pdf, then cvs.pdf will be
# generated from the generic target and the PS source, which contains less information
# than the usual texinfo source.
cvs-paper.pdf: cvs-paper.ps
# These targets need to be very specific so that the other PDFs get generated
# correctly. If they are more generic and cvs.ps is made before cvs.pdf, then
# cvs.pdf will be generated from the generic target and the PS source, which
# contains less information (hyperlinks and such) than the usual texinfo source.
cvs-paper.ps: cvs-paper.ms
$(ROFF) -t -p -ms -Tps $< > $@-t
mv $@-t $@
cvs-paper.ps: cvs-paper.ms
cvs-paper.pdf: cvs-paper.ps
$(PS2PDF) $< $@
SUFFIXES = .aux .txt .pdf
@ -94,23 +77,13 @@ SUFFIXES = .aux .txt .pdf
# texinfo based targets automake neglects to include
.texinfo.pdf:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf --batch $<
.txi.pdf:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf --batch $<
.texi.pdf:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
.texinfo.aux:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.aux:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi.aux:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf --batch $<
.texinfo.txt:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
@ -122,34 +95,9 @@ SUFFIXES = .aux .txt .pdf
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
##
## MAINTAINER Targets
## CVSvn.texi ##
# - CVSvn.texi needs to be updated only once, since it depends on
# configure.in, not on the results of a 'configure' run.
# - It is guaranteed (with GNU Make) that when the version in configure.in
# is changed, acversion.m4 is built only after the new version number is
# propagated to the Makefile. (Libtool uses the same guarantee.)
# - Of the next three targets, only the next one or the following two should be
# enabled, not all three
if MAKE_TARGETS_IN_VPATH
# - This is the target for systems without the BSD VPATH bug in make or with
# $(srcdir) = $(builddir)
CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
else
# - The next two targets are a workaround for the fact that some BSD makes
# don't look through VPATH for targets, but only for sources.
# - They should be disabled on systems without the bug and in environments
# where $(srcdir) = $(builddir)
CVSvn.texi: $(srcdir)/CVSvn.texi
# use cat so the time stamp gets set properly
cat $(srcdir)/CVSvn.texi >$@
$(srcdir)/CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
endif
##
## realclean ##
# for backwards compatibility with the old makefiles

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4e from Makefile.am.
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
@ -26,19 +26,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#DISTFILES = \
# .cvsignore \
# RCSFILES \
# AUTOMAKE_OPTIONS = no-texinfo.tex
# FIXME - these rebuild every 'make dist' with some BSD makes due to a bug
# that prevents make from searching VPATH for targets. There is some
# machinery in place in configure.in to work around this for some targets
# (see the CVSvn.texi target below) now, but fixing the two info_TEXINFOS
# targets below is probably going to require work on Automake
SHELL = @SHELL@
srcdir = @srcdir@
@ -59,11 +46,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -77,7 +62,6 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -89,31 +73,26 @@ AWK = @AWK@
CC = @CC@
CSH = @CSH@
DEPDIR = @DEPDIR@
ETAGS = @ETAGS@
ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
EXEEXT = @EXEEXT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
KRB4 = @KRB4@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PR = @PR@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
ROFF = @ROFF@
STRIP = @STRIP@
TEXI2DVI = @TEXI2DVI@
VERSION = @VERSION@
YACC = @YACC@
_am_include = @_am_include@
_am_quote = @_am_quote@
am__include = @am__include@
am__quote = @am__quote@
includeopt = @includeopt@
install_sh = @install_sh@
info_TEXINFOS = cvs.texinfo cvsclient.texi
cvs_TEXINFOS = CVSvn.texi
cvsclient_TEXINFOS = CVSvn.texi
POSTSCRIPTS = \
cvs.ps \
@ -135,18 +114,10 @@ TXTS = \
EXTRA_DIST = \
$(POSTSCRIPTS) \
.cvsignore \
CVSvn.texi.in \
ChangeLog.fsf \
RCSFILES \
cvs-paper.ms \
cvs.aux \
cvsclient.aux
# Listing cvs.cps & cvs.fns here is a workaround for an Automake deficiency
MOSTLYCLEANFILES = \
cvs.cps \
cvs.fns
mdate-sh \
cvs-paper.ms
CLEANFILES = \
@ -159,8 +130,6 @@ MAINTAINERCLEANFILES = \
SUFFIXES = .aux .txt .pdf
EXEEXT =
OBJEXT = o
subdir = doc
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
@ -174,63 +143,110 @@ DIST_SOURCES =
INFO_DEPS = cvs.info cvsclient.info
DVIS = cvs.dvi cvsclient.dvi
TEXINFOS = cvs.texinfo cvsclient.texi
DIST_COMMON = $(cvs_TEXINFOS) $(cvsclient_TEXINFOS) ChangeLog \
Makefile.am Makefile.in texinfo.tex
DIST_COMMON = ChangeLog Makefile.am Makefile.in mdate-sh stamp-1 \
stamp-vti texinfo.tex version-client.texi version.texi
all: all-am
.SUFFIXES:
.SUFFIXES: .aux .txt .pdf .dvi .info .ps .texi .texinfo .txi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
cvs.info: cvs.texinfo $(cvs_TEXINFOS)
cvs.dvi: cvs.texinfo $(cvs_TEXINFOS)
$(srcdir)/version.texi: $(srcdir)/stamp-vti
@:
$(srcdir)/stamp-vti: cvs.texinfo $(top_srcdir)/configure.in
@(set `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/cvs.texinfo`; \
echo "@set UPDATED $$1 $$2 $$3"; \
echo "@set UPDATED-MONTH $$2 $$3"; \
echo "@set EDITION $(VERSION)"; \
echo "@set VERSION $(VERSION)") > vti.tmp
@cmp -s vti.tmp $(srcdir)/version.texi \
|| (echo "Updating $(srcdir)/version.texi"; \
cp vti.tmp $(srcdir)/version.texi)
-@rm -f vti.tmp
@cp $(srcdir)/version.texi $@
cvsclient.info: cvsclient.texi $(cvsclient_TEXINFOS)
cvsclient.dvi: cvsclient.texi $(cvsclient_TEXINFOS)
mostlyclean-vti:
-rm -f vti.tmp
maintainer-clean-vti:
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
cvs.info: cvs.texinfo $(srcdir)/version.texi
cvs.dvi: cvs.texinfo $(srcdir)/version.texi
$(srcdir)/version-client.texi: $(srcdir)/stamp-1
@:
$(srcdir)/stamp-1: cvsclient.texi $(top_srcdir)/configure.in
@(set `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/cvsclient.texi`; \
echo "@set UPDATED $$1 $$2 $$3"; \
echo "@set UPDATED-MONTH $$2 $$3"; \
echo "@set EDITION $(VERSION)"; \
echo "@set VERSION $(VERSION)") > 1.tmp
@cmp -s 1.tmp $(srcdir)/version-client.texi \
|| (echo "Updating $(srcdir)/version-client.texi"; \
cp 1.tmp $(srcdir)/version-client.texi)
-@rm -f 1.tmp
@cp $(srcdir)/version-client.texi $@
mostlyclean-1:
-rm -f 1.tmp
maintainer-clean-1:
-rm -f $(srcdir)/stamp-1 $(srcdir)/version-client.texi
cvsclient.info: cvsclient.texi $(srcdir)/version-client.texi
cvsclient.dvi: cvsclient.texi $(srcdir)/version-client.texi
.texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
$(TEXI2DVI) $<
.texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texinfo.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
$(TEXI2DVI) $<
.texinfo:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
MAKEINFO = @MAKEINFO@
TEXI2DVI = texi2dvi
DVIPS = dvips
.dvi.ps:
$(DVIPS) $< -o $@
uninstall-info-am:
$(PRE_UNINSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
@if (install-info --version && \
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
@ -282,7 +298,11 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
@ -311,25 +331,21 @@ install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-am
@ -367,7 +383,8 @@ install-info-am: $(INFO_DEPS)
done; \
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
@if (install-info --version && \
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
@ -380,25 +397,26 @@ installcheck-am:
maintainer-clean: maintainer-clean-am
maintainer-clean-am: distclean-am maintainer-clean-aminfo \
maintainer-clean-generic
maintainer-clean-am: distclean-am maintainer-clean-1 \
maintainer-clean-aminfo maintainer-clean-generic \
maintainer-clean-vti
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
mostlyclean-am: mostlyclean-1 mostlyclean-aminfo mostlyclean-generic \
mostlyclean-vti
uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic dist-info \
distclean distclean-generic distdir dvi dvi-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-aminfo \
maintainer-clean-generic mostlyclean mostlyclean-aminfo \
mostlyclean-generic uninstall uninstall-am uninstall-info-am
maintainer-clean maintainer-clean-1 maintainer-clean-aminfo \
maintainer-clean-generic maintainer-clean-vti mostlyclean \
mostlyclean-1 mostlyclean-aminfo mostlyclean-generic \
mostlyclean-vti uninstall uninstall-am uninstall-info-am
doc ps: $(POSTSCRIPTS)
@ -413,40 +431,33 @@ txt: $(TXTS)
dvi: cvs.dvi cvsclient.dvi
.PHONY: dvi
cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(cvs_TEXINFOS)
cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi $(cvsclient_TEXINFOS)
# FIXME-AUTOMAKE:
# For some reason if I remove version.texi, it doesn't get built automatically.
# This needs to be fixed in automake.
cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(srcdir)/version.texi
cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi
# These targets need to be very specific so that the other PDFs get generated correctly.
# If they are more generic and cvs.ps is made before cvs.pdf, then cvs.pdf will be
# generated from the generic target and the PS source, which contains less information
# than the usual texinfo source.
cvs-paper.pdf: cvs-paper.ps
# These targets need to be very specific so that the other PDFs get generated
# correctly. If they are more generic and cvs.ps is made before cvs.pdf, then
# cvs.pdf will be generated from the generic target and the PS source, which
# contains less information (hyperlinks and such) than the usual texinfo source.
cvs-paper.ps: cvs-paper.ms
$(ROFF) -t -p -ms -Tps $< > $@-t
mv $@-t $@
cvs-paper.ps: cvs-paper.ms
cvs-paper.pdf: cvs-paper.ps
$(PS2PDF) $< $@
# texinfo based targets automake neglects to include
.texinfo.pdf:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf --batch $<
.txi.pdf:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf --batch $<
.texi.pdf:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
.texinfo.aux:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.aux:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.texi.aux:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf --batch $<
.texinfo.txt:
TEXINPUTS=$(srcdir):$$TEXINPUTS \
@ -458,33 +469,9 @@ cvs-paper.ps: cvs-paper.ms
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
# - CVSvn.texi needs to be updated only once, since it depends on
# configure.in, not on the results of a 'configure' run.
# - It is guaranteed (with GNU Make) that when the version in configure.in
# is changed, acversion.m4 is built only after the new version number is
# propagated to the Makefile. (Libtool uses the same guarantee.)
# - Of the next three targets, only the next one or the following two should be
# enabled, not all three
# - This is the target for systems without the BSD VPATH bug in make or with
# $(srcdir) = $(builddir)
@MAKE_TARGETS_IN_VPATH_TRUE@CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
@MAKE_TARGETS_IN_VPATH_TRUE@ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
@MAKE_TARGETS_IN_VPATH_TRUE@ mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
# - The next two targets are a workaround for the fact that some BSD makes
# don't look through VPATH for targets, but only for sources.
# - They should be disabled on systems without the bug and in environments
# where $(srcdir) = $(builddir)
@MAKE_TARGETS_IN_VPATH_FALSE@CVSvn.texi: $(srcdir)/CVSvn.texi
@MAKE_TARGETS_IN_VPATH_FALSE@ # use cat so the time stamp gets set properly
@MAKE_TARGETS_IN_VPATH_FALSE@ cat $(srcdir)/CVSvn.texi >$@
@MAKE_TARGETS_IN_VPATH_FALSE@$(srcdir)/CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
@MAKE_TARGETS_IN_VPATH_FALSE@ sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
@MAKE_TARGETS_IN_VPATH_FALSE@ mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
# for backwards compatibility with the old makefiles
realclean: maintainer-clean
.PHONY: realclean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
\input texinfo @c -*- texinfo -*-
@setfilename cvsclient.info
@include CVSvn.texi
@include version-client.texi
@dircategory Programming
@direntry
@ -13,7 +13,7 @@
This document describes the client/server protocol used by CVS. It does
not describe how to use or administer client/server CVS; see the regular
CVS manual for that. This is version @value{CVSVN} of the protocol
CVS manual for that. This is version @value{VERSION} of the protocol
specification---@xref{Introduction}, for more on what this version number
means.
@ -59,7 +59,7 @@ to date than what you are reading now) of this document,
@file{cvsclient.texi}, can be found at the usual GNU FTP sites, with a
filename such as @file{cvs-@var{version}.tar.gz}.
This is version @value{CVSVN} of the protocol specification. This
This is version @value{VERSION} of the protocol specification. This
version number is intended only to aid in distinguishing different
versions of this specification. Although the specification is currently
maintained in conjunction with the CVS implementation, and carries the

92
contrib/cvs/doc/mdate-sh Executable file
View File

@ -0,0 +1,92 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
# Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Prevent date giving response in another language.
LANG=C
export LANG
LC_ALL=C
export LC_ALL
LC_TIME=C
export LC_TIME
# Get the extended ls output of the file or directory.
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
if ls -L /dev/null 1>/dev/null 2>&1; then
set - x`ls -L -l -d $1`
else
set - x`ls -l -d $1`
fi
# The month is at least the fourth argument
# (3 shifts here, the next inside the loop).
shift
shift
shift
# Find the month. Next argument is day, followed by the year or time.
month=
until test $month
do
shift
case $1 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
Mar) month=March; nummonth=3;;
Apr) month=April; nummonth=4;;
May) month=May; nummonth=5;;
Jun) month=June; nummonth=6;;
Jul) month=July; nummonth=7;;
Aug) month=August; nummonth=8;;
Sep) month=September; nummonth=9;;
Oct) month=October; nummonth=10;;
Nov) month=November; nummonth=11;;
Dec) month=December; nummonth=12;;
esac
done
day=$2
# Here we have to deal with the problem that the ls output gives either
# the time of day or the year.
case $3 in
*:*) set `date`; eval year=\$$#
case $2 in
Jan) nummonthtod=1;;
Feb) nummonthtod=2;;
Mar) nummonthtod=3;;
Apr) nummonthtod=4;;
May) nummonthtod=5;;
Jun) nummonthtod=6;;
Jul) nummonthtod=7;;
Aug) nummonthtod=8;;
Sep) nummonthtod=9;;
Oct) nummonthtod=10;;
Nov) nummonthtod=11;;
Dec) nummonthtod=12;;
esac
# For the first six month of the year the time notation can also
# be used for files modified in the last year.
if (expr $nummonth \> $nummonthtod) > /dev/null;
then
year=`expr $year - 1`
fi;;
*) year=$3;;
esac
# The result.
echo $day $month $year

4
contrib/cvs/doc/stamp-1 Normal file
View File

@ -0,0 +1,4 @@
@set UPDATED 5 September 2001
@set UPDATED-MONTH September 2001
@set EDITION 1.11.2
@set VERSION 1.11.2

View File

@ -0,0 +1,4 @@
@set UPDATED 17 April 2002
@set UPDATED-MONTH April 2002
@set EDITION 1.11.2
@set VERSION 1.11.2

View File

@ -0,0 +1,4 @@
@set UPDATED 5 September 2001
@set UPDATED-MONTH September 2001
@set EDITION 1.11.2
@set VERSION 1.11.2

View File

@ -0,0 +1,4 @@
@set UPDATED 17 April 2002
@set UPDATED-MONTH April 2002
@set EDITION 1.11.2
@set VERSION 1.11.2

View File

@ -1,3 +1,51 @@
2001-09-18 Derek Price <dprice@collab.net>
* fnmatch.c: The header file for a system function we're replacing with
our own should be #included using double quotes.
(Patch from Corey Minyard <minyard@acm.org> via
Alexey Mahotkin <alexm@hsys.msk.ru>.)
2001-09-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with automake 1.5.
2001-08-09 Derek Price <dprice@collab.net>
* getpagesize.h: Only include sys/param.h when HAVE_SYS_PARAM_H has
been defined by configure.
2001-08-07 Derek Price <dprice@collab.net>
* build_lib.com: Verify.
* getdate.y: Move the include of xtime.h out from underneath the ifdef
so that it is always included.
(Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
* getdate.c: Regenerated.
2001-08-06 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated.
2001-07-05 Larry Jones <larry.jones@sdrc.com>
* getpagesize.h: New file to define getpagesize() for systems that
don't already have it.
* valloc.c (valloc): Use it.
2001-07-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new Automake release candidate 1.4h.
2001-06-28 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new version of Automake.
2001-06-15 Derek Price <dprice@collab.net>
* xselect.h: Don't include xtime.h.
(Thanks to Martin Neitzel <neitzel@sco.gaertner.de>.)
2001-04-25 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4e from Makefile.am.
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
@ -39,7 +39,6 @@
#
# $(includeopt) is CVS specific and set by configure
SHELL = @SHELL@
srcdir = @srcdir@
@ -60,11 +59,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -78,7 +75,6 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -90,25 +86,22 @@ AWK = @AWK@
CC = @CC@
CSH = @CSH@
DEPDIR = @DEPDIR@
ETAGS = @ETAGS@
ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
EXEEXT = @EXEEXT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
KRB4 = @KRB4@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PR = @PR@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
ROFF = @ROFF@
STRIP = @STRIP@
TEXI2DVI = @TEXI2DVI@
VERSION = @VERSION@
YACC = @YACC@
_am_include = @_am_include@
_am_quote = @_am_quote@
am__include = @am__include@
am__quote = @am__quote@
includeopt = @includeopt@
install_sh = @install_sh@
@ -159,8 +152,6 @@ EXTRA_DIST = \
build_lib.com \
xgssapi.h
EXEEXT =
OBJEXT = o
subdir = lib
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
@ -175,19 +166,12 @@ am_libcvs_a_OBJECTS = argmatch.$(OBJEXT) ftruncate.$(OBJEXT) \
savecwd.$(OBJEXT) sighandle.$(OBJEXT) stripslash.$(OBJEXT) \
xgetwd.$(OBJEXT) yesno.$(OBJEXT)
libcvs_a_OBJECTS = $(am_libcvs_a_OBJECTS)
AR = ar
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CFLAGS = @CFLAGS@
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/src
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/src
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
DIST_SOURCES = $(libcvs_a_SOURCES)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/argmatch.Po $(DEPDIR)/dup2.Po \
@AMDEP_TRUE@ $(DEPDIR)/fncase.Po $(DEPDIR)/fnmatch.Po \
@ -202,36 +186,89 @@ depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@ $(DEPDIR)/strtoul.Po $(DEPDIR)/valloc.Po \
@AMDEP_TRUE@ $(DEPDIR)/waitpid.Po $(DEPDIR)/xgetwd.Po \
@AMDEP_TRUE@ $(DEPDIR)/yesno.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
DIST_SOURCES = $(libcvs_a_SOURCES)
DIST_COMMON = ChangeLog Makefile.am Makefile.in dup2.c fncase.c \
fnmatch.c getdate.c hostname.c memmove.c mkdir.c rename.c \
strerror.c strstr.c strtoul.c valloc.c waitpid.c
SOURCES = $(libcvs_a_SOURCES)
OBJECTS = $(am_libcvs_a_OBJECTS)
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o .obj .y
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu lib/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
AR = ar
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
libcvs.a: $(libcvs_a_OBJECTS) $(libcvs_a_DEPENDENCIES)
libcvs.a: $(libcvs_a_OBJECTS) $(libcvs_a_DEPENDENCIES)
-rm -f libcvs.a
$(libcvs_a_AR) libcvs.a $(libcvs_a_OBJECTS) $(libcvs_a_LIBADD)
$(RANLIB) libcvs.a
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/argmatch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/dup2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fncase.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fnmatch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ftruncate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getdate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getline.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/hostname.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/md5.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memmove.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/mkdir.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/regex.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rename.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/savecwd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sighandle.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strerror.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stripslash.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strstr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtoul.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/valloc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/waitpid.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/xgetwd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/yesno.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
.y.c:
$(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
$(YACCCOMPILE) $< && mv y.tab.c $@
if test -f y.tab.h; then \
if cmp -s y.tab.h $*.h; then \
rm -f y.tab.h; \
@ -239,13 +276,7 @@ libcvs.a: $(libcvs_a_OBJECTS) $(libcvs_a_DEPENDENCIES)
mv y.tab.h $*.h; \
fi; \
fi
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
uninstall-info-am:
tags: TAGS
@ -263,65 +294,21 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list @CONFIG@; do \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| $(ETAGS) $(ETAGS_ARGS) $$tags $$unique $(LISP)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $$here
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
@_am_include@ @_am_quote@$(DEPDIR)/argmatch.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/dup2.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/fncase.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/fnmatch.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/ftruncate.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/getdate.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/getline.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/getopt.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/getopt1.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/hostname.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/md5.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/memmove.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/mkdir.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/regex.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/rename.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/savecwd.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/sighandle.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/strerror.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/stripslash.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/strstr.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/strtoul.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/valloc.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/waitpid.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/xgetwd.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/yesno.Po@_am_quote@
distclean-depend:
-rm -rf $(DEPDIR)
CCDEPMODE = @CCDEPMODE@
.c.o:
source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c -o $@ `cygpath -w $<`
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@ -330,7 +317,11 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
@ -355,24 +346,20 @@ install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
-test -z "getdate.c" || rm -f getdate.c
clean: clean-am
clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
@ -382,11 +369,11 @@ distclean: distclean-am
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi:
dvi: dvi-am
dvi-am:
info:
info: info-am
info-am:
@ -394,7 +381,7 @@ install-data-am:
install-exec-am:
install-info:
install-info: install-info-am
install-man:
@ -408,21 +395,23 @@ mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
.PHONY: all all-am check check-am clean clean-generic \
uninstall-am: uninstall-info-am
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-noinstLIBRARIES distclean distclean-compile \
distclean-depend distclean-generic distclean-tags distdir dvi \
dvi-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic tags \
uninstall uninstall-am
install-info-am install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-info-am
# for backwards compatibility with the old makefiles
realclean: maintainer-clean
.PHONY: realclean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -15,7 +15,7 @@ Library General Public License for more details. */
Jim Blandy <jimb@cyclic.com> for CVS use */
#ifdef HAVE_CONFIG_H
#include "config.h"
# include "config.h"
#endif
#include "system.h"
@ -24,7 +24,7 @@ Library General Public License for more details. */
/* #include <ansidecl.h> */
/* @) */
#include <errno.h>
#include <fnmatch.h>
#include "fnmatch.h"
#if !defined(__GNU_LIBRARY__) && !defined(STDC_HEADERS)
extern int errno;

View File

@ -42,8 +42,8 @@
# include <types.h>
#else /* defined(vms) */
# include <sys/types.h>
# include "xtime.h"
#endif /* !defined(vms) */
# include "xtime.h"
#if defined (STDC_HEADERS) || defined (USG)
#include <string.h>

View File

@ -73,6 +73,7 @@ getstr (lineptr, n, stream, terminator, offset, limit)
errno = ENOMEM;
return -1;
}
*lineptr[0] = '\0';
}
nchars_avail = *n - offset;

View File

@ -7,7 +7,7 @@
#include "system.h"
#ifndef HAVE_GETPAGESIZE
#define getpagesize() 4096
# include "getpagesize.h"
#endif
void *

View File

@ -9,13 +9,13 @@
GNU General Public License for more details. */
/* This file simply performs the include magic necessary for using select */
#include <sys/types.h>
/* select also requires <sys/types.h>, "xtime.h", and <unistd.h> */
#ifdef HAVE_SYS_BSDTYPES_H
# include <sys/bsdtypes.h>
#endif
#include "xtime.h"
#if HAVE_SYS_SELECT_H
# include <sys/select.h>
#endif

View File

@ -1,3 +1,50 @@
2002-04-17 Derek Price <oberon@umich.edu>
* cvs.1(cvs tag): Mention -c option.
(Correction from Michael Richardson <mcr@sandelman.ottawa.on.ca>.)
2002-04-17 Derek Price <oberon@umich.edu>
* cvs.1(cvs commit): It's '-F' now, not '-f'.
(Correction from Norikatsu Shigemura <nork@cityfujisawa.ne.jp>.)
2002-04-17 Derek Price <oberon@umich.edu>
* cvs.1: Claim to be out of date and direct users to the Cederqvist.
Replace www.cyclic.com with cvshome.org.
* cvs.5: Ditto.
2001-11-27 Larry Jones <larry.jones@sdrc.com>
* cvsbug.8: Fixed typo.
(Correction from Mark D. Baushke <mdb@cvshome.org>.)
2001-09-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with automake 1.5.
2001-08-06 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated.
2001-07-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new Automake release candidate 1.4h.
2001-06-28 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new version of Automake.
2001-05-21 Derek Price <dprice@collab.net>
* cvs.1: Correct a quoting error.
(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>).
2001-05-18 Derek Price <dprice@collab.net>
* cvs.1: Add note about 'P' file status from update.
(Reported by Jani Averbach <jaa@cc.jyu.fi>).
2001-04-25 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4e from Makefile.am.
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
@ -26,7 +26,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
SHELL = @SHELL@
srcdir = @srcdir@
@ -47,11 +46,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -65,7 +62,6 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -77,25 +73,22 @@ AWK = @AWK@
CC = @CC@
CSH = @CSH@
DEPDIR = @DEPDIR@
ETAGS = @ETAGS@
ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
EXEEXT = @EXEEXT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
KRB4 = @KRB4@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PR = @PR@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
ROFF = @ROFF@
STRIP = @STRIP@
TEXI2DVI = @TEXI2DVI@
VERSION = @VERSION@
YACC = @YACC@
_am_include = @_am_include@
_am_quote = @_am_quote@
am__include = @am__include@
am__quote = @am__quote@
includeopt = @includeopt@
install_sh = @install_sh@
@ -104,8 +97,6 @@ EXTRA_DIST = \
.cvsignore \
$(man_MANS)
EXEEXT =
OBJEXT = o
subdir = man
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
@ -118,22 +109,22 @@ DIST_COMMON = ChangeLog Makefile.am Makefile.in
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu man/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
uninstall-info-am:
man1dir = $(mandir)/man1
install-man1: $(man1_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(man1dir)
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
@ -148,11 +139,11 @@ install-man1: $(man1_MANS) $(man_MANS)
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
done
uninstall-man1:
@$(NORMAL_UNINSTALL)
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
@ -170,8 +161,9 @@ man5dir = $(mandir)/man5
install-man5: $(man5_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(man5dir)
@list='$(man5_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.5*) list="$$list $$i" ;; \
esac; \
@ -186,11 +178,11 @@ install-man5: $(man5_MANS) $(man_MANS)
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man5dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man5dir)/$$inst; \
done
uninstall-man5:
@$(NORMAL_UNINSTALL)
@list='$(man5_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.5*) list="$$list $$i" ;; \
esac; \
@ -208,8 +200,9 @@ man8dir = $(mandir)/man8
install-man8: $(man8_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(man8dir)
@list='$(man8_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.8*) list="$$list $$i" ;; \
esac; \
@ -224,11 +217,11 @@ install-man8: $(man8_MANS) $(man_MANS)
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
done
uninstall-man8:
@$(NORMAL_UNINSTALL)
@list='$(man8_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.8*) list="$$list $$i" ;; \
esac; \
@ -252,7 +245,11 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
@ -278,23 +275,20 @@ install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
clean: clean-am
clean-am: clean-generic mostlyclean-am
@ -303,11 +297,11 @@ distclean: distclean-am
distclean-am: clean-am distclean-generic
dvi:
dvi: dvi-am
dvi-am:
info:
info: info-am
info-am:
@ -315,7 +309,7 @@ install-data-am: install-man
install-exec-am:
install-info:
install-info: install-info-am
install-man: install-man1 install-man5 install-man8
@ -329,25 +323,24 @@ mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
uninstall-am: uninstall-man
uninstall-am: uninstall-info-am uninstall-man
uninstall-man: uninstall-man1 uninstall-man5 uninstall-man8
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-man install-man1 \
install-man5 install-man8 install-strip installcheck \
installcheck-am installdirs maintainer-clean \
install-exec-am install-info install-info-am install-man \
install-man1 install-man5 install-man8 install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
uninstall uninstall-am uninstall-man uninstall-man1 \
uninstall-man5 uninstall-man8
uninstall uninstall-am uninstall-info-am uninstall-man \
uninstall-man1 uninstall-man5 uninstall-man8
# for backwards compatibility with the old makefiles
realclean: maintainer-clean
.PHONY: realclean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -6,6 +6,11 @@
..
.SH NAME
cvs \- Concurrent Versions System support files
.SH NOTE
This documentation may no longer be up to date. Please consult the Cederqvist
(CVS Manual) as specified in
.BR cvs ( 1 ).
.SH SYNOPSIS
.hy 0
.na

92
contrib/cvs/mdate-sh Executable file
View File

@ -0,0 +1,92 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
# Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Prevent date giving response in another language.
LANG=C
export LANG
LC_ALL=C
export LC_ALL
LC_TIME=C
export LC_TIME
# Get the extended ls output of the file or directory.
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
if ls -L /dev/null 1>/dev/null 2>&1; then
set - x`ls -L -l -d $1`
else
set - x`ls -l -d $1`
fi
# The month is at least the fourth argument
# (3 shifts here, the next inside the loop).
shift
shift
shift
# Find the month. Next argument is day, followed by the year or time.
month=
until test $month
do
shift
case $1 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
Mar) month=March; nummonth=3;;
Apr) month=April; nummonth=4;;
May) month=May; nummonth=5;;
Jun) month=June; nummonth=6;;
Jul) month=July; nummonth=7;;
Aug) month=August; nummonth=8;;
Sep) month=September; nummonth=9;;
Oct) month=October; nummonth=10;;
Nov) month=November; nummonth=11;;
Dec) month=December; nummonth=12;;
esac
done
day=$2
# Here we have to deal with the problem that the ls output gives either
# the time of day or the year.
case $3 in
*:*) set `date`; eval year=\$$#
case $2 in
Jan) nummonthtod=1;;
Feb) nummonthtod=2;;
Mar) nummonthtod=3;;
Apr) nummonthtod=4;;
May) nummonthtod=5;;
Jun) nummonthtod=6;;
Jul) nummonthtod=7;;
Aug) nummonthtod=8;;
Sep) nummonthtod=9;;
Oct) nummonthtod=10;;
Nov) nummonthtod=11;;
Dec) nummonthtod=12;;
esac
# For the first six month of the year the time notation can also
# be used for files modified in the last year.
if (expr $nummonth \> $nummonthtod) > /dev/null;
then
year=`expr $year - 1`
fi;;
*) year=$3;;
esac
# The result.
echo $day $month $year

92
contrib/cvs/noautomake.sh Executable file
View File

@ -0,0 +1,92 @@
#! /bin/sh
# Let autoconf run when this is set
autoconf=:
usage()
{
echo "usage: `basename $0` --help | --version"
echo "usage: `basename $0` [--[no]autoconf]"
}
help()
{
echo
echo "This program will touch the files necessary to prevent Automake, aclocal,"
echo "and, optionally, Autoheader, Autoconf, and configure from running after a"
echo "fresh update from the CVS repository."
echo
echo " -h | --help Display this text and exit"
echo " -V | --version Display version and exit"
echo " -a | --autoconf Allow Autoconf & Autoheader to run (default)"
echo " -A | --noautoconf Prevent Autoconf & Autoheader from running"
echo
echo "Not running Automake & aclocal causes changes to the following user files"
echo "to be ignored:"
echo
echo " Makefile.am, acinclude.m4, configure.in"
echo
echo "Not running Autoconf & Autoheader causes changes to the following user"
echo "files to be ignored:"
echo
echo " acconfig.h, configure.in"
}
while getopts VACach-: opt; do
if test "x$opt" = "x-"; then
case $OPTARG in
help)
opt=h
;;
version)
opt=V
;;
autoconf)
opt=a
;;
noautoconf)
opt=A
;;
*)
opt=?
;;
esac
fi
case $opt in
h)
usage
help
exit 0
;;
V)
echo "CVS No Automake 0.1"
exit 0
;;
A)
autoconf=false
;;
a)
autoconf=:
;;
?)
usage >&2
exit 2
;;
esac
done
# prevent aclocal from running
find . -name aclocal.m4 -exec touch {} \;
# prevent Automake from running
find . -name Makefile.in -exec touch {} \;
# prevent Autoheader from running
if $autoconf; then :; else
find . -name 'stamp-h?.in' -exec touch {} \;
fi
# prevent Autoconf from running
if $autoconf; then :; else
find . -name configure -exec touch {} \;
fi

View File

@ -1,3 +1,807 @@
2002-04-17 Derek Price <oberon@umich.edu>
* version.h: Regenerated for 1.11.2.
2002-04-03 Derek Price <oberon@umich.edu>
* stamp-h2.in: Regenerate with recent version of Autoconf.
2002-04-03 Derek Price <oberon@umich.edu>
* sanity.sh (TR): Send the stderr of one of the tool setup (tr) tests
to /dev/null to avoid spurious output on some operating systems
(notably Mac OS X).
2002-03-22 Larry Jones <larry.jones@sdrc.com>
* sanity.sh (rcslib): Correct new tests to use ${testcvs} instead
of cvs.
2002-03-21 Derek Price <oberon@umich.edu>
* vers_ts.c (time_stamp): Return the timestamp for the newer of the
link and the link's source when the file is a link.
(Patch from RedHat cvs-1.11.1p1-7 SRPM.)
* sanity.sh (rcslib): Test for same.
2002-03-17 Larry Jones <larry.jones@sdrc.com>
* log.c (cvslog, log_fileproc): Add -S option to suppress head or
file name if no revisions selected.
* sanity.sh (log): New tests for above.
2002-03-13 Derek Price <oberon@umich.edu>
* main.c (usg): Correct a spelling mistake in a comment.
(Thanks to Matt Kraai <kraai@alumni.cmu.edu>.)
2002-03-09 Larry Jones <larry.jones@sdrc.com>
* import.c (import): Change the suggested merge message to use
rev tags instead of the branch tag with a date.
* sanity.sh (import, importb): Change to match.
* remove.c (remove_fileproc): Disallow removing files with sticky
dates for the same reason we already disallow sticky numeric tags.
* sanity.sh (sticky): New test for above.
2002-02-27 Larry Jones <larry.jones@sdrc.com>
* diff.c (diff_fileproc): Treat dead revisions as nonexistent.
2002-02-26 Larry Jones <larry.jones@sdrc.com>
* diff.c (diff): Remove -V and --paginate options: they aren't valid.
(diff_usage): Document all the diff options.
2002-02-13 Larry Jones <larry.jones@sdrc.com>
* rcs.c (RCS_gettag): Do not interpret an empty tag as HEAD (nothing
else does and I don't see any documentation that says it should).
(translate_symtag): Break out of loop at end of symbols to prevent
looping forever when tag is "".
(Reported by Alain ENOUT <aln00@udcast.com>
via Eric Gillespie <epg@pretzelnet.org>.)
2002-02-11 Larry Jones <larry.jones@sdrc.com>
* server.c (server_cleanup): Set buf_to_net back to blocking mode
and flush it (in case there are any error messages pending) before
shutting down buf_from_net and again right before shutting it down.
2002-02-08 Larry Jones <larry.jones@sdrc.com>
* main.c (lookup_command_attribute): Throw a fatal error if the
command is not found.
* server.c (server_tag): Use the correct command name.
2002-01-30 Larry Jones <larry.jones@sdrc.com>
* error.h (error_exit): Remove unintended prototype.
* server.c (serve_root): Remove check for impossible condition.
(serve_init): Save and restore current_parsed_root.
2002-01-29 Larry Jones <larry.jones@sdrc.com>
* error.h (error_exit): Declare __noreturn__ to avoid spurious
warnings.
* server.c (serve_root): If the specified root doesn't match the
pserver root, return before changing current_parsed_root to prevent
subsequent commands from accessing an unchecked root directory.
(server_init): Check specified root against the pserver root and
complain if they don't match. Also, if there are pending errors,
print them and return before changing current_parsed_root to prevent
subsequent commands from accessing an unchecked root directory.
* sanity.sh (pserver): New tests for above.
2002-01-10 Larry Jones <larry.jones@sdrc.com>
* log.c (log_version_requested): Change :: in revision spec to be
exclusive just on the low end (so -r tag1::tag2 gives revisions
after tag1 but up to and including tag2), which is much more useful
than the previous (exclusive at both ends) behavior.
(log_usage): Update to match.
* sanity.sh (log): Update to match.
2002-01-02 Larry Jones <larry.jones@sdrc.com>
* server.c (LOG_DAEMON): Define if needed.
(Patch from John David Anglin <dave@hiauly1.hia.nrc.ca>.)
* server.c (pserver_authenticate_connection): Add a specific error
message for EOF at protocol start and syslog if available.
* sanity.sh (pserver-bufinit): Update to match.
2001-12-10 Larry Jones <larry.jones@sdrc.com>
* log.c (log_usage): Note that -r and -d take lists, not just a
single specification.
(log_expand_revlist): Don't dereference null pointers when one end
of a revision range is a non-existent tag.
2001-12-03 Larry Jones <larry.jones@sdrc.com>
* annotate.c (annotate, annotate_fileproc): Don't annotate binary
files unless new -F option given.
* sanity.sh (basica, ann, ann-id, rcs, keywordlog, tagdate): Update
to match.
2001-11-30 Larry Jones <larry.jones@sdrc.com>
* admin.c (admin): Allow unrestricted usage of -q in addition to -k.
2001-10-25 Larry Jones <larry.jones@sdrc.com>
* log.c (log_expand_revlist): Make erroneous or inconsistent revision
specs select no revisions rather than all revisions.
2001-10-23 Larry Jones <larry.jones@sdrc.com>
* import.c (add_rcs_file): Don't put an expand entry into the file
for the default expansion mode (kv).
* wrapper.c (wrap_send, wrap_unparse_rcs_options): Process entries
with default expansion mode since they may be needed to avoid matching
a more general entry later.
(wrap_add): Set rcsOption to NULL for default (kv).
(wrap_add_entry): Use structure assignment to copy entries rather
that copying members by hand.
* sanity.sh (binwrap3): Revise to test wrapper entries that don't
specify any non-default options but just prevent matching later,
more general entries.
2001-10-02 Larry Jones <larry.jones@sdrc.com>
* rcs.c (RCS_fully_parse): Add revision number to more error messages.
2001-09-27 Larry Jones <larry.jones@sdrc.com>
* rcs.c (RCS_fully_parse, RCS_getdeltatext): Add the missing revision
number to the "mismatch" error message.
* sanity.sh (multiroot2-9a): Update to match changes to lock.c.
2001-09-26 Larry Jones <larry.jones@sdrc.com>
* lock.c (Lock_Cleanup, Reader_Lock, write_lock): Add trace messages.
2001-09-24 Derek Price <dprice@collab.net>
* find_names.c (add_entries_proc): Leave closure specified as such in the
function definition for clarity.
* find_names.c (Find_Names): Use 'closure' feature of walklist()
to eliminate the static variable.
(add_entries_proc): Expect closure to be the file list.
(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
2001-09-19 Derek Price <dprice@collab.net>
* rcs.c (rcsbuf_valpolish_internal): Restore one of the
"if ( ... ) abort();" sequences since it seems to check the validity of
the RCS file rather than for a programming error. Also added a FIXME
comment to the effect that we should explain the RCS file error to the
user as such if it is such.
(Thanks to Larry Jones <scjones@sdrc.com>.)
2001-09-19 Derek Price <dprice@collab.net>
* rcs.c (rcsbuf_getkey, rcsbuf_valpolish_internal): Replace some code
of the form "if ( ... ) abort();" with equivalent calls to assert().
2001-09-17 Derek Price <dprice@collab.net>
* myndbm.c (mydbm_load_file): Fix buffer overflow error and make error
messages more informative.
* sanity.sh (modules6): New test.
(Original report from Taska <taska@collab.net> and others.)
2001-09-14 Derek Price <dprice@collab.net>
* logmsg.c (do_verify): Dispose memory when finished with it.
2001-09-07 Larry Jones <larry.jones@sdrc.com>
* mkmodules.c (notify_contents): In the example, move the %s to
the end since many, if not most, versions of mail insist on
options coming before addresses.
2001-09-06 Derek Price <dprice@collab.net>
* login.c (login): Deal with NULL return value from getpass.
2001-09-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with automake 1.5.
* stamp-h2.in: Ditto.
2001-09-04 Derek Price <dprice@collab.net>
* main.c (main): Fix empty CVSROOT message to specify `valid' instead
of `legal'.
2001-09-04 Derek Price <dprice@collab.net>
* server.c (pserver_authenticate_connection): Back out changes from the
30th and...
* getline.c (getstr): init the buffer instead.
2001-08-31 Derek Price <dprice@collab.net>
* Makefile.in: Backed out accidental commit from yesterday.
2001-08-30 Derek Price <dprice@collab.net>
* server.c (pserver_authenticate_connection): Don't print from the
NULL pointer in the error message string in the case where the client
didn't send any data.
* sanity.sh (pserver): Test for this case.
(Report from Mark Welch <mark@collab.net>).
2001-08-24 Derek Price <dprice@collab.net>
* logmsg.c (do_editor): Add comment and assertion.
* import.c (import): Don't call do_editor with a repository argument
in client mode.
(Report and original patch from darkness <darkness@invado.com>.)
2001-08-24 Larry Jones <larry.jones@sdrc.com>
* log.c (log_expand_revlist): Arrange for nil revision specs to
select nothing instead of everything.
* sanity.sh (log): New tests for above.
2001-08-24 Derek Price <dprice@collab.net>
* parseinfo.c (Parse_Info): Change the function name in the trace
and add the client/server string.
2001-08-24 Derek Price <dprice@collab.net>
* Implement RereadLogAfterVerify CVSROOT/config option to control
FreeBSD read-write of log messages in the verification script.
* logmsg.c: RereadLogAfterVerify defaults to LOGMSG_REREAD_NEVER
to preserve the status quo.
* parseinfo.c (parse_config): Add parsing for RereadLogAfterVerify
option. Possible values are: no | never | yes | always | stat
* cvs.h: Add extern for RereadLogAfterVerify and new value macros
LOGMSG_REREAD_NEVER, LOGMSG_REREAD_ALWAYS, LOGMSG_REREAD_STAT for
its values.
(Patch from Mark D. Baushke <mdb@cvshome.org>.)
* Apply changes from FreeBSD cvs sources to implement a read-write
user-defined verification script.
* logmsg.c (do_verify): Update do_verify to expect a pointer
to the saved message. The log file passed to the verifymsg_script
should be re-read after the user-defined verification script has
been run. The user-defined verification script is allowed to
modify the message. This allows the script to add extra
information to the log message or to remove template lines that
are not needed.
* cvs.h: Update prototype for do_verify prototype to expect a
pointer to the saved_message.
* commit.c (commit, commit_fileproc, commit_direntproc): Update
calls to do_verify as the saved_message arg is now read-write.
* import.c (import): Update calls to do_verify as the
saved_message arg is now read-write.
* sanity.sh (info-v4-[12]): Rename the old info-v4 test to info-v5
and add a new info-v4 test case have the verification script
modify the log message to test the above changes.
(Patch from Mark D. Baushke <mdb@cvshome.org>.)
* logmsg.c: Change RereadLogAfterVerify default to always.
(do_verify): Reformat and make minor fixes to Mark's patch.
* mkmodules.c (config_constants): Add comment about
RereadLogAfterVerify.
* sanity.sh (info-rereadlog): Rename the tests from Mark's patch and
reformat them a bit.
2001-08-23 Derek Price <dprice@collab.net>
* sanity.sh (info): Demonstrate that the verifymsg scripts can
sometimes, but not always, retreive information on which directory is
being committed to.
2001-08-22 Derek Price <dprice@collab.net>
* logmsg.c: Back out the last change - the repository which is passed
in is actually the directory and changes with each call to do_verify.
If a verifymsg script is using `pwd`, this could change the operation.
* cvs.h: Ditto.
* commit.c: Ditto.
* import.c: Ditto.
2001-08-22 Derek Price <dprice@collab.net>
* logmsg.c (do_editor): Return reused_message.
(do_verify): Don't verify the same log message more than once.
* cvs.h: Update prototypes for do_verify and do_editor.
* commit.c (commit_fileproc, commit_direntproc): Use the new functionality.
* import.c (import): Ditto.
2001-08-22 Derek Price <dprice@collab.net>
* logmsg.c (do_verify): Remove an unecessary "else" clause following an
exit and unindent the former contents.
2001-08-22 Derek Price <dprice@collab.net>
* commit.c (commit): Don't call do_verify in client mode since we know
do_verify will just return anyhow.
2001-08-20 Derek Price <dprice@collab.net>
* Makefile.am (cvs_SOURCES): Add version.c and version.h.
(BUILT_SOURCES): Add version.h.
(Maintainer Targets): Remove version.h.
* version.c: Remove @VERSION@ dependant bits.
* version.c.in: Removed.
* version.h.in: New file.
(Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
* Makefile.am: Various modifications to make Automake, make dist, and
windows targets work like they are supposed to.
* version.h: New (generated) file.
* Makefile.in: Regenerated.
2001-08-09 Derek Price <dprice@collab.net>
* client.c (socket_buffer_shutdown): Use recv instead of read and
return 0 on success.
(Patch from "Manfred Klug" <manklu@web.de>.)
2001-08-09 Derek Price <dprice@collab.net>
* buffer.c (stdio_buffer_shutdown): Assume the buffer is not a socket
when NO_SOCKET_TO_FD is defined.
* client.c (make_bufs_from_fds): Add is_sock argument and remove fstat
call and reference to S_ISSOCK since these functions aren't available
under Windows.
(connect_to_forked_server, connect_to_pserver, start_tcp_server,
start_server, start_rsh_server): Use new argument.
(Patch from "Manfred Klug" <manklu@web.de>.)
* buffer.c (stdio_buffer_shutdown): Various reformattings, fix bug
where rsh pipes weren't being closed.
2001-08-09 Derek Price <dprice@collab.net>
* sanity.sh (rmadd, rm-update-message, join-two-branch,
ignore-on-branch): Change a few references to `cvs' to `$PROG'.
2001-08-07 Derek Price <dprice@collab.net>
* build_src.com: Add annotate.c/annotate.obj,verify, correct zlib name.
* patch.c: VMS time_t appears to be unsigned. Add a cast when testing
for (time_t)-1.
* subr.c: #else,#endif for no symlinks should be moved.
(Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
2001-08-06 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated.
2001-08-01 Derek Price <dprice@collab.net>
* diff.c (diff): Send long option for side-by-side diffs to the server
rather than '-y', for backwards compatibility with old servers.
(Original patch from Peter Mathiasson <peter@mathiasson.nu>.)
2001-07-19 Larry Jones <larry.jones@sdrc.com>
* mkmodules.c (cvswrappers_contents): Remove -t/-f since they're
disabled in wrapper.c.
* checkout.c (checkout): Don't complain about checking out into the
repository when piping output.
(Reported by der Mouse <mouse@Rodents.Montreal.QC.CA>.)
* sanity.sh (checkout_repository): New tests for above.
2001-07-10 Larry Jones <larry.jones@sdrc.com>
* sanity.sh (importc-7): Now works correctly in local mode.
* commit.c (commit_dirleaveproc): We're still in the directory when
this is called, so the first argument to Name_Repository needs to
be NULL, not dir.
* sanity.sh (rmadd): New tests for above.
* commit.c (commit): Reword error messages for committing as root.
2001-07-08 Larry Jones <larry.jones@sdrc.com>
* rcs.c (RCS_checkout): Correct scanf format to allow for trailing
NUL terminator.
* update.c (special_file_mismatch): Ditto.
(Reported by Pekka Savola <pekkas@netcore.fi>.)
2001-07-05 Larry Jones <larry.jones@sdrc.com>
* client.c, root.c: Fix -Wall warnings.
* buffer.c: #include socket header to declare shutdown().
* rcs.c (rcsbuf_open): Use getpagesize() instead of sysconf() for
portability.
(RCS_copydeltas, rcsbuf_fill): Fix -Wall warnings.
2001-07-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new Automake release candidate 1.4h.
2001-07-03 Derek Price <dprice@collab.net>
* rcs.c (rcsbuf_open): Reduce memory consumption still further by not
mmapping the entire file when pos is specified.
(rcsbuf_cache_open): Add FIXME comment wrt read-only mmaps and rcsbuf
caching.
2001-07-03 Derek Price <dprice@collab.net>
* rcs.c (rcsbuf_open): Use mmap when possible to reduce memory
consumption, especially with large (e.g. binary) files.
(rcsbuf_close): Call munmap.
(rcsbuf_getkey): Remove the buffer fill code when using mmap.
(rcsbuf_getrevnum): Ditto.
(rcsbuf_fill): Remove this function when using mmap.
(rcsbuf_cache_open): Mostly don't use this function with mmap.
(RCS_copydeltas): Don't depend on the file pointer with mmap.
* stamp-h2.in: Regenerated.
2001-07-03 Derek Price <dprice@collab.net>
* update.c: Indent compiler directives.
2001-07-02 Larry Jones <larry.jones@sdrc.com>
* import.c (update_rcs_file): Use -kb instead of -ko when comparing
binary files.
(Reported by Gyula Faller <gfaller@graphisoft.hu>.)
2001-06-28 Larry Jones <larry.jones@sdrc.com>
* checkout.c (checkout): Explicitly initialize all the static options
so that multiple calls work right. Also fix potential memory leaks.
(Reported by Dr. Dieter Maurer <dieter@sz-sb.de>.)
2001-06-28 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new version of Automake.
2001-06-28 Larry Jones <larry.jones@sdrc.com>
* checkout.c (checkout): Set history_name for export as well as
checkout.
(checkout_proc): Use it.
* checkout.c (safe_location): Add missing argument in error message.
2001-06-26 Larry Jones <larry.jones@sdrc.com>
* recurse.c (start_recursion): Use strip_trailing_slashes instead
of doing it by hand.
* server.c (pserver_authenticate_connection): Don't clear out
descrambled_password until *after* it's (potentially) logged.
(Reported by Eric Hanchrow <offby1@blarg.net>.)
2001-06-25 Larry Jones <larry.jones@sdrc.com>
* recurse.c (start_recursion): Deal with at least some of the cases
where trailing slashes cause confusion.
(Reported by Malcolm Fernandes <fernande@redback.com>.)
* sanity.sh (basica, basicb): Tweak existing tests to check this.
2001-06-22 Larry Jones <larry.jones@sdrc.com>
* sanity.sh (modules5): New tests with -d on command line.
2001-06-21 Larry Jones <larry.jones@sdrc.com>
* modules.c (do_module): Use run_module_prog and server_active to
determine when to call server_prog instead of using server_expanding
so that we get the right paths in the replies as long as we take
mwhere into account in addition to where.
(Reported by Pascal Bourguignon <pjb@informatimago.com>.)
* server.c (server_prog): Use protocol pipe instead of buf_to_net.
* sanity.sh (modules5): Remove FIXCVS comment and update to match.
* server.c, server.h: Remove server_expanding since now unused.
2001-06-21 Larry Jones <larry.jones@sdrc.com>
for Stephen Rasku <stephen@tgivan.com>
* admin.c: Corrected spelling mistakes in help.
2001-06-20 Derek Price <dprice@collab.net>
* client.c (socket_buffer_shutdown): Fix untested typos.
(Reported by "Jerzy Kaczorowski" <jerzyk@wndtabs.com>.)
* buffer.c (stdio_buffer_shutdown): Put the call to SHUTDOWN_SERVER in
the correct place.
2001-06-20 Derek Price <dprice@collab.net>
* logmsg.c (do_editor): Abort in the case that the file has only
comment lines.
(Original patch from Mark Valentine <mark@thuvia.demon.co.uk>.)
* logmsg.c (do_editor): Fix rare memory leak.
* sanity.sh (editor): Add tests for aborted log messages.
2001-06-20 Larry Jones <larry.jones@sdrc.com>
* server.c (switch_to_user): Only set $CVS_USER if
AUTH_SERVER_SUPPORT is defined.
(Reported by Nalin Dahyabhai <nalin@blade.devel.redhat.com>.)
2001-06-13 Derek Price <dprice@collab.net>
* client.c: Fix incorrect fixed-size buffer usage in
connect_to_gserver().
(Minor changes to a patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
2001-06-11 Derek Price <dprice@collab.net>
* main.c (main): Always print $CVSROOT when parse_cvsroot fails.
* root.c (parse_cvsroot): Tidy error messages and provide more
consistent behavior.
* sanity.sh (crerepos): Adapt to new error messages.
(Suggested by Alexey Mahotkin <alexm@hsys.msk.ru>.)
2001-06-08 Derek Price <dprice@collab.net>
* sanity.sh (tagf-28): Use $CVSROOT_DIRNAME.
2001-06-07 Larry Jones <larry.jones@sdrc.com>
* rcs.c (RCS_unlock): Reverse kj's change of 1999-10-18: a bare -u
should never break locks, you have to specify a specific revision
to do that. Also add an informative message for a bare -u when
the user doesn't hold any locks.
* commit.c (unlockrcs): Make RCS_unlock quiet, like RCS_lock.
* sanity.sh (rmadd-24): Update to match.
* sanity.sh (crerepos-6a): Set CVS_RSH for ${testcvs}, not for
dotest_fail. Allow for "broken pipe" rather than "end of file".
2001-06-07 Derek Price <dprice@collab.net>
* sanity.sh (tagf): Use $CVSROOT_DIRNAME rather than
/tmp/cvs-sanity/cvsroot.
2001-06-06 Derek Price <dprice@collab.net>
(Reformatting, bug fixes, tests, and comments to a
patch from Stephen Cameron <steve.cameron@compaq.com>.)
* tag.c: (rtag_fileproc, rtag_delete, tag_fileproc)
Changed behavior of "cvs tag -F", "cvs tag -d", "cvs rtag -F"
and "cvs rtag -d" so that they will not disturb existing
branch tags unless a new "-B" option is given.
* sanity.sh (tagf-16 - tagf-33): Added tests for new -B option
to "cvs tag" and "cvs rtag"
2001-06-06 Derek Price <dprice@collab.net>
* sanity.sh (crerepos-6a): Set CVS_RSH=false and only for the actual
test call at Larry's suggestion. Also, test the error message since
it's fixed now.
2001-06-05 Larry Jones <larry.jones@sdrc.com>
* rcs.c (RCS_unlock): Note when breaking someone else's lock.
(Reported by MURVAI-BUZOGANY Laszlo
<Laszlo.MURVAI-BUZOGANY@gt-systems.hu>.)
* sanity.sh (reserved-14): Update to match.
2001-06-05 Derek Price <dprice@collab.net>
* sanity.sh (crerepos-6a): Set CVS_RSH=/bin/false... this is a local
mode only test anyhow.
(Thanks to Larry Jones and Morgan Burke <morgan@sitka.triumf.ca>.)
2001-05-31 Derek Price <dprice@collab.net>
* sanity.sh (rcs2-7): Add today to the list of failure dates for rcs2-7
in the hopes that the data will eventually prove useful to someone
motivated enough to fix the problem.
2001-05-30 Derek Price <dprice@collab.net>
* stamp-h2.in: Regenerated.
2001-05-30 Derek Price <dprice@collab.net>
* *: Various bug fixes and comments for the following
patch from Donald Sharp <sharpd@cisco.com>:
* checkout.c (safe_location): cvs co -d <directory> still had
failure modes from the way the -d option works.
* sanity.sh: Misc error message resynching.
2001-05-29 Derek Price <dprice@collab.net>
* Makefile.am (cvs_SOURCES): Add root.h.
* Makefile.in: Regenerated.
* stamp-h2.in: Regenerated.
2001-05-29 Derek Price <dprice@collab.net>
* checkout.c (safe_location): Correct formatting.
2001-05-29 Derek Price <dprice@collab.net>
* root.c (parse_cvsroot): Fix a comment.
2001-05-26 Larry Jones <larry.jones@sdrc.com>
* checkout.c (safe_location): Use old-style definition to keep
non-ANSI compilers happy.
* sanity.sh (check_respository): Use ${CVSROOT_DIRNAME} instead
of /tmp/cvs-sanity/cvsroot.
2001-05-25 Larry Jones <larry.jones@sdrc.com>
* sanity.sh (modules5): Add sleep to script to help avoid out of
order messages.
* filesubr.c (mkdir_if_needed): Return 1 if the directory exists
reguardless of what errno is set to.
(Reported by "Robinson, Greg" <greg.robinson@dsto.defence.gov.au>.)
2001-05-25 Derek Price <dprice@collab.net>
for Donald Sharp <sharpd@cisco.com>
* checkout.c: Modified safe_location() to refuse checkout if
the -d option to co specifies inside of the repository.
* import.c: New parameter to safe_location needed to be added.
* cvs.h: New parameter to safe_location needed to be added.
* sanity.sh: Test case to test for failure mode.
2001-05-23 Larry Jones <larry.jones@sdrc.com>
* checkout.c (checkout_proc): Don't build top_level_admin directory
when exporting.
(Reported by Tony Byrne <tonyb@directski.com>.)
2001-05-21 Derek Price <dprice@collab.net>
* client.c: Fix a mispelling in a comment.
(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>).
2001-05-05 Larry Jones <larry.jones@sdrc.com>
* login.c (password_entry_operation): Only warn if unable to open
.cvspass for reading: may be initial login and it doesn't exist yet.
2001-05-15 Derek Price <dprice@collab.net>
* client.c (start_tcp_server): Use the struct sockaddr_in declared in
the function.
(Reported by Emil Isberg <isberg@dynarc.se>.)
2001-05-05 Larry Jones <larry.jones@sdrc.com>
* annotate.c (annotate): Pass local to do_module and rannotate_proc
so that -l actually works.
* log.c (cvslog): Ditto.
* patch.c (patch): Ditto; make local local instead of global.
(patch_proc): Use local_specified parameter instead of global.
* tag.c (cvstag, rtag_proc): Ditto.
2001-05-05 Larry Jones <larry.jones@sdrc.com>
* client.h: Declare "struct buffer" outside prototype for __STDC__
compilers.
2001-05-04 Derek Price <dprice@collab.net>
* client.c: General refactoring. Removed several global variables in
favor of passing locals and/or dynamic evaluation.
(recv_line): Removed this function.
(make_bufs_from_fds): New function with factored code.
(connect_to_forked_server): New prototype. Use new functions.
(connect_to_pserver): New prototype. Use new functions.
(connect_to_gserver): New prototype. Use new API.
(auth_server): Factored this portion of the pserver code so it can be
shared. Rewrote to use buffers rather than depending on a socket.
(start_rsh_server): New prototype. Use new API.
(start_tcp_server): New prototype. Use new API.
(start_server): Factor some code. Use new API.
* client.h: New prototypes.
* cvs.h: Gratuitous reformatting. Use new root.h.
* login.c (login): Use new connect_to_pserver API.
* root.h: New file. Contains some code that used to be in cvs.h.
2001-05-04 Derek Price <dprice@collab.net>
* client.c: Gratuitous reformatting.
* client.h: Ditto.
2001-05-04 Derek Price <dprice@collab.net>
* zlib.c (compress_buffer_shutdown_input): Use new buffer shutdown
prototype.
(compress_buffer_shutdown_output): Ditto.
(Thanks to Pavel Roskin <proski@gnu.org>.)
2001-05-03 Derek Price <dprice@collab.net>
* buffer.c (struct stdio_buffer_closure): New structure to hold a
FILE * and the child's PID when necessary.
(stdio_buffer_initialize): Change proto to accept PID. Set up new
closure. Pass new stdio_buffer_shutdown to buf_initialize.
(stdio_buffer_input): Use new closure.
(stdio_buffer_output): Ditto.
(stdio_buffer_flush): Ditto.
(stdio_buffer_shutdown): New function. Teach buffer to close itself.
(packetizing_buffer_shutdown): Use new buffer shutdown proto.
* buffer.h (struct buffer): New buffer shutdown proto.
(stdio_buffer_initialize): New proto.
* client.c (log_buffer_shutdown): Use new proto.
(socket_buffer_initialize): Pass shutdown func.
(socket_buffer_shutdown): New function.
* server.c (get_responses_and_close): Remove most of the guts. Rely
on the buffer shutdown function from now on.
(start_rsh_server): Return child PID.
2001-05-03 Larry Jones <larry.jones@sdrc.com>
* history.c (history_write): Handle the case where the user's home
directory doesn't exist gracefully instead of erroring out.
(Reported by David Hoover <dhoover@cadence.com>.)
2001-05-03 Derek Price <dprice@collab.net>
* cvs.h: s/allocate_and_strcat/xrealloc_and_strcat/ since that is what
I wrote in the ChangeLog, oh, so long ago.
* diff.c (diff): Ditto.
* subr.c (allocate_and_strcat, xrealloc_and_strcat): Ditto.
2001-05-02 Larry Jones <larry.jones@sdrc.com>
* rcs.c (RCS_getdate): Handle the (unusual!) case where we
can't find any revisions at all.
(Reported by Ryan Grow <rgrow@Dbdoctor.net>.)
2001-04-30 Larry Jones <larry.jones@sdrc.com>
* sanity.sh (multiroot2-9a): Rename (from multiroot2-9) to avoid
duplicate names; fix to work without SERVER_SUPPORT defined.
(Reported by Pavel Roskin <proski@gnu.org>.)
2001-04-29 Derek Price <dprice@collab.net>
* Makefile.am (check-local): Make dependent on localcheck and
remotecheck and move old check target...
(localcheck): here.
* Makefile.in: Regenerated.
2001-04-27 Larry Jones <larry.jones@sdrc.com>
* sanity.sh (pserver): Add tests for readers and writers.
2001-04-27 Derek Price <dprice@collab.net>
* sanity.sh (version-2r): Update to handle patch releases in version
numbers.
2001-04-27 Derek Price <dprice@collab.net>
* version.c: Regenerated.
2001-04-27 Derek Price <dprice@collab.net>
* version.c: Regenerated.
2001-04-27 Larry Jones <larry.jones@sdrc.com>
* main.c (lookup_command_attribute): Lookup specified command, not

View File

@ -75,6 +75,7 @@ cvs_SOURCES = \
subr.c \
tag.c \
update.c \
version.c \
vers_ts.c \
watch.c \
wrapper.c \
@ -89,15 +90,18 @@ cvs_SOURCES = \
hash.h \
myndbm.h \
rcs.h \
root.h \
server.h \
update.h \
version.h \
watch.h
BUILT_SOURCES = version.h
cvs_LDADD = \
../diff/libdiff.a \
../lib/libcvs.a \
../zlib/libz.a \
version.o
cvs_EXTRA_DIST = version.c
../zlib/libz.a
# extra clean targets
# wish this could be distclean-hdr-local but it's not part of automake
@ -105,18 +109,18 @@ DISTCLEANFILES = options.h-SAVED check.log check.plog
# General
EXTRA_DIST = \
$(cvs_EXTRA_DIST) \
.cvsignore \
ChangeLog-9194 \
ChangeLog-9395 \
ChangeLog-96 \
ChangeLog-97 \
build_src.com \
sanity.sh \
version.c \
version.c.in
sanity.sh
check-local:
check-local: localcheck remotecheck
.PHONY: localcheck
localcheck:
$(SHELL) $(srcdir)/sanity.sh `pwd`/cvs
.PHONY: remotecheck
@ -125,20 +129,6 @@ remotecheck: all
## MAINTAINER Targets
# version.c
# - build this here so that we can distribute it
# - version.c needs to be updated only once, since it depends on
# configure.in, not on the results of a 'configure' run.
# - It is guaranteed (with GNU Make) that when the version in configure.in
# is changed, acversion.m4 is built only after the new version number is
# propagated to the Makefile. (Libtool uses the same guarantee.)
# - need the explicit version.o dependency or else make won't match
# $(srcdir)/version.c when looking for a dependency for version.c
version.o: $(srcdir)/version.c
$(srcdir)/version.c: $(srcdir)/version.c.in $(top_srcdir)/configure.in
sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/version.c.in >$(srcdir)/version.tc
mv $(srcdir)/version.tc $(srcdir)/version.c
# for backwards compatibility with the old makefiles
.PHONY: realclean
realclean: maintainer-clean

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4e from Makefile.am.
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
@ -45,11 +45,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -63,7 +61,6 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -75,25 +72,22 @@ AWK = @AWK@
CC = @CC@
CSH = @CSH@
DEPDIR = @DEPDIR@
ETAGS = @ETAGS@
ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
EXEEXT = @EXEEXT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
KRB4 = @KRB4@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PR = @PR@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
ROFF = @ROFF@
STRIP = @STRIP@
TEXI2DVI = @TEXI2DVI@
VERSION = @VERSION@
YACC = @YACC@
_am_include = @_am_include@
_am_quote = @_am_quote@
am__include = @am__include@
am__quote = @am__quote@
includeopt = @includeopt@
install_sh = @install_sh@
@ -159,6 +153,7 @@ cvs_SOURCES = \
subr.c \
tag.c \
update.c \
version.c \
vers_ts.c \
watch.c \
wrapper.c \
@ -173,17 +168,20 @@ cvs_SOURCES = \
hash.h \
myndbm.h \
rcs.h \
root.h \
server.h \
update.h \
version.h \
watch.h
BUILT_SOURCES = version.h
cvs_LDADD = \
../diff/libdiff.a \
../lib/libcvs.a \
../zlib/libz.a \
version.o
../zlib/libz.a
cvs_EXTRA_DIST = version.c
# extra clean targets
# wish this could be distclean-hdr-local but it's not part of automake
@ -191,23 +189,18 @@ DISTCLEANFILES = options.h-SAVED check.log check.plog
# General
EXTRA_DIST = \
$(cvs_EXTRA_DIST) \
.cvsignore \
ChangeLog-9194 \
ChangeLog-9395 \
ChangeLog-96 \
ChangeLog-97 \
build_src.com \
sanity.sh \
version.c \
version.c.in
sanity.sh
EXEEXT =
OBJEXT = o
subdir = src
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h options.h
CONFIG_CLEAN_FILES = cvsbug
CONFIG_CLEAN_FILES = cvsbug version.h
bin_PROGRAMS = cvs$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS)
@ -226,26 +219,19 @@ am_cvs_OBJECTS = add.$(OBJEXT) admin.$(OBJEXT) annotate.$(OBJEXT) \
recurse.$(OBJEXT) release.$(OBJEXT) remove.$(OBJEXT) \
repos.$(OBJEXT) root.$(OBJEXT) run.$(OBJEXT) scramble.$(OBJEXT) \
server.$(OBJEXT) status.$(OBJEXT) subr.$(OBJEXT) tag.$(OBJEXT) \
update.$(OBJEXT) vers_ts.$(OBJEXT) watch.$(OBJEXT) \
wrapper.$(OBJEXT) zlib.$(OBJEXT)
update.$(OBJEXT) version.$(OBJEXT) vers_ts.$(OBJEXT) \
watch.$(OBJEXT) wrapper.$(OBJEXT) zlib.$(OBJEXT)
cvs_OBJECTS = $(am_cvs_OBJECTS)
cvs_DEPENDENCIES = ../diff/libdiff.a ../lib/libcvs.a ../zlib/libz.a \
version.o
cvs_DEPENDENCIES = ../diff/libdiff.a ../lib/libcvs.a ../zlib/libz.a
cvs_LDFLAGS =
SCRIPTS = $(bin_SCRIPTS)
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CFLAGS = @CFLAGS@
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I.
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I.
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
DIST_SOURCES = $(cvs_SOURCES)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/add.Po $(DEPDIR)/admin.Po \
@AMDEP_TRUE@ $(DEPDIR)/annotate.Po $(DEPDIR)/buffer.Po \
@ -272,28 +258,30 @@ depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@ $(DEPDIR)/server.Po $(DEPDIR)/status.Po \
@AMDEP_TRUE@ $(DEPDIR)/subr.Po $(DEPDIR)/tag.Po \
@AMDEP_TRUE@ $(DEPDIR)/update.Po $(DEPDIR)/vers_ts.Po \
@AMDEP_TRUE@ $(DEPDIR)/watch.Po $(DEPDIR)/wrapper.Po \
@AMDEP_TRUE@ $(DEPDIR)/zlib.Po
@AMDEP_TRUE@ $(DEPDIR)/version.Po $(DEPDIR)/watch.Po \
@AMDEP_TRUE@ $(DEPDIR)/wrapper.Po $(DEPDIR)/zlib.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(cvs_SOURCES)
DIST_COMMON = ./stamp-h2.in ChangeLog Makefile.am Makefile.in cvsbug.in \
options.h.in
options.h.in version.h.in
SOURCES = $(cvs_SOURCES)
OBJECTS = $(am_cvs_OBJECTS)
all: options.h
all: $(BUILT_SOURCES) options.h
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
options.h: stamp-h2
@if test ! -f $@; then \
rm -f stamp-h2; \
@ -321,12 +309,16 @@ distclean-hdr:
-rm -f options.h
cvsbug: $(top_builddir)/config.status cvsbug.in
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
version.h: $(top_builddir)/config.status version.h.in
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= CONFIG_LINKS= $(SHELL) ./config.status
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \
else :; fi; \
@ -342,8 +334,7 @@ uninstall-binPROGRAMS:
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
cvs$(EXEEXT): $(cvs_OBJECTS) $(cvs_DEPENDENCIES)
cvs$(EXEEXT): $(cvs_OBJECTS) $(cvs_DEPENDENCIES)
@rm -f cvs$(EXEEXT)
$(LINK) $(cvs_LDFLAGS) $(cvs_OBJECTS) $(cvs_LDADD) $(LIBS)
install-binSCRIPTS: $(bin_SCRIPTS)
@ -374,6 +365,78 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/add.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/admin.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/annotate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/buffer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/checkin.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/checkout.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/classify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/client.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/commit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/create_adm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/cvsrc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/diff.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/edit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/entries.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/error.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/expand_path.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fileattr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/filesubr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/find_names.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/hardlink.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/hash.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/history.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ignore.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/import.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/log.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/login.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/logmsg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/mkmodules.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/modules.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/myndbm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/no_diff.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/parseinfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/patch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rcs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rcscmds.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/recurse.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/release.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/remove.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/repos.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/root.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/run.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/scramble.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/server.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/status.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/subr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/tag.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/update.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vers_ts.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/version.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/watch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/wrapper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zlib.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@ -390,93 +453,21 @@ TAGS: $(HEADERS) $(SOURCES) options.h.in $(TAGS_DEPENDENCIES) \
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list @CONFIG@; do \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)options.h.in$$unique$(LISP)$$tags" \
|| $(ETAGS) $(ETAGS_ARGS) $$tags options.h.in $$unique $(LISP)
|| etags $(ETAGS_ARGS) $$tags options.h.in $$unique $(LISP)
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $$here
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
@_am_include@ @_am_quote@$(DEPDIR)/add.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/admin.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/annotate.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/buffer.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/checkin.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/checkout.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/classify.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/client.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/commit.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/create_adm.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/cvsrc.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/diff.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/edit.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/entries.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/error.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/expand_path.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/fileattr.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/filesubr.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/find_names.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/hardlink.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/hash.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/history.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/ignore.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/import.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/lock.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/log.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/login.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/logmsg.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/main.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/mkmodules.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/modules.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/myndbm.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/no_diff.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/parseinfo.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/patch.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/rcs.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/rcscmds.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/recurse.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/release.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/remove.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/repos.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/root.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/run.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/scramble.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/server.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/status.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/subr.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/tag.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/update.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/vers_ts.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/watch.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/wrapper.Po@_am_quote@
@_am_include@ @_am_quote@$(DEPDIR)/zlib.Po@_am_quote@
distclean-depend:
-rm -rf $(DEPDIR)
CCDEPMODE = @CCDEPMODE@
.c.o:
source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c -o $@ `cygpath -w $<`
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@ -485,7 +476,11 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
@ -512,24 +507,22 @@ install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
@ -539,11 +532,11 @@ distclean: distclean-am
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-hdr distclean-tags
dvi:
dvi: dvi-am
dvi-am:
info:
info: info-am
info-am:
@ -551,7 +544,7 @@ install-data-am:
install-exec-am: install-binPROGRAMS install-binSCRIPTS
install-info:
install-info: install-info-am
install-man:
@ -565,45 +558,35 @@ mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS
uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
uninstall-info-am
.PHONY: all all-am check check-am check-local clean clean-binPROGRAMS \
clean-generic distclean distclean-compile distclean-depend \
distclean-generic distclean-hdr distclean-tags distdir dvi \
dvi-am info info-am install install-am install-binPROGRAMS \
install-binSCRIPTS install-data install-data-am install-exec \
install-exec-am install-info install-man install-strip \
installcheck installcheck-am installdirs maintainer-clean \
.PHONY: GTAGS all all-am check check-am check-local clean \
clean-binPROGRAMS clean-generic distclean distclean-compile \
distclean-depend distclean-generic distclean-hdr distclean-tags \
distdir dvi dvi-am info info-am install install-am \
install-binPROGRAMS install-binSCRIPTS install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-binSCRIPTS
uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-info-am
check-local:
check-local: localcheck remotecheck
.PHONY: localcheck
localcheck:
$(SHELL) $(srcdir)/sanity.sh `pwd`/cvs
.PHONY: remotecheck
remotecheck: all
$(SHELL) $(srcdir)/sanity.sh -r `pwd`/cvs
# version.c
# - build this here so that we can distribute it
# - version.c needs to be updated only once, since it depends on
# configure.in, not on the results of a 'configure' run.
# - It is guaranteed (with GNU Make) that when the version in configure.in
# is changed, acversion.m4 is built only after the new version number is
# propagated to the Makefile. (Libtool uses the same guarantee.)
# - need the explicit version.o dependency or else make won't match
# $(srcdir)/version.c when looking for a dependency for version.c
version.o: $(srcdir)/version.c
$(srcdir)/version.c: $(srcdir)/version.c.in $(top_srcdir)/configure.in
sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/version.c.in >$(srcdir)/version.tc
mv $(srcdir)/version.tc $(srcdir)/version.c
# for backwards compatibility with the old makefiles
.PHONY: realclean
realclean: maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -31,12 +31,12 @@ static const char *const admin_usage[] =
"\t (all names if omitted).\n",
"\t-I Run interactively.\n",
"\t-k subst Set keyword substitution mode:\n",
"\t kv (Default) Substitue keyword and value.\n",
"\t kvl Substitue keyword, value, and locker (if any).\n",
"\t k Substitue keyword only.\n",
"\t kv (Default) Substitute keyword and value.\n",
"\t kvl Substitute keyword, value, and locker (if any).\n",
"\t k Substitute keyword only.\n",
"\t o Preserve original string.\n",
"\t b Like o, but mark file as binary.\n",
"\t v Substitue value only.\n",
"\t v Substitute value only.\n",
"\t-l[rev] Lock revision (latest revision on branch,\n",
"\t latest revision on trunk if omitted).\n",
"\t-L Set strict locking.\n",
@ -169,7 +169,7 @@ admin (argc, argv)
while ((c = getopt (argc, argv,
"+ib::c:a:A:e::l::u::LUn:N:m:o:s:t::IqxV:k:")) != -1)
{
if (c != 'k')
if (c != 'k' && c != 'q')
only_k_option = 0;
switch (c)

View File

@ -17,6 +17,7 @@
/* Options from the command line. */
static int force_tag_match = 1;
static int force_binary = 0;
static char *tag = NULL;
static int tag_validated;
static char *date = NULL;
@ -30,10 +31,11 @@ static int rannotate_proc PROTO((int argc, char **argv, char *xwhere,
static const char *const annotate_usage[] =
{
"Usage: %s %s [-lRf] [-r rev] [-D date] [files...]\n",
"Usage: %s %s [-lRfF] [-r rev] [-D date] [files...]\n",
"\t-l\tLocal directory only, no recursion.\n",
"\t-R\tProcess directories recursively.\n",
"\t-f\tUse head revision if tag/date not found.\n",
"\t-F\tAnnotate binary files.\n",
"\t-r rev\tAnnotate file as of specified revision/tag.\n",
"\t-D date\tAnnotate file as of specified date.\n",
"(Specify the --help global option for a list of other help options)\n",
@ -58,7 +60,7 @@ annotate (argc, argv)
usage (annotate_usage);
optind = 0;
while ((c = getopt (argc, argv, "+lr:D:fR")) != -1)
while ((c = getopt (argc, argv, "+lr:D:fFR")) != -1)
{
switch (c)
{
@ -77,6 +79,9 @@ annotate (argc, argv)
case 'f':
force_tag_match = 0;
break;
case 'F':
force_binary = 1;
break;
case '?':
default:
usage (annotate_usage);
@ -100,6 +105,8 @@ annotate (argc, argv)
send_arg ("-l");
if (!force_tag_match)
send_arg ("-f");
if (force_binary)
send_arg ("-F");
option_with_arg ("-r", tag);
if (date)
client_senddate (date);
@ -128,14 +135,14 @@ annotate (argc, argv)
for (i = 0; i < argc; i++)
{
err += do_module (db, argv[i], MISC, "Annotating", rannotate_proc,
(char *) NULL, 0, 0, 0, 0, (char *) NULL);
(char *) NULL, 0, local, 0, 0, (char *) NULL);
}
close_module (db);
}
else
{
err = rannotate_proc (argc + 1, argv - 1, (char *) NULL,
(char *) NULL, (char *) NULL, 0, 0, (char *) NULL,
(char *) NULL, (char *) NULL, 0, local, (char *) NULL,
(char *) NULL);
}
@ -251,7 +258,7 @@ annotate_fileproc (callerdat, finfo)
void *callerdat;
struct file_info *finfo;
{
char *version;
char *expand, *version;
if (finfo->rcs == NULL)
return (1);
@ -259,19 +266,28 @@ annotate_fileproc (callerdat, finfo)
if (finfo->rcs->flags & PARTIAL)
RCS_reparsercsfile (finfo->rcs, (FILE **) NULL, (struct rcsbuffer *) NULL);
expand = RCS_getexpand (finfo->rcs);
version = RCS_getversion (finfo->rcs, tag, date, force_tag_match,
(int *) NULL);
if (version == NULL)
return 0;
/* Distinguish output for various files if we are processing
several files. */
cvs_outerr ("Annotations for ", 0);
cvs_outerr ("\nAnnotations for ", 0);
cvs_outerr (finfo->fullname, 0);
cvs_outerr ("\n***************\n", 0);
RCS_deltas (finfo->rcs, (FILE *) NULL, (struct rcsbuffer *) NULL,
version, RCS_ANNOTATE, NULL, NULL, NULL, NULL);
if (!force_binary && expand && expand[0] == 'b')
{
cvs_outerr ("Skipping binary file -- -F not specified.\n", 0);
}
else
{
RCS_deltas (finfo->rcs, (FILE *) NULL, (struct rcsbuffer *) NULL,
version, RCS_ANNOTATE, NULL, NULL, NULL, NULL);
}
free (version);
return 0;
}

View File

@ -6,6 +6,12 @@
#if defined (SERVER_SUPPORT) || defined (CLIENT_SUPPORT)
#ifdef HAVE_WINSOCK_H
# include <winsock.h>
#else
# include <sys/socket.h>
#endif
/* OS/2 doesn't have EIO. FIXME: this whole notion of turning
a different error into EIO strikes me as pretty dubious. */
#if !defined (EIO)
@ -28,7 +34,7 @@ buf_initialize (input, output, flush, block, shutdown, memory, closure)
int (*output) PROTO((void *, const char *, int, int *));
int (*flush) PROTO((void *));
int (*block) PROTO((void *, int));
int (*shutdown) PROTO((void *));
int (*shutdown) PROTO((struct buffer *));
void (*memory) PROTO((struct buffer *));
void *closure;
{
@ -73,7 +79,7 @@ buf_nonio_initialize (memory)
(int (*) PROTO((void *, const char *, int, int *))) NULL,
(int (*) PROTO((void *))) NULL,
(int (*) PROTO((void *, int))) NULL,
(int (*) PROTO((void *))) NULL,
(int (*) PROTO((struct buffer *))) NULL,
memory,
(void *) NULL));
}
@ -1198,7 +1204,7 @@ buf_shutdown (buf)
struct buffer *buf;
{
if (buf->shutdown)
return (*buf->shutdown) (buf->closure);
return (*buf->shutdown) (buf);
return 0;
}
@ -1210,22 +1216,35 @@ buf_shutdown (buf)
static int stdio_buffer_input PROTO((void *, char *, int, int, int *));
static int stdio_buffer_output PROTO((void *, const char *, int, int *));
static int stdio_buffer_flush PROTO((void *));
static int stdio_buffer_shutdown PROTO((struct buffer *buf));
/* Initialize a buffer built on a stdio FILE. */
struct stdio_buffer_closure
{
FILE *fp;
int child_pid;
};
struct buffer *
stdio_buffer_initialize (fp, input, memory)
stdio_buffer_initialize (fp, child_pid, input, memory)
FILE *fp;
int child_pid;
int input;
void (*memory) PROTO((struct buffer *));
{
struct stdio_buffer_closure *bc = malloc (sizeof (*bc));
bc->fp = fp;
bc->child_pid = child_pid;
return buf_initialize (input ? stdio_buffer_input : NULL,
input ? NULL : stdio_buffer_output,
input ? NULL : stdio_buffer_flush,
(int (*) PROTO((void *, int))) NULL,
(int (*) PROTO((void *))) NULL,
stdio_buffer_shutdown,
memory,
(void *) fp);
(void *) bc);
}
/* The buffer input function for a buffer built on a stdio FILE. */
@ -1238,7 +1257,7 @@ stdio_buffer_input (closure, data, need, size, got)
int size;
int *got;
{
FILE *fp = (FILE *) closure;
struct stdio_buffer_closure *bc = (struct stdio_buffer_closure *) closure;
int nbytes;
/* Since stdio does its own buffering, we don't worry about
@ -1248,11 +1267,11 @@ stdio_buffer_input (closure, data, need, size, got)
{
int ch;
ch = getc (fp);
ch = getc (bc->fp);
if (ch == EOF)
{
if (feof (fp))
if (feof (bc->fp))
return -1;
else if (errno == 0)
return EIO;
@ -1265,12 +1284,12 @@ stdio_buffer_input (closure, data, need, size, got)
return 0;
}
nbytes = fread (data, 1, need, fp);
nbytes = fread (data, 1, need, bc->fp);
if (nbytes == 0)
{
*got = 0;
if (feof (fp))
if (feof (bc->fp))
return -1;
else if (errno == 0)
return EIO;
@ -1292,7 +1311,7 @@ stdio_buffer_output (closure, data, have, wrote)
int have;
int *wrote;
{
FILE *fp = (FILE *) closure;
struct stdio_buffer_closure *bc = (struct stdio_buffer_closure *) closure;
*wrote = 0;
@ -1300,7 +1319,7 @@ stdio_buffer_output (closure, data, have, wrote)
{
int nbytes;
nbytes = fwrite (data, 1, have, fp);
nbytes = fwrite (data, 1, have, bc->fp);
if (nbytes != have)
{
@ -1324,9 +1343,9 @@ static int
stdio_buffer_flush (closure)
void *closure;
{
FILE *fp = (FILE *) closure;
struct stdio_buffer_closure *bc = (struct stdio_buffer_closure *) closure;
if (fflush (fp) != 0)
if (fflush (bc->fp) != 0)
{
if (errno == 0)
return EIO;
@ -1337,6 +1356,116 @@ stdio_buffer_flush (closure)
return 0;
}
static int
stdio_buffer_shutdown (buf)
struct buffer *buf;
{
struct stdio_buffer_closure *bc = (struct stdio_buffer_closure *) buf->closure;
struct stat s;
int closefp = 1;
/* Must be a pipe or a socket. What could go wrong? */
assert (fstat ( fileno (bc->fp), &s ) != -1);
/* Flush the buffer if we can */
if (buf->flush)
{
buf_flush (buf, 1);
buf->flush = NULL;
}
if (buf->input)
{
if (! buf_empty_p (buf)
|| getc (bc->fp) != EOF)
{
# ifdef SERVER_SUPPORT
if (server_active)
/* FIXME: This should probably be sysloged since it doesn't
* have anywhere else to go at this point.
*/
error (0, 0, "dying gasps from client unexpected");
else
#endif
error (0, 0, "dying gasps from %s unexpected", current_parsed_root->hostname);
}
else if (ferror (bc->fp))
{
# ifdef SERVER_SUPPORT
if (server_active)
/* FIXME: This should probably be sysloged since it doesn't
* have anywhere else to go at this point.
*/
error (0, errno, "reading from client");
else
#endif
error (0, errno, "reading from %s", current_parsed_root->hostname);
}
# ifdef SHUTDOWN_SERVER
if (current_parsed_root->method != server_method)
# endif
# ifndef NO_SOCKET_TO_FD
{
/* shutdown() sockets */
if (S_ISSOCK(s.st_mode))
shutdown ( fileno (bc->fp), 0);
}
# endif /* NO_SOCKET_TO_FD */
# ifdef START_RSH_WITH_POPEN_RW
/* Can't be set with SHUTDOWN_SERVER defined */
else if (pclose (bc->fp) == EOF)
{
error (1, errno, "closing connection to %s",
current_parsed_root->hostname);
closefp = 0;
}
# endif /* START_RSH_WITH_POPEN_RW */
buf->input = NULL;
}
else if (buf->output)
{
# ifdef SHUTDOWN_SERVER
/* FIXME: Should have a SHUTDOWN_SERVER_INPUT &
* SHUTDOWN_SERVER_OUTPUT
*/
if (current_parsed_root->method == server_method)
SHUTDOWN_SERVER ( fileno (bc->fp) );
else
# endif
# ifndef NO_SOCKET_TO_FD
/* shutdown() sockets */
if (S_ISSOCK(s.st_mode))
shutdown ( fileno (bc->fp), 1);
# else
{
/* I'm not sure I like this empty block, but the alternative
* is a another nested NO_SOCKET_TO_FD switch above.
*/
}
# endif /* NO_SOCKET_TO_FD */
buf->output = NULL;
}
if (closefp && fclose (bc->fp) == EOF)
error (1, errno,
"closing down connection to %s",
current_parsed_root->hostname);
/* If we were talking to a process, make sure it exited */
if (bc->child_pid
&& waitpid (bc->child_pid, (int *) 0, 0) == -1)
error (1, errno, "waiting for process %d", bc->child_pid);
return 0;
}
/* Certain types of communication input and output data in packets,
where each packet is translated in some fashion. The packetizing
buffer type supports that, given a buffer which handles lower level
@ -1398,7 +1527,7 @@ static int packetizing_buffer_input PROTO((void *, char *, int, int, int *));
static int packetizing_buffer_output PROTO((void *, const char *, int, int *));
static int packetizing_buffer_flush PROTO((void *));
static int packetizing_buffer_block PROTO((void *, int));
static int packetizing_buffer_shutdown PROTO((void *));
static int packetizing_buffer_shutdown PROTO((struct buffer *));
/* Create a packetizing buffer. */
@ -1763,10 +1892,10 @@ packetizing_buffer_block (closure, block)
/* Shut down a packetizing buffer. */
static int
packetizing_buffer_shutdown (closure)
void *closure;
packetizing_buffer_shutdown (buf)
struct buffer *buf;
{
struct packetizing_buffer *pb = (struct packetizing_buffer *) closure;
struct packetizing_buffer *pb = (struct packetizing_buffer *) buf->closure;
return buf_shutdown (pb->buf);
}

View File

@ -61,7 +61,7 @@ struct buffer
appropriate should be done at this point. This may be NULL.
It should return 0 on success, or an errno code. This entry
point exists for the compression code. */
int (*shutdown) PROTO((void *closure));
int (*shutdown) PROTO((struct buffer *));
/* This field is passed to the INPUT, OUTPUT, and BLOCK functions. */
void *closure;
@ -105,13 +105,13 @@ extern struct buffer *buf_initialize PROTO((int (*) (void *, char *, int,
int, int *),
int (*) (void *),
int (*) (void *, int),
int (*) (void *),
int (*) (struct buffer *),
void (*) (struct buffer *),
void *));
extern void buf_free PROTO((struct buffer *));
extern struct buffer *buf_nonio_initialize PROTO((void (*) (struct buffer *)));
extern struct buffer *stdio_buffer_initialize
PROTO((FILE *, int, void (*) (struct buffer *)));
PROTO((FILE *, int, int, void (*) (struct buffer *)));
extern struct buffer *compress_buffer_initialize
PROTO((struct buffer *, int, int, void (*) (struct buffer *)));
extern struct buffer *packetizing_buffer_initialize

View File

@ -15,32 +15,36 @@ extern int cvsencrypt;
/* Whether the connection should use per-packet authentication. */
extern int cvsauthenticate;
#ifdef ENCRYPTION
#ifdef __STDC__
struct buffer;
#endif
#ifdef HAVE_KERBEROS
# ifdef ENCRYPTION
# ifdef HAVE_KERBEROS
/* We can't declare the arguments without including krb.h, and I don't
want to do that in every file. */
extern struct buffer *krb_encrypt_buffer_initialize ();
#endif /* HAVE_KERBEROS */
# endif /* HAVE_KERBEROS */
#ifdef HAVE_GSSAPI
# ifdef HAVE_GSSAPI
/* Set this to turn on GSSAPI encryption. */
extern int cvs_gssapi_encrypt;
#endif /* HAVE_GSSAPI */
# endif /* HAVE_GSSAPI */
#endif /* ENCRYPTION */
# endif /* ENCRYPTION */
#ifdef HAVE_GSSAPI
# ifdef HAVE_GSSAPI
/* We can't declare the arguments without including gssapi.h, and I
don't want to do that in every file. */
extern struct buffer *cvs_gssapi_wrap_buffer_initialize ();
#endif /* HAVE_GSSAPI */
# endif /* HAVE_GSSAPI */
#endif /* defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
@ -54,22 +58,30 @@ extern int server_started;
/* Is the -P option to checkout or update specified? */
extern int client_prune_dirs;
#ifdef AUTH_CLIENT_SUPPORT
# ifdef AUTH_CLIENT_SUPPORT
extern int use_authenticating_server;
void connect_to_pserver PROTO ((int *tofdp, int* fromfdp, int verify_only,
int do_gssapi));
# ifndef CVS_AUTH_PORT
# define CVS_AUTH_PORT 2401
# endif /* CVS_AUTH_PORT */
#endif /* AUTH_CLIENT_SUPPORT */
void connect_to_pserver PROTO ((cvsroot_t *,
struct buffer **,
struct buffer **,
int, int ));
# ifndef CVS_AUTH_PORT
# define CVS_AUTH_PORT 2401
# endif /* CVS_AUTH_PORT */
# endif /* AUTH_CLIENT_SUPPORT */
#if defined (AUTH_SERVER_SUPPORT) || (defined (SERVER_SUPPORT) && defined (HAVE_GSSAPI))
# if HAVE_KERBEROS
# ifndef CVS_PORT
# define CVS_PORT 1999
# endif
# endif /* HAVE_KERBEROS */
# if defined (AUTH_SERVER_SUPPORT) || (defined (SERVER_SUPPORT) && defined (HAVE_GSSAPI))
extern void pserver_authenticate_connection PROTO ((void));
#endif
# endif
#if defined (SERVER_SUPPORT) && defined (HAVE_KERBEROS)
# if defined (SERVER_SUPPORT) && defined (HAVE_KERBEROS)
extern void kserver_authenticate_connection PROTO ((void));
#endif
# endif
/* Talking to the server. */
void send_to_server PROTO((char *str, size_t len));
@ -94,7 +106,7 @@ send_file_names PROTO((int argc, char **argv, unsigned int flags));
/* Flags for send_file_names. */
/* Expand wild cards? */
#define SEND_EXPAND_WILD 1
# define SEND_EXPAND_WILD 1
/*
* Send Repository, Modified and Entry. argc and argv contain only
@ -106,10 +118,10 @@ send_files PROTO((int argc, char **argv, int local, int aflag,
unsigned int flags));
/* Flags for send_files. */
#define SEND_BUILD_DIRS 1
#define SEND_FORCE 2
#define SEND_NO_CONTENTS 4
#define BACKUP_MODIFIED_FILES 8
# define SEND_BUILD_DIRS 1
# define SEND_FORCE 2
# define SEND_NO_CONTENTS 4
# define BACKUP_MODIFIED_FILES 8
/* Send an argument to the remote server. */
void

View File

@ -32,8 +32,9 @@
/* The __-protected variants of `format' and `printf' attributes
are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
# define __format__ format
# define __printf__ printf
# define __format__ format
# define __printf__ printf
# define __noreturn__ noreturn
# endif
#endif
@ -46,7 +47,11 @@ void error ();
/* Exit due to an error. Similar to error (1, 0, "message"), but call
it in the case where the message has already been printed. */
extern void error_exit PROTO ((void));
#ifdef __STDC__
void error_exit (void) __attribute__ ((__noreturn__));
#else
void error_exit ();
#endif
/* If non-zero, error will use the CVS protocol to report error
messages. This will only be set in the CVS server parent process;

View File

@ -24,8 +24,6 @@ static int find_rcs PROTO((char *dir, List * list));
static int add_subdir_proc PROTO((Node *, void *));
static int register_subdir_proc PROTO((Node *, void *));
static List *filelist;
/*
* add the key from entry on entries list to the files list
*/
@ -37,6 +35,7 @@ add_entries_proc (node, closure)
{
Entnode *entnode;
Node *fnode;
List *filelist = (List *) closure;
entnode = (Entnode *) node->data;
if (entnode->type != ENT_FILE)
@ -66,7 +65,7 @@ Find_Names (repository, which, aflag, optentries)
List *files;
/* make a list for the files */
files = filelist = getlist ();
files = getlist ();
/* look at entries (if necessary) */
if (which & W_LOCAL)
@ -76,7 +75,7 @@ Find_Names (repository, which, aflag, optentries)
if (entries != NULL)
{
/* walk the entries file adding elements to the files list */
(void) walklist (entries, add_entries_proc, NULL);
(void) walklist (entries, add_entries_proc, files);
/* if our caller wanted the entries list, return it; else free it */
if (optentries != NULL)

View File

@ -770,11 +770,8 @@ history_write (type, update_dir, revs, name, repository)
if (save_cwd (&cwd))
error_exit ();
if ( CVS_CHDIR (pwdir) < 0)
error (1, errno, "can't chdir(%s)", pwdir);
homedir = xgetwd ();
if (homedir == NULL)
error (1, errno, "can't getwd in %s", pwdir);
if ( CVS_CHDIR (pwdir) < 0 || (homedir = xgetwd ()) == NULL)
homedir = pwdir;
if (restore_cwd (&cwd, NULL))
error_exit ();
@ -786,7 +783,9 @@ history_write (type, update_dir, revs, name, repository)
PrCurDir += i; /* Point to '/' separator */
tilde = "~";
}
free (homedir);
if (homedir != pwdir)
free (homedir);
}
}
}

View File

@ -84,6 +84,9 @@ struct log_data
/* Nonzero if the -b option was seen, meaning that only revisions
on the default branch should be printed. */
int default_branch;
/* Nonzero if the -S option was seen, meaning that the header/name
should be suppressed if no revisions are selected. */
int sup_header;
/* If not NULL, the value given for the -r option, which lists
sets of revisions to be printed. */
struct option_revlist *revlist;
@ -150,18 +153,20 @@ static const char *const log_usage[] =
"\t-h\tOnly print header.\n",
"\t-t\tOnly print header and descriptive text.\n",
"\t-N\tDo not list tags.\n",
"\t-S\tDo not print name/header if no revisions selected.\n",
"\t-b\tOnly list revisions on the default branch.\n",
"\t-r[revisions]\tSpecify revision(s)s to list.\n",
"\t-r[revisions]\tA comma-separated list of revisions to print:\n",
"\t rev1:rev2 Between rev1 and rev2, including rev1 and rev2.\n",
"\t rev1::rev2 Between rev1 and rev2, excluding rev1 and rev2.\n",
"\t rev1::rev2 Between rev1 and rev2, excluding rev1.\n",
"\t rev: rev and following revisions on the same branch.\n",
"\t rev:: After rev on the same branch.\n",
"\t :rev rev and previous revisions on the same branch.\n",
"\t ::rev Before rev on the same branch.\n",
"\t ::rev rev and previous revisions on the same branch.\n",
"\t rev Just rev.\n",
"\t branch All revisions on the branch.\n",
"\t branch. The last revision on the branch.\n",
"\t-d dates\tSpecify dates (D1<D2 for range, D for latest before).\n",
"\t-d dates\tA semicolon-separated list of dates\n",
"\t \t(D1<D2 for range, D for latest before).\n",
"\t-s states\tOnly list revisions with specified states.\n",
"\t-w[logins]\tOnly list revisions checked in by specified logins.\n",
"(Specify the --help global option for a list of other help options)\n",
@ -228,7 +233,7 @@ cvslog (argc, argv)
prl = &log_data.revlist;
optind = 0;
while ((c = getopt (argc, argv, "+bd:hlNRr::s:tw::")) != -1)
while ((c = getopt (argc, argv, "+bd:hlNSRr::s:tw::")) != -1)
{
switch (c)
{
@ -247,6 +252,9 @@ cvslog (argc, argv)
case 'N':
log_data.notags = 1;
break;
case 'S':
log_data.sup_header = 1;
break;
case 'R':
log_data.nameonly = 1;
break;
@ -336,6 +344,8 @@ cvslog (argc, argv)
send_arg("-l");
if (log_data.notags)
send_arg("-N");
if (log_data.sup_header)
send_arg("-S");
if (log_data.nameonly)
send_arg("-R");
if (log_data.long_header)
@ -405,14 +415,14 @@ cvslog (argc, argv)
for (i = 0; i < argc; i++)
{
err += do_module (db, argv[i], MISC, "Logging", rlog_proc,
(char *) NULL, 0, 0, 0, 0, (char *) NULL);
(char *) NULL, 0, local, 0, 0, (char *) NULL);
}
close_module (db);
}
else
{
err = rlog_proc (argc + 1, argv - 1, (char *) NULL,
(char *) NULL, (char *) NULL, 0, 0, (char *) NULL,
(char *) NULL, (char *) NULL, 0, local, (char *) NULL,
(char *) NULL);
}
@ -782,6 +792,7 @@ log_fileproc (callerdat, finfo)
{
struct log_data *log_data = (struct log_data *) callerdat;
Node *p;
int selrev = -1;
RCSNode *rcsfile;
char buf[50];
struct revlist *revlist;
@ -811,6 +822,38 @@ log_fileproc (callerdat, finfo)
return (1);
}
if (log_data->sup_header || !log_data->nameonly)
{
/* We will need all the information in the RCS file. */
RCS_fully_parse (rcsfile);
/* Turn any symbolic revisions in the revision list into numeric
revisions. */
revlist = log_expand_revlist (rcsfile, log_data->revlist,
log_data->default_branch);
if (log_data->sup_header || (!log_data->header && !log_data->long_header))
{
log_data_and_rcs.log_data = log_data;
log_data_and_rcs.revlist = revlist;
log_data_and_rcs.rcs = rcsfile;
/* If any single dates were specified, we need to identify the
revisions they select. Each one selects the single
revision, which is otherwise selected, of that date or
earlier. The log_fix_singledate routine will fill in the
start date for each specific revision. */
if (log_data->singledatelist != NULL)
walklist (rcsfile->versions, log_fix_singledate,
(void *) &log_data_and_rcs);
selrev = walklist (rcsfile->versions, log_count_print,
(void *) &log_data_and_rcs);
if (log_data->sup_header && selrev == 0) return 0;
}
}
if (log_data->nameonly)
{
cvs_output (rcsfile->path, 0);
@ -818,14 +861,6 @@ log_fileproc (callerdat, finfo)
return 0;
}
/* We will need all the information in the RCS file. */
RCS_fully_parse (rcsfile);
/* Turn any symbolic revisions in the revision list into numeric
revisions. */
revlist = log_expand_revlist (rcsfile, log_data->revlist,
log_data->default_branch);
/* The output here is intended to be exactly compatible with the
output of rlog. I'm not sure whether this code should be here
or in rcs.c; I put it here because it is specific to the log
@ -907,25 +942,10 @@ log_fileproc (callerdat, finfo)
sprintf (buf, "%d", walklist (rcsfile->versions, log_count, NULL));
cvs_output (buf, 0);
if (! log_data->header && ! log_data->long_header)
if (selrev >= 0)
{
cvs_output (";\tselected revisions: ", 0);
log_data_and_rcs.log_data = log_data;
log_data_and_rcs.revlist = revlist;
log_data_and_rcs.rcs = rcsfile;
/* If any single dates were specified, we need to identify the
revisions they select. Each one selects the single
revision, which is otherwise selected, of that date or
earlier. The log_fix_singledate routine will fill in the
start date for each specific revision. */
if (log_data->singledatelist != NULL)
walklist (rcsfile->versions, log_fix_singledate,
(void *) &log_data_and_rcs);
sprintf (buf, "%d", walklist (rcsfile->versions, log_count_print,
(void *) &log_data_and_rcs));
sprintf (buf, "%d", selrev);
cvs_output (buf, 0);
}
@ -1029,24 +1049,25 @@ log_expand_revlist (rcs, revlist, default_branch)
{
branch = RCS_whatbranch (rcs, r->first);
if (branch == NULL)
nr->first = NULL;
else
{
error (0, 0, "warning: `%s' is not a branch in `%s'",
r->first, rcs->path);
free (nr);
continue;
nr->first = RCS_getbranch (rcs, branch, 1);
free (branch);
}
nr->first = RCS_getbranch (rcs, branch, 1);
free (branch);
}
if (nr->first == NULL)
{
error (0, 0, "warning: no revision `%s' in `%s'",
error (0, 0, "warning: no branch `%s' in `%s'",
r->first, rcs->path);
free (nr);
continue;
nr->last = NULL;
nr->fields = 0;
}
else
{
nr->last = xstrdup (nr->first);
nr->fields = numdots (nr->first) + 1;
}
nr->last = xstrdup (nr->first);
nr->fields = numdots (nr->first) + 1;
}
else
{
@ -1062,12 +1083,11 @@ log_expand_revlist (rcs, revlist, default_branch)
{
error (0, 0, "warning: no revision `%s' in `%s'",
r->first, rcs->path);
free (nr);
continue;
}
}
if (r->last == r->first)
if (r->last == r->first || (r->last != NULL && r->first != NULL &&
strcmp (r->last, r->first) == 0))
nr->last = xstrdup (nr->first);
else if (r->last == NULL || isdigit ((unsigned char) r->last[0]))
nr->last = xstrdup (r->last);
@ -1081,10 +1101,6 @@ log_expand_revlist (rcs, revlist, default_branch)
{
error (0, 0, "warning: no revision `%s' in `%s'",
r->last, rcs->path);
if (nr->first != NULL)
free (nr->first);
free (nr);
continue;
}
}
@ -1092,7 +1108,7 @@ log_expand_revlist (rcs, revlist, default_branch)
does. This code is a bit cryptic for my tastes, but
keeping the same implementation as rlog ensures a
certain degree of compatibility. */
if (r->first == NULL)
if (r->first == NULL && nr->last != NULL)
{
nr->fields = numdots (nr->last) + 1;
if (nr->fields < 2)
@ -1106,7 +1122,7 @@ log_expand_revlist (rcs, revlist, default_branch)
strcpy (cp, ".0");
}
}
else if (r->last == NULL)
else if (r->last == NULL && nr->first != NULL)
{
nr->fields = numdots (nr->first) + 1;
nr->last = xstrdup (nr->first);
@ -1120,7 +1136,7 @@ log_expand_revlist (rcs, revlist, default_branch)
*cp = '\0';
}
}
else
else if (nr->first != NULL && nr->last != NULL)
{
nr->fields = numdots (nr->first) + 1;
if (nr->fields != numdots (nr->last) + 1
@ -1132,11 +1148,12 @@ log_expand_revlist (rcs, revlist, default_branch)
"invalid branch or revision pair %s:%s in `%s'",
r->first, r->last, rcs->path);
free (nr->first);
nr->first = NULL;
free (nr->last);
free (nr);
continue;
nr->last = NULL;
nr->fields = 0;
}
if (version_compare (nr->first, nr->last, nr->fields) > 0)
else if (version_compare (nr->first, nr->last, nr->fields) > 0)
{
char *tmp;
@ -1145,6 +1162,8 @@ log_expand_revlist (rcs, revlist, default_branch)
nr->last = tmp;
}
}
else
nr->fields = 0;
}
nr->next = NULL;
@ -1288,11 +1307,9 @@ log_version_requested (log_data, revlist, rcs, vnode)
for (r = revlist; r != NULL; r = r->next)
{
if (vfields == r->fields + (r->fields & 1) &&
(r->inclusive ?
version_compare (v, r->first, r->fields) >= 0
&& version_compare (v, r->last, r->fields) <= 0 :
version_compare (v, r->first, r->fields) > 0
&& version_compare (v, r->last, r->fields) < 0))
(r->inclusive ? version_compare (v, r->first, r->fields) >= 0 :
version_compare (v, r->first, r->fields) > 0)
&& version_compare (v, r->last, r->fields) <= 0)
{
return 1;
}

View File

@ -657,19 +657,19 @@ module `%s' is a request for a file in a module which is not a directory",
}
#endif
/* write out the checkin/update prog files if necessary */
#ifdef SERVER_SUPPORT
if (err == 0 && !noexec && m_type == CHECKOUT && server_expanding)
{
if (checkin_prog != NULL)
server_prog (where ? where : mname, checkin_prog, PROG_CHECKIN);
if (update_prog != NULL)
server_prog (where ? where : mname, update_prog, PROG_UPDATE);
}
else
#endif
/* run/write out the checkin/update prog files if necessary */
if (err == 0 && !noexec && m_type == CHECKOUT && run_module_prog)
{
#ifdef SERVER_SUPPORT
if (server_active) {
if (checkin_prog != NULL)
server_prog (where ? where : mwhere ? mwhere : mname, checkin_prog, PROG_CHECKIN);
if (update_prog != NULL)
server_prog (where ? where : mwhere ? mwhere : mname, update_prog, PROG_UPDATE);
}
else
{
#endif
FILE *fp;
if (checkin_prog != NULL)
@ -686,6 +686,9 @@ module `%s' is a request for a file in a module which is not a directory",
if (fclose (fp) == EOF)
error (1, errno, "cannot close %s", CVSADM_UPROG);
}
#ifdef SERVER_SUPPORT
}
#endif
}
/* cd back to where we started */

View File

@ -19,7 +19,7 @@
#ifdef MY_NDBM
static void mydbm_load_file PROTO ((FILE *, List *));
static void mydbm_load_file PROTO ((FILE *, List *, char *));
/* Returns NULL on error in which case errno has been set to indicate
the error. Can also call error() itself. */
@ -44,7 +44,7 @@ mydbm_open (file, flags, mode)
if (fp != NULL)
{
mydbm_load_file (fp, db->dbm_list);
mydbm_load_file (fp, db->dbm_list, file);
if (fclose (fp) < 0)
error (0, errno, "cannot close %s", file);
}
@ -195,9 +195,10 @@ mydbm_store (db, key, value, flags)
}
static void
mydbm_load_file (fp, list)
mydbm_load_file (fp, list, filename)
FILE *fp;
List *list;
char *filename; /* Used in error messages. */
{
char *line = NULL;
size_t line_size;
@ -206,14 +207,17 @@ mydbm_load_file (fp, list)
char *cp, *vp;
int cont;
int line_length;
int line_num;
value_allocated = 1;
value = xmalloc (value_allocated);
cont = 0;
line_num=0;
while ((line_length =
getstr (&line, &line_size, fp, '\012', 0, GETLINE_NO_LIMIT)) >= 0)
{
line_num++;
if (line_length > 0 && line[line_length - 1] == '\012')
{
/* Strip the newline. */
@ -280,21 +284,28 @@ mydbm_load_file (fp, list)
kp = vp;
while (*vp && !isspace ((unsigned char) *vp))
vp++;
*vp++ = '\0'; /* NULL terminate the key */
if (*vp)
*vp++ = '\0'; /* NULL terminate the key */
p->type = NDBMNODE;
p->key = xstrdup (kp);
while (*vp && isspace ((unsigned char) *vp))
vp++; /* skip whitespace to value */
if (*vp == '\0')
{
error (0, 0, "warning: NULL value for key `%s'", p->key);
if (!really_quiet)
error (0, 0,
"warning: NULL value for key `%s' at line %d of `%s'",
p->key, line_num, filename);
freenode (p);
continue;
}
p->data = xstrdup (vp);
if (addnode (list, p) == -1)
{
error (0, 0, "duplicate key found for `%s'", p->key);
if (!really_quiet)
error (0, 0,
"duplicate key found for `%s' at line %d of `%s'",
p->key, line_num, filename);
freenode (p);
}
}

View File

@ -65,7 +65,12 @@ Parse_Info (infofile, repository, callproc, all)
srepos = Short_Repository (repository);
if (trace)
(void) fprintf (stderr, " -> ParseInfo(%s, %s, %s)\n",
(void) fprintf (stderr, "%s-> Parse_Info (%s, %s, %s)\n",
#ifdef SERVER_SUPPORT
server_active ? "S" : " ",
#else
"",
#endif
infopath, srepos, all ? "ALL" : "not ALL");
/* search the info file for lines that match */
@ -384,6 +389,15 @@ warning: this CVS does not support PreservePermissions");
strcpy (logHistory, p);
}
}
else if (strcmp (line, "RereadLogAfterVerify") == 0)
{
if (strcmp (p, "no") == 0 || strcmp (p, "never") == 0)
RereadLogAfterVerify = LOGMSG_REREAD_NEVER;
else if (strcmp (p, "yes") == 0 || strcmp (p, "always") == 0)
RereadLogAfterVerify = LOGMSG_REREAD_ALWAYS;
else if (strcmp (p, "stat") == 0)
RereadLogAfterVerify = LOGMSG_REREAD_STAT;
}
else
{
/* We may be dealing with a keyword which was added in a

View File

@ -28,7 +28,6 @@ static int patch_proc PROTO((int argc, char **argv, char *xwhere,
static int force_tag_match = 1;
static int patch_short = 0;
static int toptwo_diffs = 0;
static int local = 0;
static char *options = NULL;
static char *rev1 = NULL;
static int rev1_validated = 0;
@ -65,6 +64,7 @@ patch (argc, argv)
char **argv;
{
register int i;
int local = 0;
int c;
int err = 0;
DBM *db;
@ -343,19 +343,19 @@ patch_proc (argc, argv, xwhere, mwhere, mfile, shorten, local_specified,
if (rev1 != NULL && !rev1_validated)
{
tag_check_valid (rev1, argc - 1, argv + 1, local, 0, NULL);
tag_check_valid (rev1, argc - 1, argv + 1, local_specified, 0, NULL);
rev1_validated = 1;
}
if (rev2 != NULL && !rev2_validated)
{
tag_check_valid (rev2, argc - 1, argv + 1, local, 0, NULL);
tag_check_valid (rev2, argc - 1, argv + 1, local_specified, 0, NULL);
rev2_validated = 1;
}
/* start the recursion processor */
err = start_recursion (patch_fileproc, (FILESDONEPROC) NULL, patch_dirproc,
(DIRLEAVEPROC) NULL, NULL,
argc - 1, argv + 1, local,
argc - 1, argv + 1, local_specified,
which, 0, 1, where, 1);
free (where);
@ -432,7 +432,7 @@ patch_fileproc (callerdat, finfo)
if (!date1)
date1 = xmalloc (MAXDATELEN);
*date1 = '\0';
if (RCS_getrevtime (rcsfile, vers_head, date1, 1) == -1)
if (RCS_getrevtime (rcsfile, vers_head, date1, 1) == (time_t)-1)
{
if (!really_quiet)
error (0, 0, "cannot find date in rcs file %s revision %s",

View File

@ -235,6 +235,14 @@ remove_fileproc (callerdat, finfo)
cannot remove file `%s' which has a numeric sticky tag of `%s'",
finfo->fullname, vers->tag);
}
else if (vers->date != NULL)
{
/* Commit will just give an error, and so there seems to be
little reason to allow the remove. */
error (0, 0, "\
cannot remove file `%s' which has a sticky date of `%s'",
finfo->fullname, vers->date);
}
else
{
char *fname;

View File

@ -387,7 +387,7 @@ parse_cvsroot (root_in)
if (! (p = strchr (method, ':')))
{
error (0, 0, "bad CVSroot: %s", root_in);
error (0, 0, "No closing `:' on method in CVSROOT.");
free (cvsroot_save);
goto error_exit;
}
@ -412,7 +412,7 @@ parse_cvsroot (root_in)
newroot->method = fork_method;
else
{
error (0, 0, "unknown method in CVSroot: %s", root_in);
error (0, 0, "Unknown method (`%s') in CVSROOT.", method);
free (cvsroot_save);
goto error_exit;
}
@ -420,7 +420,7 @@ parse_cvsroot (root_in)
else
{
/* If the method isn't specified, assume
SERVER_METHOD/EXT_METHOD if the string contains a colon or
SERVER_METHOD/EXT_METHOD if the string looks like a relative path or
LOCAL_METHOD otherwise. */
newroot->method = ((*cvsroot_copy != '/' && strchr (cvsroot_copy, '/'))
@ -447,8 +447,7 @@ parse_cvsroot (root_in)
*/
if ((p = strchr (cvsroot_copy, '/')) == NULL)
{
error (0, 0, "CVSROOT (\"%s\")", root_in);
error (0, 0, "requires a path spec");
error (0, 0, "CVSROOT requires a path spec:");
error (0, 0, ":(gserver|kserver|pserver):[[user][:password]@]host[:[port]]/path");
error (0, 0, "[:(ext|server):][[user]@]host[:]/path");
free (cvsroot_save);
@ -497,20 +496,18 @@ parse_cvsroot (root_in)
{
if (!isdigit(*q++))
{
error(0, 0, "CVSROOT (\"%s\")", root_in);
error(0, 0, "may only specify a positive, non-zero, integer port (not \"%s\").",
error (0, 0, "CVSROOT may only specify a positive, non-zero, integer port (not `%s').",
p);
error(0, 0, "perhaps you entered a relative pathname?");
error (0, 0, "Perhaps you entered a relative pathname?");
free (cvsroot_save);
goto error_exit;
}
}
if ((newroot->port = atoi (p)) <= 0)
{
error (0, 0, "CVSROOT (\"%s\")", root_in);
error(0, 0, "may only specify a positive, non-zero, integer port (not \"%s\").",
error (0, 0, "CVSROOT may only specify a positive, non-zero, integer port (not `%s').",
p);
error(0, 0, "perhaps you entered a relative pathname?");
error (0, 0, "Perhaps you entered a relative pathname?");
free (cvsroot_save);
goto error_exit;
}
@ -540,9 +537,8 @@ parse_cvsroot (root_in)
#if ! defined (CLIENT_SUPPORT) && ! defined (DEBUG)
if (newroot->method != local_method)
{
error (0, 0, "CVSROOT \"%s\"", root_in);
error (0, 0, "is set for a remote access method but your");
error (0, 0, "CVS executable doesn't support it");
error (0, 0, "CVSROOT is set for a remote access method but your");
error (0, 0, "CVS executable doesn't support it.");
goto error_exit;
}
#endif
@ -550,16 +546,15 @@ parse_cvsroot (root_in)
#if ! defined (SERVER_SUPPORT) && ! defined (DEBUG)
if (newroot->method == fork_method)
{
error (0, 0, "CVSROOT \"%s\"", root_in);
error (0, 0, "is set to use the :fork: access method but your");
error (0, 0, "CVS executable doesn't support it");
error (0, 0, "CVSROOT is set to use the :fork: access method but your");
error (0, 0, "CVS executable doesn't support it.");
goto error_exit;
}
#endif
if (newroot->username && ! newroot->hostname)
{
error (0, 0, "missing hostname in CVSROOT: \"%s\"", root_in);
error (0, 0, "Missing hostname in CVSROOT.");
goto error_exit;
}
@ -571,9 +566,8 @@ parse_cvsroot (root_in)
case local_method:
if (newroot->username || newroot->hostname)
{
error (0, 0, "can't specify hostname and username in CVSROOT");
error (0, 0, "(\"%s\")", root_in);
error (0, 0, "when using local access method");
error (0, 0, "Can't specify hostname and username in CVSROOT");
error (0, 0, "when using local access method.");
goto error_exit;
}
/* cvs.texinfo has always told people that CVSROOT must be an
@ -583,8 +577,9 @@ parse_cvsroot (root_in)
error. */
if (!isabsolute (newroot->directory))
{
error (0, 0, "CVSROOT \"%s\" must be an absolute pathname",
error (0, 0, "CVSROOT must be an absolute pathname (not `%s')",
newroot->directory);
error (0, 0, "when using local access method.");
goto error_exit;
}
no_port = 1;
@ -596,15 +591,15 @@ parse_cvsroot (root_in)
name is absolute -- let the server do it. */
if (newroot->username || newroot->hostname)
{
error (0, 0, "can't specify hostname and username in CVSROOT");
error (0, 0, "(\"%s\")", root_in);
error (0, 0, "when using fork access method");
error (0, 0, "Can't specify hostname and username in CVSROOT");
error (0, 0, "when using fork access method.");
goto error_exit;
}
if (!isabsolute (newroot->directory))
{
error (0, 0, "CVSROOT \"%s\" must be an absolute pathname",
error (0, 0, "CVSROOT must be an absolute pathname (not `%s')",
newroot->directory);
error (0, 0, "when using fork access method.");
goto error_exit;
}
no_port = 1;
@ -612,9 +607,8 @@ parse_cvsroot (root_in)
break;
case kserver_method:
#ifndef HAVE_KERBEROS
error (0, 0, "CVSROOT \"%s\"", root_in);
error (0, 0, "is set for a kerberos access method but your");
error (0, 0, "CVS executable doesn't support it");
error (0, 0, "CVSROOT is set for a kerberos access method but your");
error (0, 0, "CVS executable doesn't support it.");
goto error_exit;
#else
check_hostname = 1;
@ -622,9 +616,8 @@ parse_cvsroot (root_in)
#endif
case gserver_method:
#ifndef HAVE_GSSAPI
error (0, 0, "CVSROOT \"%s\"", root_in);
error (0, 0, "is set for a GSSAPI access method but your");
error (0, 0, "CVS executable doesn't support it");
error (0, 0, "CVSROOT is set for a GSSAPI access method but your");
error (0, 0, "CVS executable doesn't support it.");
goto error_exit;
#else
check_hostname = 1;
@ -639,6 +632,8 @@ parse_cvsroot (root_in)
case pserver_method:
check_hostname = 1;
break;
default:
error (1, 0, "Invalid method found in parse_cvsroot");
}
if (no_password && newroot->password)
@ -650,7 +645,7 @@ parse_cvsroot (root_in)
if (check_hostname && !newroot->hostname)
{
error (0, 0, "didn't specify hostname in CVSROOT: %s", root_in);
error (0, 0, "Didn't specify hostname in CVSROOT.");
goto error_exit;
}
@ -663,7 +658,7 @@ parse_cvsroot (root_in)
if (*newroot->directory == '\0')
{
error (0, 0, "missing directory in CVSROOT: %s", root_in);
error (0, 0, "Missing directory in CVSROOT.");
goto error_exit;
}

37
contrib/cvs/src/root.h Normal file
View File

@ -0,0 +1,37 @@
/*
* Copyright (c) 2001, Derek Price and others
* Copyright (c) 1992, Brian Berliner and Jeff Polk
* Copyright (c) 1989-1992, Brian Berliner
*
* You may distribute under the terms of the GNU General Public License as
* specified in the README file that comes with the CVS kit.
*/
/* CVSroot data structures */
/* Access method specified in CVSroot. */
typedef enum {
null_method,
local_method,
server_method,
pserver_method,
kserver_method,
gserver_method,
ext_method,
fork_method
} CVSmethod;
extern char *method_names[]; /* change this in root.c if you change
the enum above */
typedef struct cvsroot_s {
char *original; /* the complete source CVSroot string */
CVSmethod method; /* one of the enum values above */
char *username; /* the username or NULL if method == local */
char *password; /* the username or NULL if method == local */
char *hostname; /* the hostname or NULL if method == local */
int port; /* the port or zero if method == local */
char *directory; /* the directory name */
#ifdef CLIENT_SUPPORT
unsigned char isremote; /* nonzero if we are doing remote access */
#endif /* CLIENT_SUPPORT */
} cvsroot_t;

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,6 @@
* server-specific functions.
*/
extern int server_active;
extern int server_expanding;
/* Server functions exported to the rest of CVS. */

View File

@ -123,7 +123,7 @@ expand_string (strptr, n, newsize)
/* *STR is a pointer to a malloc'd string. *LENP is its allocated
length. Add SRC to the end of it, reallocating if necessary. */
void
allocate_and_strcat (str, lenp, src)
xrealloc_and_strcat (str, lenp, src)
char **str;
size_t *lenp;
const char *src;
@ -742,9 +742,6 @@ resolve_symlink (filename)
But that would require editing each filesubr.c and so the
expedient hack seems to be looking at HAVE_READLINK. */
newname = xreadlink (*filename);
#else
error (1, 0, "internal error: islink doesn't like readlink");
#endif
if (isabsolute (newname))
{
@ -762,6 +759,9 @@ resolve_symlink (filename)
free (*filename);
*filename = fullnewname;
}
#else
error (1, 0, "internal error: islink doesn't like readlink");
#endif
}
}

View File

@ -40,7 +40,7 @@ static char *date = NULL;
static char *symtag; /* tag to add or delete */
static int delete_flag; /* adding a tag by default */
static int branch_mode; /* make an automagic "branch" tag */
static int local; /* recursive by default */
static int disturb_branch_tags = 0; /* allow -F,-d to disturb branch tags */
static int force_tag_match = 1; /* force tag to match by default */
static int force_tag_move; /* don't force tag to move by default */
static int check_uptodate; /* no uptodate-check by default */
@ -63,12 +63,13 @@ struct master_lists
static List *mtlist;
static List *tlist;
static const char rtag_opts[] = "+abdFflnQqRr:D:";
static const char rtag_opts[] = "+aBbdFflnQqRr:D:";
static const char *const rtag_usage[] =
{
"Usage: %s %s [-abdFflnR] [-r rev|-D date] tag modules...\n",
"\t-a\tClear tag from removed files that would not otherwise be tagged.\n",
"\t-b\tMake the tag a \"branch\" tag, allowing concurrent development.\n",
"\t-B\tAllows -F and -d to disturb branch tags. Use with extreme care.\n",
"\t-d\tDelete the given tag.\n",
"\t-F\tMove tag if it already exists.\n",
"\t-f\tForce a head revision match if tag/date not found.\n",
@ -81,11 +82,12 @@ static const char *const rtag_usage[] =
NULL
};
static const char tag_opts[] = "+bcdFflQqRr:D:";
static const char tag_opts[] = "+BbcdFflQqRr:D:";
static const char *const tag_usage[] =
{
"Usage: %s %s [-bcdFflR] [-r rev|-D date] tag [files...]\n",
"\t-b\tMake the tag a \"branch\" tag, allowing concurrent development.\n",
"\t-B\tAllows -F and -d to disturb branch tags. Use with extreme care.\n",
"\t-c\tCheck that working files are unmodified.\n",
"\t-d\tDelete the given tag.\n",
"\t-F\tMove tag if it already exists.\n",
@ -103,6 +105,7 @@ cvstag (argc, argv)
int argc;
char **argv;
{
int local = 0; /* recursive by default */
int c;
int err = 0;
int run_module_prog = 1;
@ -123,6 +126,9 @@ cvstag (argc, argv)
case 'b':
branch_mode = 1;
break;
case 'B':
disturb_branch_tags = 1;
break;
case 'c':
check_uptodate = 1;
break;
@ -196,6 +202,8 @@ cvstag (argc, argv)
send_arg("-a");
if (branch_mode)
send_arg("-b");
if (disturb_branch_tags)
send_arg("-B");
if (check_uptodate)
send_arg("-c");
if (delete_flag)
@ -252,14 +260,14 @@ cvstag (argc, argv)
(date ? date : "A"))), symtag, argv[i], "");
err += do_module (db, argv[i], TAG,
delete_flag ? "Untagging" : "Tagging",
rtag_proc, (char *) NULL, 0, 0, run_module_prog,
rtag_proc, (char *) NULL, 0, local, run_module_prog,
0, symtag);
}
close_module (db);
}
else
{
err = rtag_proc (argc + 1, argv - 1, NULL, NULL, NULL, 0, 0, NULL,
err = rtag_proc (argc + 1, argv - 1, NULL, NULL, NULL, 0, local, NULL,
NULL);
}
@ -362,7 +370,7 @@ rtag_proc (argc, argv, xwhere, mwhere, mfile, shorten, local_specified,
if (numtag != NULL && !numtag_validated)
{
tag_check_valid (numtag, argc - 1, argv + 1, local, 0, repository);
tag_check_valid (numtag, argc - 1, argv + 1, local_specified, 0, repository);
numtag_validated = 1;
}
@ -372,7 +380,7 @@ rtag_proc (argc, argv, xwhere, mwhere, mfile, shorten, local_specified,
mtlist = getlist();
err = start_recursion (check_fileproc, check_filesdoneproc,
(DIRENTPROC) NULL, (DIRLEAVEPROC) NULL, NULL,
argc - 1, argv + 1, local, which, 0, 1,
argc - 1, argv + 1, local_specified, which, 0, 1,
where, 1);
if (err)
@ -387,13 +395,13 @@ rtag_proc (argc, argv, xwhere, mwhere, mfile, shorten, local_specified,
cached in do_recursion isn't stale by the time we get around
to using it to rewrite the RCS file in the callback, and this
is the easiest way to accomplish that. */
lock_tree_for_write (argc - 1, argv + 1, local, which, 0);
lock_tree_for_write (argc - 1, argv + 1, local_specified, which, 0);
/* start the recursion processor */
err = start_recursion (is_rtag ? rtag_fileproc : tag_fileproc,
(FILESDONEPROC) NULL, tag_dirproc,
(DIRLEAVEPROC) NULL, NULL, argc - 1, argv + 1,
local, which, 0, 0, where, 1);
local_specified, which, 0, 0, where, 1);
Lock_Cleanup ();
dellist (&mtlist);
if (where != NULL)
@ -738,6 +746,21 @@ rtag_fileproc (callerdat, finfo)
branch_mode ? "branch" : "version", rev);
free (oversion);
free (version);
if (branch_mode) free(rev);
return (0);
}
else /* force_tag_move is set and... */
if ((isbranch && !disturb_branch_tags) ||
(!isbranch && disturb_branch_tags))
{
error(0,0, "%s: Not moving %s tag `%s' from %s to %s%s.",
finfo->fullname,
isbranch ? "branch" : "non-branch",
symtag, oversion, rev,
isbranch ? "" : " due to `-B' option");
if (branch_mode) free(rev);
free (oversion);
free (version);
return (0);
}
free (oversion);
@ -779,7 +802,7 @@ rtag_delete (rcsfile)
RCSNode *rcsfile;
{
char *version;
int retcode;
int retcode, isbranch;
if (numtag)
{
@ -796,6 +819,20 @@ rtag_delete (rcsfile)
return (0);
free (version);
isbranch = RCS_nodeisbranch (rcsfile, symtag);
if ((isbranch && !disturb_branch_tags) ||
(!isbranch && disturb_branch_tags))
{
if (!quiet)
error(0, 0,
"Not removing %s tag `%s' from `%s'%s.",
isbranch ? "branch" : "non-branch",
symtag, rcsfile->path,
isbranch ? "" : " due to `-B' option");
return (1);
}
if ((retcode = RCS_deltag(rcsfile, symtag)) != 0)
{
if (!quiet)
@ -843,6 +880,7 @@ tag_fileproc (callerdat, finfo)
if (delete_flag)
{
int isbranch;
/*
* If -d is specified, "force_tag_match" is set, so that this call to
* RCS_getversion() will return a NULL version string if the symbolic
@ -861,6 +899,20 @@ tag_fileproc (callerdat, finfo)
}
free (version);
isbranch = RCS_nodeisbranch (finfo->rcs, symtag);
if ((isbranch && !disturb_branch_tags) ||
(!isbranch && disturb_branch_tags))
{
if (!quiet)
error(0, 0,
"Not removing %s tag `%s' from `%s'%s.",
isbranch ? "branch" : "non-branch",
symtag, vers->srcfile->path,
isbranch ? "" : " due to `-B' option");
freevers_ts (&vers);
return (1);
}
if ((retcode = RCS_deltag(vers->srcfile, symtag)) != 0)
{
if (!quiet)
@ -973,6 +1025,20 @@ tag_fileproc (callerdat, finfo)
freevers_ts (&vers);
return (0);
}
else /* force_tag_move == 1 and... */
if ((isbranch && !disturb_branch_tags) ||
(!isbranch && disturb_branch_tags))
{
error(0,0, "%s: Not moving %s tag `%s' from %s to %s%s.",
finfo->fullname,
isbranch ? "branch" : "non-branch",
symtag, oversion, rev,
isbranch ? "" : " due to `-B' option");
free (oversion);
if (branch_mode) free(rev);
freevers_ts (&vers);
return (0);
}
free (oversion);
}

View File

@ -339,13 +339,22 @@ time_stamp (file)
{
struct stat sb;
char *cp;
char *ts;
char *ts = NULL;
time_t mtime = 0L;
if (CVS_LSTAT (file, &sb) < 0)
if (!CVS_LSTAT (file, &sb))
{
ts = NULL;
mtime = sb.st_mtime;
}
else
/* If it's a symlink, return whichever is the newest mtime of
the link and its target, for safety.
*/
if (!CVS_STAT (file, &sb))
{
if (mtime < sb.st_mtime)
mtime = sb.st_mtime;
}
if (mtime)
{
struct tm *tm_p;
struct tm local_tm;

85
contrib/cvs/src/version.c Normal file
View File

@ -0,0 +1,85 @@
/*
* Copyright (c) 1994 david d `zoo' zuhn
* Copyright (c) 1994 Free Software Foundation, Inc.
* Copyright (c) 1992, Brian Berliner and Jeff Polk
* Copyright (c) 1989-1992, Brian Berliner
*
* You may distribute under the terms of the GNU General Public License as
* specified in the README file that comes with this CVS source distribution.
*
* version.c - the CVS version number
*/
#include "cvs.h"
#include "version.h"
#ifdef CLIENT_SUPPORT
#ifdef SERVER_SUPPORT
char *config_string = " (client/server)\n";
#else
char *config_string = " (client)\n";
#endif
#else
#ifdef SERVER_SUPPORT
char *config_string = " (server)\n";
#else
char *config_string = "\n";
#endif
#endif
static const char *const version_usage[] =
{
"Usage: %s %s\n",
NULL
};
/*
* Output a version string for the client and server.
*
* This function will output the simple version number (for the '--version'
* option) or the version numbers of the client and server (using the 'version'
* command).
*/
int
version (argc, argv)
int argc;
char **argv;
{
int err = 0;
if (argc == -1)
usage (version_usage);
#ifdef CLIENT_SUPPORT
if (current_parsed_root && current_parsed_root->isremote)
(void) fputs ("Client: ", stdout);
#endif
/* Having the year here is a good idea, so people have
some idea of how long ago their version of CVS was
released. */
(void) fputs (version_string, stdout);
(void) fputs (config_string, stdout);
#ifdef CLIENT_SUPPORT
if (current_parsed_root && current_parsed_root->isremote)
{
(void) fputs ("Server: ", stdout);
start_server ();
if (supported_request ("version"))
send_to_server ("version\012", 0);
else
{
send_to_server ("noop\012", 0);
fputs ("(unknown)\n", stdout);
}
err = get_responses_and_close ();
}
#endif
return err;
}

View File

@ -0,0 +1,15 @@
/* -*- c -*-
*
* Copyright (c) 1992, Brian Berliner and Jeff Polk
* Copyright (c) 1989-1992, Brian Berliner
*
* You may distribute under the terms of the GNU General Public License as
* specified in the README file that comes with the CVS kit.
*/
#ifndef VERSION_H
#define VERSION_H 1
#define version_string "Concurrent Versions System (CVS) @VERSION@"
#endif /* VERSION_H */

View File

@ -178,14 +178,14 @@ wrap_send ()
and (more importantly) where we found it. */
error (0, 0, "\
-m wrapper option is not supported remotely; ignored");
send_to_server ("Argument -W\012Argument ", 0);
send_to_server (wrap_list[i]->wildCard, 0);
send_to_server (" -k '", 0);
if (wrap_list[i]->rcsOption != NULL)
{
send_to_server ("Argument -W\012Argument ", 0);
send_to_server (wrap_list[i]->wildCard, 0);
send_to_server (" -k '", 0);
send_to_server (wrap_list[i]->rcsOption, 0);
send_to_server ("'\012", 0);
}
else
send_to_server ("kv", 0);
send_to_server ("'\012", 0);
}
}
#endif /* CLIENT_SUPPORT */
@ -216,32 +216,28 @@ wrap_unparse_rcs_options (line, first_call_p)
if (first_call_p)
i = 0;
for (; i < wrap_count + wrap_tempcount; ++i)
{
if (wrap_list[i]->rcsOption != NULL)
{
*line = xmalloc (strlen (wrap_list[i]->wildCard)
+ strlen ("\t")
+ strlen (" -k '")
+ strlen (wrap_list[i]->rcsOption)
+ strlen ("'")
+ 1); /* leave room for '\0' */
strcpy (*line, wrap_list[i]->wildCard);
strcat (*line, " -k '");
strcat (*line, wrap_list[i]->rcsOption);
strcat (*line, "'");
/* We're going to miss the increment because we return, so
do it by hand. */
++i;
return;
}
if (i >= wrap_count + wrap_tempcount) {
*line = NULL;
return;
}
*line = NULL;
return;
*line = xmalloc (strlen (wrap_list[i]->wildCard)
+ strlen ("\t")
+ strlen (" -k '")
+ (wrap_list[i]->rcsOption != NULL ?
strlen (wrap_list[i]->rcsOption) : 2)
+ strlen ("'")
+ 1); /* leave room for '\0' */
strcpy (*line, wrap_list[i]->wildCard);
strcat (*line, " -k '");
if (wrap_list[i]->rcsOption != NULL)
strcat (*line, wrap_list[i]->rcsOption);
else
strcat (*line, "kv");
strcat (*line, "'");
++i;
}
#endif /* SERVER_SUPPORT || CLIENT_SUPPORT */
@ -438,7 +434,7 @@ wrap_add (line, isTemp)
case 'k':
if (e.rcsOption)
free (e.rcsOption);
e.rcsOption = xstrdup (temp);
e.rcsOption = strcmp (temp, "kv") ? xstrdup (temp) : NULL;
break;
default:
break;
@ -471,11 +467,7 @@ wrap_add_entry(e, temp)
x=(temp ? wrap_count+(wrap_tempcount++):(wrap_count++));
wrap_list[x]=(WrapperEntry *)xmalloc(sizeof(WrapperEntry));
wrap_list[x]->wildCard=e->wildCard;
wrap_list[x]->fromcvsFilter=e->fromcvsFilter;
wrap_list[x]->tocvsFilter=e->tocvsFilter;
wrap_list[x]->mergeMethod=e->mergeMethod;
wrap_list[x]->rcsOption = e->rcsOption;
*wrap_list[x]=*e;
}
/* Return 1 if the given filename is a wrapper filename */

View File

@ -51,8 +51,8 @@ static int compress_buffer_input PROTO((void *, char *, int, int, int *));
static int compress_buffer_output PROTO((void *, const char *, int, int *));
static int compress_buffer_flush PROTO((void *));
static int compress_buffer_block PROTO((void *, int));
static int compress_buffer_shutdown_input PROTO((void *));
static int compress_buffer_shutdown_output PROTO((void *));
static int compress_buffer_shutdown_input PROTO((struct buffer *));
static int compress_buffer_shutdown_output PROTO((struct buffer *));
/* Report an error from one of the zlib functions. */
@ -355,10 +355,10 @@ compress_buffer_block (closure, block)
/* Shut down an input buffer. */
static int
compress_buffer_shutdown_input (closure)
void *closure;
compress_buffer_shutdown_input (buf)
struct buffer *buf;
{
struct compress_buffer *cb = (struct compress_buffer *) closure;
struct compress_buffer *cb = (struct compress_buffer *) buf->closure;
int zstatus;
/* Pick up any trailing data, such as the checksum. */
@ -387,10 +387,10 @@ compress_buffer_shutdown_input (closure)
/* Shut down an output buffer. */
static int
compress_buffer_shutdown_output (closure)
void *closure;
compress_buffer_shutdown_output (buf)
struct buffer *buf;
{
struct compress_buffer *cb = (struct compress_buffer *) closure;
struct compress_buffer *cb = (struct compress_buffer *) buf->closure;
int zstatus, status;
do

View File

@ -1,3 +1,23 @@
2002-04-17 Derek Price <oberon@umich.edu>
* README: Replace cyclic.com with cvshome.org.
2001-09-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with automake 1.5.
2001-08-06 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated.
2001-07-04 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new Automake release candidate 1.4h.
2001-06-28 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated with new version of Automake.
2001-04-25 Derek Price <dprice@collab.net>
* Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4e from Makefile.am.
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
@ -27,7 +27,6 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
SHELL = @SHELL@
srcdir = @srcdir@
@ -48,11 +47,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -66,7 +63,6 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -78,33 +74,28 @@ AWK = @AWK@
CC = @CC@
CSH = @CSH@
DEPDIR = @DEPDIR@
ETAGS = @ETAGS@
ETAGS_INCLUDE_OPTION = @ETAGS_INCLUDE_OPTION@
EXEEXT = @EXEEXT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTALL_STRIP_PROGRAM_ENV = @INSTALL_STRIP_PROGRAM_ENV@
KRB4 = @KRB4@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PR = @PR@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
ROFF = @ROFF@
STRIP = @STRIP@
TEXI2DVI = @TEXI2DVI@
VERSION = @VERSION@
YACC = @YACC@
_am_include = @_am_include@
_am_quote = @_am_quote@
am__include = @am__include@
am__quote = @am__quote@
includeopt = @includeopt@
install_sh = @install_sh@
EXTRA_DIST = \
README .cvsignore
EXEEXT =
OBJEXT = o
subdir = tools
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/src/options.h
@ -114,15 +105,14 @@ DIST_COMMON = README ChangeLog Makefile.am Makefile.in
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu tools/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
uninstall-info-am:
tags: TAGS
TAGS:
@ -134,7 +124,11 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
@ -159,23 +153,20 @@ install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
INSTALL_PROGRAM_ENV='$(INSTALL_STRIP_PROGRAM_ENV)' install
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
clean: clean-am
clean-am: clean-generic mostlyclean-am
@ -184,11 +175,11 @@ distclean: distclean-am
distclean-am: clean-am distclean-generic
dvi:
dvi: dvi-am
dvi-am:
info:
info: info-am
info-am:
@ -196,7 +187,7 @@ install-data-am:
install-exec-am:
install-info:
install-info: install-info-am
install-man:
@ -210,19 +201,20 @@ mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-man install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
uninstall uninstall-am
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic uninstall uninstall-am uninstall-info-am
# for backwards compatibility with the old makefiles
realclean: maintainer-clean
.PHONY: realclean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -7,5 +7,5 @@ If you are looking for pcl-cvs, we'd suggest pcl-cvs version 2.x, at:
Both of the following CVS sites have a page about pcl-cvs:
http://www.loria.fr/~molli/cvs-index.html
http://www.cyclic.com/
http://cvshome.org/
They also have much information about CVS tools more generally.