summaryrefslogtreecommitdiffstats
path: root/contrib/cvs/doc
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2008-01-13 05:49:32 +0000
committerobrien <obrien@FreeBSD.org>2008-01-13 05:49:32 +0000
commit55b663837dd12bbe5836969ac2a3f052a9028ea5 (patch)
tree8d8aae4a8bb167db64e23bb7f76f39014f36d45f /contrib/cvs/doc
parent8416bda1d23bda4666a5b880a9d78eccaa640036 (diff)
downloadFreeBSD-src-55b663837dd12bbe5836969ac2a3f052a9028ea5.zip
FreeBSD-src-55b663837dd12bbe5836969ac2a3f052a9028ea5.tar.gz
Import cvs-1.11.22 onto vendor branch.
Diffstat (limited to 'contrib/cvs/doc')
-rw-r--r--contrib/cvs/doc/ChangeLog202
-rw-r--r--contrib/cvs/doc/Makefile.am67
-rw-r--r--contrib/cvs/doc/Makefile.in394
-rw-r--r--contrib/cvs/doc/cvs.167
-rw-r--r--contrib/cvs/doc/cvs.man.footer4
-rw-r--r--contrib/cvs/doc/cvs.man.header6
-rw-r--r--contrib/cvs/doc/cvs.texinfo358
-rw-r--r--contrib/cvs/doc/cvsclient.texi26
-rw-r--r--contrib/cvs/doc/mkman.pl369
-rw-r--r--contrib/cvs/doc/stamp-18
-rw-r--r--contrib/cvs/doc/stamp-vti8
-rw-r--r--contrib/cvs/doc/version-client.texi8
-rw-r--r--contrib/cvs/doc/version.texi8
13 files changed, 1190 insertions, 335 deletions
diff --git a/contrib/cvs/doc/ChangeLog b/contrib/cvs/doc/ChangeLog
index d1b0c7e..e4bd947 100644
--- a/contrib/cvs/doc/ChangeLog
+++ b/contrib/cvs/doc/ChangeLog
@@ -1,3 +1,205 @@
+2006-06-08 Derek Price <derek@ximbiot.com>
+
+ * cvsclient.texi (Requests): Add Empty-conflicts.
+
+2006-03-20 Mark D. Baushke <mdb@gnu.org>
+
+ [patch #4965]
+ * cvs.texinfo (Sticky tags, Merging and keywords)
+ (checkout options, update options): The -A switch
+ does not reset sticky -k options on modified files.
+ * cvs.1, stamp-1, stamp-vti, version.texi: Regenerated.
+
+2006-02-28 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (Editing administrative files): Import changes from Wiki.
+
+2005-12-09 Derek Price <derek@ximbiot.com>
+
+ [patch #4634]
+ * cvsclient.texi (Root request): Clarify.
+
+2005-11-10 Larry Jones <lawrence.jones@ugs.com>
+
+ * cvs.texinfo (Common options): -n no longer applies to commit.
+ (commit): Remove reference to the defunct -n option.
+ * cvs.1, stamp-vti, version.texi: Regenerated
+
+2005-10-12 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo: Remove text that created unintentional cross-references
+ in generated info files.
+
+2005-10-04 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo: s/visa versa/vice versa/. (From Wiki.)
+
+2005-09-26 Derek Price <derek@ximbiot.com>
+
+ * Makefile.am (cvs-paper.ps, cvs-paper.pdf): Remove implicit sources.
+ Add comments about why implicit rules won't work for these targets.
+ Make sure the distributed cvs-paper.pdf is created in $(srcdir). Make
+ cvs-paper.pdf directly from cvs-paper.ms to avoid building it just
+ because cvs-paper.ps is missing.
+
+ * Makefile.am (EXTRA_DIST): Restore PDFs.
+ * cvs-paper.ps: Removed.
+ * texinfo.tex: Update from GNULIB.
+
+2005-09-25 Derek Price <derek@ximbiot.com>
+
+ * Makefile.am (doc): Finish removing PSs.
+
+ * Makefile.am (EXTRA_DIST): Remove PDFs too until errors go away.
+
+ * Makefile.am (EXTRA_DIST): Dist PDFs rather than PSs.
+
+2005-09-22 Larry Jones <lawrence.jones@ugs.com>
+
+ * cvs.texinfo (rdiff options): Document -k.
+ * cvs.1, stamp-vti, version.texi: Regenerated.
+
+2005-09-20 Larry Jones <lawrence.jones@ugs.com>
+
+ * cvs.texinfo: Move summary and detail contents to the front
+ where they belong.
+
+2005-09-14 Derek Price <derek@ximbiot.com>
+
+ * Makefile.am: s#cvs.1#$(srcdir)/cvs.1#.
+
+2005-09-11 Larry Jones <lawrence.jones@ugs.com>
+
+ * cvs.texinfo (Common options): Note that -r branch for a revision
+ means the head of the branch.
+
+2005-09-10 Larry Jones <lawrence.jones@ugs.com>
+
+ * cvs.texinfo (Error messages): Add suggested messages.
+
+2005-09-09 Larry Jones <lawrence.jones@ugs.com>
+
+ * cvs.texinfo (Error messages): Add signal 11 message.
+
+2005-09-01 Derek Price <derek@ximbiot.com>
+
+ * cvs.man.footer: Update links.
+
+2005-09-01 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo: Update links and email addresses.
+
+2005-08-29 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (From scratch): Add checkout to import example, from
+ wiki.
+
+2005-08-29 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (Removing directories): Correct grammar, from wiki.
+
+2005-08-29 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (From scratch): Clarify note on `cvs add', inspired from
+ wiki.
+
+2005-08-22 Derek Price <derek@ximbiot.com>
+
+ Address bug #13882, submitted by Fred Maranhao.
+ * cvs.texinfo (log options, admin options, Invoking CVS): Add cross
+ references for clarity about possible states.
+
+2005-08-22 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (Updating a file): Add note about update -d, inspired by
+ wiki.
+
+2005-08-12 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (What is CVS?): Rephrase for clarity, imported from
+ Wiki.
+
+2005-08-02 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (What is CVS?, BUGS): s/cvshome/nongnu/. Remove
+ obsolete Pascal Molli link.
+
+2005-06-22 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (Builds): Update Gunnar Tornblom's email at his request.
+
+2005-05-03 Derek Price <derek@ximbiot.com>
+
+ * cvsclient.texi (Goals): Remove typo. Resolves cvshome issue #236.
+
+2005-05-03 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (Creating a repository): Provide xref to the remote
+ repositries section. Resolves issue #203 on cvshome.org.
+
+2005-05-03 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (Moving directories): Clarify instructions on renaming a
+ directory. Partially resolves issue #246 on cvshome.org.
+
+2005-05-03 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (update output): Use "working directory" in place of
+ "source" for clarity. Closes issue #245 on cvshome.org.
+
+2005-04-28 Derek Price <derek@ximbiot.com>
+
+ * mkman.pl: Minor changes to accomodate Perl 5.8.4. Improve
+ commenting.
+ ($nk, $ret, $debug): New globals.
+ (debug_print): New function.
+
+2005-04-14 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (Administrative files): Add "Trigger Scripts" node to
+ the menu.
+ (Trigger Scripts, Trigger Script Security): New nodes.
+ (syntax): Move under Trigger scripts node.
+ (commit files, taginfo): Rewrite to reference Trigger Script node.
+
+2005-04-06 Derek Price <derek@ximbiot.com>
+
+ * Makefile.am (MAINTAINERCLEANFILES): Add cvs.1.
+ (cvs.1): Create intermediate file so that the original isn't emptied on
+ error.
+
+2005-01-31 Derek Price <derek@ximbiot.com>
+
+ * Makefile.am, cvs.man.header, cvs.texinfo: Update copyright notices.
+
+2005-01-29 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (log options): Note quirky interaction of log options.
+ (Suggestion from Dan Peterson <dbpete@aol.com>.)
+
+2004-10-29 Mark D. Baushke <mdb@cvshome.org>
+
+ * cvs.texinfo (Common options): The -r TAG option works with
+ the cvs annotate command.
+ (Original patch from Ville Skytta <scop@cvshome.org>.)
+
+2004-09-25 Derek Price <derek@ximbiot.com>
+
+ * mkman.in: Move to...
+ * mkman.pl: ...here.
+ * Makefile.am (cvs.1): mkman is in build dir, not src dir.
+
+2004-07-17 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (Update imports, import): Add notes on requirement that
+ release tags be unique.
+ (Original patch from Ilya N. Golubev <gin@mo.msk.ru>.)
+
+2004-06-10 Derek Price <derek@ximbiot.com>
+
+ * cvs.texinfo (commit files): Remove reference to the obsolete -i
+ module option.
+
2004-05-28 Derek Price <derek@ximbiot.com>
* cvs.texinfo (Global options): Remove reference to global -l option.
diff --git a/contrib/cvs/doc/Makefile.am b/contrib/cvs/doc/Makefile.am
index 087cc30..38d719c 100644
--- a/contrib/cvs/doc/Makefile.am
+++ b/contrib/cvs/doc/Makefile.am
@@ -1,8 +1,10 @@
## Process this file with automake to produce Makefile.in
# Makefile for GNU CVS documentation (excluding man pages - see ../man).
-# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+#
+# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+#
+# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+# and others.
# 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
@@ -15,7 +17,7 @@
# GNU General Public License for more details.
info_TEXINFOS = cvs.texinfo cvsclient.texi
-man_MANS = cvs.1
+man_MANS = $(srcdir)/cvs.1
PSS = \
cvs.ps \
@@ -24,7 +26,7 @@ PSS = \
PDFS = \
cvs.pdf \
- cvs-paper.pdf \
+ $(srcdir)/cvs-paper.pdf \
cvsclient.pdf
TXTS = \
@@ -32,25 +34,27 @@ TXTS = \
cvsclient.txt
EXTRA_DIST = \
- $(PSS) \
.cvsignore \
ChangeLog.fsf \
RCSFILES \
mdate-sh \
- cvs.1 \
+ $(srcdir)/cvs.1 \
cvs-paper.ms \
cvs.man.header \
- cvs.man.footer
+ cvs.man.footer \
+ $(PDFS)
+
+MOSTLYCLEANFILES =
-MOSTLYCLEANFILES = \
+CLEANFILES = \
+ $(PSS) \
$(TXTS)
-# These Automake generates MOSTLYCLEAN targets for PostScripts genersted from
-# TEXINFOS, but it shouldn't when those files are in EXTRA_DIST
MAINTAINERCLEANFILES = \
- $(PSS)
+ $(PDFS) \
+ $(srcdir)/cvs.1
-doc: info ps
+doc: info pdf
.PHONY: doc
txt: $(TXTS)
@@ -65,21 +69,36 @@ dvi: cvs.dvi cvsclient.dvi
cvs.txt: cvs.texinfo $(srcdir)/version.texi
cvsclient.txt: cvsclient.texi $(srcdir)/version-client.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 (hyperlinks and such) than the usual texinfo source.
+# The cvs-paper.pdf target needs to be very specific so that the other PDFs get
+# generated correctly. If a more generic .ps.pdf implicit target is defined,
+# and cvs.ps is made before cvs.pdf, then cvs.pdf can be generated from the
+# .ps.pdf target and the PS source, which contains less information (hyperlinks
+# and such) than the usual texinfo source.
+#
+# It is possible that an implicit .ms.ps target could be safely defined. I
+# don't recall looking into it.
cvs-paper.ps: cvs-paper.ms
- $(ROFF) -t -p -ms -Tps $< > $@-t
- mv $@-t $@
+ $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
+ cp cvs-paper.ps-t $@
+ -@rm -f cvs-paper.ps-t
+
+# This rule introduces some redundancy, but `make distcheck' requires that
+# Nothing in $(srcdir) be rebuilt, and this will always be rebuilt when it
+# is dependant on cvs-paper.ps and cvs-paper.ps isn't distributed.
+$(srcdir)/cvs-paper.pdf: cvs-paper.ms
+ $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
+ ps2pdf cvs-paper.ps-t cvs-paper.pdf-t
+ cp cvs-paper.pdf-t $@
+ -@rm -f cvs-paper.pdf-t cvs-paper.ps-t
-cvs-paper.pdf: cvs-paper.ps
- ps2pdf $< $@
+MOSTLYCLEANFILES += cvs-paper.pdf-t cvs-paper.ps-t
# Targets to build a man page from cvs.texinfo.
-cvs.1: @MAINTAINER_MODE_TRUE@ mkman cvs.man.header cvs.texinfo cvs.man.footer
- ./mkman $(srcdir)/cvs.man.header $(srcdir)/cvs.texinfo \
- $(srcdir)/cvs.man.footer >$@
+$(srcdir)/cvs.1: @MAINTAINER_MODE_TRUE@ mkman cvs.man.header cvs.texinfo cvs.man.footer
+ $(PERL) ./mkman $(srcdir)/cvs.man.header $(srcdir)/cvs.texinfo \
+ $(srcdir)/cvs.man.footer >cvs.tmp
+ cp cvs.tmp $(srcdir)/cvs.1
+ -@rm -f cvs.tmp
# texinfo based targets automake neglects to include
SUFFIXES = .txt
diff --git a/contrib/cvs/doc/Makefile.in b/contrib/cvs/doc/Makefile.in
index 0c2a682..ad31da2 100644
--- a/contrib/cvs/doc/Makefile.in
+++ b/contrib/cvs/doc/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,9 +15,11 @@
@SET_MAKE@
# Makefile for GNU CVS documentation (excluding man pages - see ../man).
-# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+#
+# Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+#
+# Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+# and others.
# 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
@@ -28,7 +30,6 @@
# 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.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -36,7 +37,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -50,6 +50,35 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/mkman.pl $(srcdir)/stamp-1 $(srcdir)/stamp-vti \
+ $(srcdir)/version-client.texi $(srcdir)/version.texi ChangeLog \
+ mdate-sh texinfo.tex
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = mkman
+SOURCES =
+DIST_SOURCES =
+INFO_DEPS = $(srcdir)/cvs.info $(srcdir)/cvsclient.info
+am__TEXINFO_TEX_DIR = $(srcdir)
+DVIS = cvs.dvi cvsclient.dvi
+HTMLS = cvs.html cvsclient.html
+TEXINFOS = cvs.texinfo cvsclient.texi
+TEXI2PDF = $(TEXI2DVI) --pdf --batch
+MAKEINFOHTML = $(MAKEINFO) --html
+AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+DVIPS = dvips
+am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man_MANS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
@@ -119,6 +148,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
datadir = @datadir@
@@ -132,6 +163,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -139,167 +171,232 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
+with_default_rsh = @with_default_rsh@
info_TEXINFOS = cvs.texinfo cvsclient.texi
-man_MANS = cvs.1
-
+man_MANS = $(srcdir)/cvs.1
PSS = \
cvs.ps \
cvs-paper.ps \
cvsclient.ps
-
PDFS = \
cvs.pdf \
- cvs-paper.pdf \
+ $(srcdir)/cvs-paper.pdf \
cvsclient.pdf
-
TXTS = \
cvs.txt \
cvsclient.txt
-
EXTRA_DIST = \
- $(PSS) \
.cvsignore \
ChangeLog.fsf \
RCSFILES \
mdate-sh \
- cvs.1 \
+ $(srcdir)/cvs.1 \
cvs-paper.ms \
cvs.man.header \
- cvs.man.footer
+ cvs.man.footer \
+ $(PDFS)
-
-MOSTLYCLEANFILES = \
+MOSTLYCLEANFILES = cvs-paper.pdf-t cvs-paper.ps-t
+CLEANFILES = \
+ $(PSS) \
$(TXTS)
-
-# These Automake generates MOSTLYCLEAN targets for PostScripts genersted from
-# TEXINFOS, but it shouldn't when those files are in EXTRA_DIST
MAINTAINERCLEANFILES = \
- $(PSS)
+ $(PDFS) \
+ $(srcdir)/cvs.1
# texinfo based targets automake neglects to include
SUFFIXES = .txt
-subdir = doc
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = mkman
-DIST_SOURCES =
-am__TEXINFO_TEX_DIR = $(srcdir)
-INFO_DEPS = cvs.info cvsclient.info
-DVIS = cvs.dvi cvsclient.dvi
-TEXINFOS = cvs.texinfo cvsclient.texi
-
-NROFF = nroff
-MANS = $(man_MANS)
-DIST_COMMON = $(srcdir)/Makefile.in ChangeLog Makefile.am mdate-sh \
- mkman.in stamp-1 stamp-vti texinfo.tex version-client.texi \
- version.texi
all: all-am
.SUFFIXES:
-.SUFFIXES: .txt .dvi .info .pdf .ps .texi .texinfo .txi
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+.SUFFIXES: .txt .dvi .html .info .pdf .ps .texi .texinfo .txi
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
-Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-mkman: $(top_builddir)/config.status mkman.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+mkman: $(top_builddir)/config.status $(srcdir)/mkman.pl
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
.texinfo.info:
- @rm -f $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
- -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
+ restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ am__cwd=`pwd` && cd $(srcdir) && \
+ rm -rf $$backupdir && mkdir $$backupdir && \
+ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ done; \
+ else :; fi && \
+ cd "$$am__cwd"; \
+ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $@ $<; \
+ then \
+ rc=0; \
+ cd $(srcdir); \
+ else \
+ rc=$$?; \
+ cd $(srcdir) && \
+ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ fi; \
+ rm -rf $$backupdir; exit $$rc
.texinfo.dvi:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2DVI) `test -f '$<' || echo '$(srcdir)/'`$<
+ $(TEXI2DVI) $<
.texinfo.pdf:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2PDF) `test -f '$<' || echo '$(srcdir)/'`$<
-cvs.info: cvs.texinfo version.texi
-cvs.dvi: cvs.texinfo version.texi
-cvs.pdf: cvs.texinfo version.texi
-version.texi: @MAINTAINER_MODE_TRUE@ stamp-vti
-stamp-vti: cvs.texinfo $(top_srcdir)/configure
+ $(TEXI2PDF) $<
+
+.texinfo.html:
+ rm -rf $(@:.html=.htp)
+ if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $(@:.html=.htp) $<; \
+ then \
+ rm -rf $@; \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+ else \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+ exit 1; \
+ fi
+$(srcdir)/cvs.info: cvs.texinfo $(srcdir)/version.texi
+cvs.dvi: cvs.texinfo $(srcdir)/version.texi
+cvs.pdf: cvs.texinfo $(srcdir)/version.texi
+cvs.html: cvs.texinfo $(srcdir)/version.texi
+$(srcdir)/version.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-vti
+$(srcdir)/stamp-vti: cvs.texinfo $(top_srcdir)/configure
@(dir=.; test -f ./cvs.texinfo || dir=$(srcdir); \
set `$(SHELL) $(srcdir)/mdate-sh $$dir/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 version.texi \
- || (echo "Updating version.texi"; \
- cp vti.tmp version.texi)
+ @cmp -s vti.tmp $(srcdir)/version.texi \
+ || (echo "Updating $(srcdir)/version.texi"; \
+ cp vti.tmp $(srcdir)/version.texi)
-@rm -f vti.tmp
- @cp version.texi $@
+ @cp $(srcdir)/version.texi $@
mostlyclean-vti:
-rm -f vti.tmp
maintainer-clean-vti:
-@MAINTAINER_MODE_TRUE@ -rm -f stamp-vti version.texi
+@MAINTAINER_MODE_TRUE@ -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
.texi.info:
- @rm -f $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
- -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
+ restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ am__cwd=`pwd` && cd $(srcdir) && \
+ rm -rf $$backupdir && mkdir $$backupdir && \
+ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ done; \
+ else :; fi && \
+ cd "$$am__cwd"; \
+ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $@ $<; \
+ then \
+ rc=0; \
+ cd $(srcdir); \
+ else \
+ rc=$$?; \
+ cd $(srcdir) && \
+ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ fi; \
+ rm -rf $$backupdir; exit $$rc
.texi.dvi:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2DVI) `test -f '$<' || echo '$(srcdir)/'`$<
+ $(TEXI2DVI) $<
.texi.pdf:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2PDF) `test -f '$<' || echo '$(srcdir)/'`$<
-cvsclient.info: cvsclient.texi version-client.texi
-cvsclient.dvi: cvsclient.texi version-client.texi
-cvsclient.pdf: cvsclient.texi version-client.texi
-version-client.texi: @MAINTAINER_MODE_TRUE@ stamp-1
-stamp-1: cvsclient.texi $(top_srcdir)/configure
+ $(TEXI2PDF) $<
+
+.texi.html:
+ rm -rf $(@:.html=.htp)
+ if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $(@:.html=.htp) $<; \
+ then \
+ rm -rf $@; \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+ else \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+ exit 1; \
+ fi
+$(srcdir)/cvsclient.info: cvsclient.texi $(srcdir)/version-client.texi
+cvsclient.dvi: cvsclient.texi $(srcdir)/version-client.texi
+cvsclient.pdf: cvsclient.texi $(srcdir)/version-client.texi
+cvsclient.html: cvsclient.texi $(srcdir)/version-client.texi
+$(srcdir)/version-client.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-1
+$(srcdir)/stamp-1: cvsclient.texi $(top_srcdir)/configure
@(dir=.; test -f ./cvsclient.texi || dir=$(srcdir); \
set `$(SHELL) $(srcdir)/mdate-sh $$dir/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 version-client.texi \
- || (echo "Updating version-client.texi"; \
- cp 1.tmp version-client.texi)
+ @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 version-client.texi $@
+ @cp $(srcdir)/version-client.texi $@
mostlyclean-1:
-rm -f 1.tmp
maintainer-clean-1:
-@MAINTAINER_MODE_TRUE@ -rm -f stamp-1 version-client.texi
-
-TEXI2PDF = $(TEXI2DVI) --pdf --batch
-DVIPS = dvips
+@MAINTAINER_MODE_TRUE@ -rm -f $(srcdir)/stamp-1 $(srcdir)/version-client.texi
.dvi.ps:
+ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
$(DVIPS) -o $@ $<
uninstall-info-am:
- $(PRE_UNINSTALL)
+ @$(PRE_UNINSTALL)
@if (install-info --version && \
install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile"; \
- install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile; \
+ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+ install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
done; \
else :; fi
@$(NORMAL_UNINSTALL)
@@ -307,15 +404,19 @@ uninstall-info-am:
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
- (if cd $(DESTDIR)$(infodir); then \
- echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \
+ (if cd "$(DESTDIR)$(infodir)"; then \
+ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
else :; fi); \
done
dist-info: $(INFO_DEPS)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
list='$(INFO_DEPS)'; \
for base in $$list; do \
+ case $$base in \
+ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
if test -f $$base; then d=.; else d=$(srcdir); fi; \
for file in $$d/$$base*; do \
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
@@ -325,13 +426,14 @@ dist-info: $(INFO_DEPS)
done
mostlyclean-aminfo:
- -rm -f cvs.aux cvs.cp cvs.cps cvs.fn cvs.fns cvs.ky cvs.kys cvs.log cvs.pg \
- cvs.pgs cvs.tmp cvs.toc cvs.tp cvs.tps cvs.vr cvs.vrs cvs.dvi \
- cvs.pdf cvs.ps cvsclient.aux cvsclient.cp cvsclient.cps \
- cvsclient.fn cvsclient.fns cvsclient.ky cvsclient.kys \
- cvsclient.log cvsclient.pg cvsclient.pgs cvsclient.tmp \
- cvsclient.toc cvsclient.tp cvsclient.tps cvsclient.vr \
- cvsclient.vrs cvsclient.dvi cvsclient.pdf cvsclient.ps
+ -rm -rf cvs.aux cvs.cp cvs.cps cvs.fn cvs.fns cvs.ky cvs.kys cvs.log cvs.pg \
+ cvs.pgs cvs.tmp cvs.toc cvs.tp cvs.tps cvs.vr cvs.vrs \
+ cvs.dvi cvs.pdf cvs.ps cvs.html cvsclient.aux cvsclient.cp \
+ cvsclient.cps cvsclient.fn cvsclient.fns cvsclient.ky \
+ cvsclient.kys cvsclient.log cvsclient.pg cvsclient.pgs \
+ cvsclient.tmp cvsclient.toc cvsclient.tp cvsclient.tps \
+ cvsclient.vr cvsclient.vrs cvsclient.dvi cvsclient.pdf \
+ cvsclient.ps cvsclient.html
maintainer-clean-aminfo:
@list='$(INFO_DEPS)'; for i in $$list; do \
@@ -339,11 +441,9 @@ maintainer-clean-aminfo:
echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
done
-
-man1dir = $(mandir)/man1
install-man1: $(man1_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(man1dir)
+ test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
@@ -362,8 +462,8 @@ install-man1: $(man1_MANS) $(man_MANS)
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
done
uninstall-man1:
@$(NORMAL_UNINSTALL)
@@ -383,8 +483,8 @@ uninstall-man1:
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
- rm -f $(DESTDIR)$(man1dir)/$$inst; \
+ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
+ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
done
tags: TAGS
TAGS:
@@ -392,12 +492,9 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/$(srcdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
@@ -409,7 +506,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -430,9 +527,10 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile $(INFO_DEPS) $(MANS)
-
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(man1dir)
+ for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
@@ -451,9 +549,10 @@ mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -467,10 +566,12 @@ distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
-dvi: dvi-am
-
dvi-am: $(DVIS)
+html: html-am
+
+html-am: $(HTMLS)
+
info: info-am
info-am: $(INFO_DEPS)
@@ -483,17 +584,21 @@ install-info: install-info-am
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(infodir)
- @list='$(INFO_DEPS)'; \
+ test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ list='$(INFO_DEPS)'; \
for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
$$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
if test -f $$ifile; then \
relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
- echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \
- $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \
+ echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
+ $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
else : ; fi; \
done; \
done
@@ -503,8 +608,8 @@ install-info-am: $(INFO_DEPS)
list='$(INFO_DEPS)'; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile";\
- install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile || :;\
+ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
done; \
else : ; fi
install-man: install-man1
@@ -535,19 +640,19 @@ uninstall-am: uninstall-info-am uninstall-man
uninstall-man: uninstall-man1
.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-man1 install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-1 \
- maintainer-clean-aminfo maintainer-clean-generic \
- maintainer-clean-vti mostlyclean mostlyclean-1 \
- mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
- pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \
- uninstall-man uninstall-man1
-
-
-doc: info ps
+ distclean distclean-generic distdir dvi dvi-am html html-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-man1 install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-1 maintainer-clean-aminfo \
+ maintainer-clean-generic maintainer-clean-vti mostlyclean \
+ mostlyclean-1 mostlyclean-aminfo mostlyclean-generic \
+ mostlyclean-vti pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am uninstall-man uninstall-man1
+
+
+doc: info pdf
.PHONY: doc
txt: $(TXTS)
@@ -562,21 +667,34 @@ dvi: cvs.dvi cvsclient.dvi
cvs.txt: cvs.texinfo $(srcdir)/version.texi
cvsclient.txt: cvsclient.texi $(srcdir)/version-client.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 (hyperlinks and such) than the usual texinfo source.
+# The cvs-paper.pdf target needs to be very specific so that the other PDFs get
+# generated correctly. If a more generic .ps.pdf implicit target is defined,
+# and cvs.ps is made before cvs.pdf, then cvs.pdf can be generated from the
+# .ps.pdf target and the PS source, which contains less information (hyperlinks
+# and such) than the usual texinfo source.
+#
+# It is possible that an implicit .ms.ps target could be safely defined. I
+# don't recall looking into it.
cvs-paper.ps: cvs-paper.ms
- $(ROFF) -t -p -ms -Tps $< > $@-t
- mv $@-t $@
-
-cvs-paper.pdf: cvs-paper.ps
- ps2pdf $< $@
+ $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
+ cp cvs-paper.ps-t $@
+ -@rm -f cvs-paper.ps-t
+
+# This rule introduces some redundancy, but `make distcheck' requires that
+# Nothing in $(srcdir) be rebuilt, and this will always be rebuilt when it
+# is dependant on cvs-paper.ps and cvs-paper.ps isn't distributed.
+$(srcdir)/cvs-paper.pdf: cvs-paper.ms
+ $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
+ ps2pdf cvs-paper.ps-t cvs-paper.pdf-t
+ cp cvs-paper.pdf-t $@
+ -@rm -f cvs-paper.pdf-t cvs-paper.ps-t
# Targets to build a man page from cvs.texinfo.
-cvs.1: @MAINTAINER_MODE_TRUE@ mkman cvs.man.header cvs.texinfo cvs.man.footer
- ./mkman $(srcdir)/cvs.man.header $(srcdir)/cvs.texinfo \
- $(srcdir)/cvs.man.footer >$@
+$(srcdir)/cvs.1: @MAINTAINER_MODE_TRUE@ mkman cvs.man.header cvs.texinfo cvs.man.footer
+ $(PERL) ./mkman $(srcdir)/cvs.man.header $(srcdir)/cvs.texinfo \
+ $(srcdir)/cvs.man.footer >cvs.tmp
+ cp cvs.tmp $(srcdir)/cvs.1
+ -@rm -f cvs.tmp
.texinfo.txt:
$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
--no-headers -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
diff --git a/contrib/cvs/doc/cvs.1 b/contrib/cvs/doc/cvs.1
index 57253e5..9fbc087 100644
--- a/contrib/cvs/doc/cvs.1
+++ b/contrib/cvs/doc/cvs.1
@@ -2,9 +2,9 @@
.\" cvs.man.header, cvs.texinfo, & cvs.man.footer files. Please make changes
.\" there. A full copyright & license notice may also be found in cvs.texinfo.
.\"
-.\" Copyright 2004 The Free Software Foundation,
-.\" Derek R. Price,
-.\" & Ximbiot <http://ximbiot.com>
+.\" Man page autogeneration, including this header file, is
+.\" Copyright 2004-2005 The Free Software Foundation, Inc.,
+.\" Derek R. Price, & Ximbiot <http://ximbiot.com>.
.\"
.\" This documentation is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
@@ -428,7 +428,7 @@ option as in other commands. (Other command options,
which are listed with the individual commands, may have
different behavior from one \fBcvs\fR command to the other).
.SP
-\fBNote: the \fBhistory\fB command is an exception; it supports
+\fBThe \fBhistory\fB command is an exception; it supports
many options that conflict even with these standard options.\fR
.SP
.IX "Dates"
@@ -561,7 +561,7 @@ file, and continues to use it with future update
commands on the same file until you specify otherwise.
.SP
The \fB-k\fR option is available with the \fBadd\fR,
-\fBcheckout\fR, \fBdiff\fR, \fBimport\fR and
+\fBcheckout\fR, \fBdiff\fR, \fBrdiff\fR, \fBimport\fR and
\fBupdate\fR commands.
.SP
.IP "" 0
@@ -594,10 +594,10 @@ Do not run any tag program. (A program can be
specified to run in the modules
database (see node `modules\(aq in the CVS manual); this option bypasses it).
.SP
-\fBNote: this is not the same as the \fBcvs -n\fB
+\fBThis is not the same as the \fBcvs -n\fB
program option, which you can specify to the left of a cvs command!\fR
.SP
-Available with the \fBcheckout\fR, \fBcommit\fR, \fBexport\fR,
+Available with the \fBcheckout\fR, \fBexport\fR,
and \fBrtag\fR commands.
.SP
.IP "" 0
@@ -644,17 +644,20 @@ on sticky tags/dates, see node `Sticky tags\(aq in the CVS manual).
The tag can be either a symbolic or numeric tag, as
described in see node `Tags\(aq in the CVS manual, or the name of a branch, as
described in see node `Branching and merging\(aq in the CVS manual.
+When a command expects a specific revision,
+the name of a branch is interpreted as the most recent
+revision on that branch.
.SP
Specifying the \fB-q\fR global option along with the
\fB-r\fR command option is often useful, to suppress
the warning messages when the \fBrcs\fR file
does not contain the specified tag.
.SP
-\fBNote: this is not the same as the overall \fBcvs -r\fB option,
+\fBThis is not the same as the overall \fBcvs -r\fB option,
which you can specify to the left of a \fBcvs\fB command!\fR
.SP
-\fB-r\fR is available with the \fBcheckout\fR, \fBcommit\fR,
-\fBdiff\fR, \fBhistory\fR, \fBexport\fR, \fBrdiff\fR,
+\fB-r\fR is available with the \fBannotate\fR, \fBcheckout\fR,
+\fBcommit\fR, \fBdiff\fR, \fBhistory\fR, \fBexport\fR, \fBrdiff\fR,
\fBrtag\fR, and \fBupdate\fR commands.
.SP
.IP "" 0
@@ -984,10 +987,10 @@ it is created. The state is visible in the output from
\fIcvs log\fR (see node `log\(aq in the CVS manual), and in the
\fB$\fP\fPLog$\fR and \fB$\fP\fPState$\fR keywords
(see node `Keyword substitution\(aq in the CVS manual). Note that \fBcvs\fR
-uses the \fBdead\fR state for its own purposes; to
+uses the \fBdead\fR state for its own purposes (see node `Attic\(aq in the CVS manual); to
take a file to or from the \fBdead\fR state use
-commands like \fBcvs remove\fR and \fBcvs add\fR, not
-\fBcvs admin -s\fR.
+commands like \fBcvs remove\fR and \fBcvs add\fR
+(see node `Adding and removing\(aq in the CVS manual), not \fBcvs admin -s\fR.
.SP
.IP "" 0
\fB-t[\fIfile\fB]\fR
@@ -1283,6 +1286,7 @@ options with \fBcheckout\fR:
\fB-A\fR
.IP "" 2
Reset any sticky tags, dates, or \fB-k\fR options.
+Does not reset sticky \fB-k\fR options on modified files.
See see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
.SP
.IP "" 0
@@ -1393,7 +1397,7 @@ $ cvs checkout -D yesterday tc
.IX "commit (subcommand)"
.SP
.IP "\(bu" 2
-Synopsis: commit [-lnRf] [-m \(aqlog_message\(aq |
+Synopsis: commit [-lRf] [-m \(aqlog_message\(aq |
-F file] [-r revision] [files\&...]
.IP "\(bu" 2
Requires: working directory, repository.
@@ -2562,7 +2566,7 @@ various formats.
Logging must be enabled by creating the file
\fB$CVSROOT/CVSROOT/history\fR.
.SP
-\fBNote: \fBhistory\fB uses \fB-f\fB, \fB-l\fB,
+\fB\fBhistory\fB uses \fB-f\fB, \fB-l\fB,
\fB-n\fB, and \fB-p\fB in ways that conflict with the
normal use inside \fBcvs\fB (see node `Common options\(aq in the CVS manual).\fR
.SP
@@ -2807,8 +2811,10 @@ At least three arguments are required.
\fIrepository\fR is needed to identify the collection
of source. \fIvendortag\fR is a tag for the entire
branch (e.g., for 1.1.1). You must also specify at
-least one \fIreleasetag\fR to identify the files at
-the leaves created each time you execute \fBimport\fR.
+least one \fIreleasetag\fR to uniquely identify the files at
+the leaves created each time you execute \fBimport\fR. The
+\fIreleasetag\fR should be new, not previously existing in the
+repository file, and uniquely identify the imported release,
.SP
Note that \fBimport\fR does \fInot\fR change the
directory in which you invoke it. In particular, it
@@ -2939,13 +2945,18 @@ message are printed. All times are displayed in
Coordinated Universal Time (UTC). (Other parts of
\fBcvs\fR print times in the local timezone).
.SP
-\fBNote: \fBlog\fB uses \fB-R\fB in a way that conflicts
+\fB\fBlog\fB uses \fB-R\fB in a way that conflicts
with the normal use inside \fBcvs\fB (see node `Common options\(aq in the CVS manual).\fR
.SP
.SH "log options"
.SP
By default, \fBlog\fR prints all information that is
-available. All other options restrict the output.
+available. All other options restrict the output. Note that the revision
+selection options (\fB-d\fR, \fB-r\fR, \fB-s\fR, and \fB-w\fR) have no
+effect, other than possibly causing a search for files in Attic directories,
+when used in conjunction with the options that restrict the output to only
+\fBlog\fR header fields (\fB-b\fR, \fB-h\fR, \fB-R\fR, and \fB-t\fR)
+unless the \fB-S\fR option is also specified.
.SP
.IP "" 0
\fB-b\fR
@@ -3103,7 +3114,10 @@ Suppress the header if no revisions are selected.
.IP "" 2
Print information about revisions whose state
attributes match one of the states given in the
-comma-separated list \fIstates\fR.
+comma-separated list \fIstates\fR. Individual states may
+be any text string, though \fBcvs\fR commonly only uses two
+states, \fBExp\fR and \fBdead\fR. See see node `admin options\(aq in the CVS manual
+for more information.
.SP
.IP "" 0
\fB-t\fR
@@ -3180,6 +3194,12 @@ If no matching revision is found, retrieve the most
recent revision (instead of ignoring the file).
.SP
.IP "" 0
+\fB-k \fIkflag\fB\fR
+.IP "" 2
+Process keywords according to \fIkflag\fR. See
+see node `Keyword substitution\(aq in the CVS manual.
+.SP
+.IP "" 0
\fB-l\fR
.IP "" 2
Local; don\(aqt descend subdirectories.
@@ -3484,6 +3504,7 @@ These special options are also available with
\fB-A\fR
.IP "" 2
Reset any sticky tags, dates, or \fB-k\fR options.
+Does not reset sticky \fB-k\fR options on modified files.
See see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
.SP
.IP "" 0
@@ -3572,7 +3593,7 @@ by one character indicating the status of the file:
.IP "" 2
The file was brought up to date with respect to the
repository. This is done for any file that exists in
-the repository but not in your source, and for files
+the repository but not in your working directory, and for files
that you haven\(aqt changed but are not the most recent
versions available in the repository.
.SP
@@ -3690,9 +3711,7 @@ to CVS, development of CVS, and more, see:
.SP
.PD 0
.IP "" 4
-.B http://cvshome.org
-.IP "" 4
-.B http://www.loria.fr/~molli/cvs-index.html
+.B http://cvs.nongnu.org
.in -1i
.SP
.BR ci ( 1 ),
diff --git a/contrib/cvs/doc/cvs.man.footer b/contrib/cvs/doc/cvs.man.footer
index ff3938a..fe3f6b4 100644
--- a/contrib/cvs/doc/cvs.man.footer
+++ b/contrib/cvs/doc/cvs.man.footer
@@ -42,9 +42,7 @@ to CVS, development of CVS, and more, see:
.SP
.PD 0
.IP "" 4
-.B http://cvshome.org
-.IP "" 4
-.B http://www.loria.fr/~molli/cvs-index.html
+.B http://cvs.nongnu.org
.in -1i
.SP
.BR ci ( 1 ),
diff --git a/contrib/cvs/doc/cvs.man.header b/contrib/cvs/doc/cvs.man.header
index 839269e..cbc4f7d 100644
--- a/contrib/cvs/doc/cvs.man.header
+++ b/contrib/cvs/doc/cvs.man.header
@@ -2,9 +2,9 @@
.\" cvs.man.header, cvs.texinfo, & cvs.man.footer files. Please make changes
.\" there. A full copyright & license notice may also be found in cvs.texinfo.
.\"
-.\" Copyright 2004 The Free Software Foundation,
-.\" Derek R. Price,
-.\" & Ximbiot <http://ximbiot.com>
+.\" Man page autogeneration, including this header file, is
+.\" Copyright 2004-2005 The Free Software Foundation, Inc.,
+.\" Derek R. Price, & Ximbiot <http://ximbiot.com>.
.\"
.\" This documentation is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
diff --git a/contrib/cvs/doc/cvs.texinfo b/contrib/cvs/doc/cvs.texinfo
index 507359f..6c7afce 100644
--- a/contrib/cvs/doc/cvs.texinfo
+++ b/contrib/cvs/doc/cvs.texinfo
@@ -4,13 +4,14 @@
@macro copyleftnotice
@noindent
Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ 2001, 2002, 2003, 2004, 2005
+ Free Software Foundation, Inc.
@multitable @columnfractions .12 .88
@item Portions
-@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004
+@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005
Derek R. Price,
-@item @tab Copyright @copyright{} 2002, 2003, 2004
+@item @tab Copyright @copyright{} 2002, 2003, 2004, 2005
Ximbiot @url{http://ximbiot.com},
@item @tab Copyright @copyright{} 1992, 1993, 1999 Signum Support AB,
@item @tab and Copyright @copyright{} others.
@@ -127,6 +128,10 @@ approved by the Free Software Foundation.
@copyleftnotice
@end titlepage
+@summarycontents
+
+@contents
+
@comment ================================================================
@comment The real text starts here
@comment ================================================================
@@ -232,7 +237,7 @@ versions.
on the same project. It is all too easy to overwrite
each others' changes unless you are extremely careful.
Some editors, like @sc{gnu} Emacs, try to make sure that
-the same file is never modified by two people at the
+two people never modify the same file at the
same time. Unfortunately, if someone is using another
editor, that safeguard will not work. @sc{cvs} solves this problem
by insulating the different developers from each other. Every
@@ -261,21 +266,20 @@ free download from the Internet. For more information
on downloading @sc{cvs} and other @sc{cvs} topics, see:
@example
-@url{http://www.cvshome.org/}
-@url{http://www.loria.fr/~molli/cvs-index.html}
+@url{http://cvs.nongnu.org/}
@end example
@cindex Mailing list
@cindex List, mailing list
@cindex Newsgroups
-There is a mailing list, known as @email{info-cvs@@gnu.org},
+There is a mailing list, known as @email{info-cvs@@nongnu.org},
devoted to @sc{cvs}. To subscribe or
unsubscribe
write to
-@email{info-cvs-request@@gnu.org}.
+@email{info-cvs-request@@nongnu.org}.
If you prefer a Usenet group, there is a one-way mirror (posts to the email
-list are usually sent to the news group, but not visa versa) of
-@email{info-cvs@@gnu.org} at @url{news:gnu.cvs.help}. The right
+list are usually sent to the news group, but not vice versa) of
+@email{info-cvs@@nongnu.org} at @url{news:gnu.cvs.help}. The right
Usenet group for posts is @url{news:comp.software.config-mgmt} which is for
@sc{cvs} discussions (along with other configuration
management systems). In the future, it might be
@@ -290,11 +294,11 @@ if there is sufficient @sc{cvs} traffic on
@c would need to take a more comprehensive look at the
@c whole comp.software.config-mgmt.* hierarchy).
-You can also subscribe to the @email{bug-cvs@@gnu.org} mailing list,
+You can also subscribe to the @email{bug-cvs@@nongnu.org} mailing list,
described in more detail in @ref{BUGS}. To subscribe
-send mail to @email{bug-cvs-request@@gnu.org}. There is a two-way
+send mail to @email{bug-cvs-request@@nongnu.org}. There is a two-way
Usenet mirror (posts to the Usenet group are usually sent to the email list and
-visa versa) of @email{bug-cvs@@gnu.org} named @url{news:gnu.cvs.bug}.
+vice versa) of @email{bug-cvs@@nongnu.org} named @url{news:gnu.cvs.bug}.
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@node What is CVS not?
@@ -1805,7 +1809,15 @@ It is possible to commit an erroneous administrative
file. You can often fix the error and check in a new
revision, but sometimes a particularly bad error in the
administrative file makes it impossible to commit new
-revisions.
+revisions. If and when this happens, you can correct
+the problem by temporarily copying a corrected administrative file
+directly into the @code{$CVSROOT/CVSROOT} repository directory,
+then committing the same correction via a checkout of the @file{CVSROOT}
+module. It is important that the correction also be made via the
+checked out copy, or the next checkout and commit to the
+<code>CVSROOT</code> module will overwrite the correction that was
+copied directly into the repository, possibly breaking things in such
+a way as to prevent commits again.
@c @xref{Bad administrative files} for a hint
@c about how to solve such situations.
@c -- administrative file checking--
@@ -1866,6 +1878,13 @@ and server1, to update everything else.
@cindex Creating a repository
@cindex Setting up a repository
+This section describes how to set up a @sc{cvs} repository for any
+sort of access method. After completing the setup described in this
+section, you should be able to access your @sc{cvs} repository immediately
+via the local access method and several remote access methods. For
+more information on setting up remote access to the repository you create
+in this section, please read the section on @xref{Remote repositories}.
+
To set up a @sc{cvs} repository, first choose the
machine and disk on which you want to store the
revision history of the source files. CPU and memory
@@ -3178,8 +3197,13 @@ $ cvs import -m "Created directory structure" yoyodyne/@var{dir} yoyo start
This will add yoyodyne/@var{dir} as a directory under
@code{$CVSROOT}.
-Then, use @code{add} to add files (and new directories)
-as they appear.
+Use @code{checkout} to get the new project. Then, use @code{add}
+to add files (and new directories) as needed.
+
+@example
+$ cd ..
+$ cvs co yoyodyne/@var{dir}
+@end example
Check that the permissions @sc{cvs} sets on the
directories inside @code{$CVSROOT} are reasonable.
@@ -3817,7 +3841,8 @@ The sticky tags will remain on your working files until
you delete them with @samp{cvs update -A}. The
@samp{-A} option merges local changes into the version of the
file from the head of the trunk, removing any sticky tags,
-dates, or options. See @ref{update} for more on the operation
+dates, or options (other than sticky @samp{-k} options on locally
+modified files). See @ref{update} for more on the operation
of @code{cvs update}.
@cindex Sticky date
@@ -4605,6 +4630,13 @@ for this is to release the working directory after the merge has been
committed and check it out again.
@end ignore
+As a result of using @samp{-kk} during the merge, each file examined by the
+update will have @samp{-kk} set as sticky options. Running @code{update -A}
+will clear the sticky options on unmodified files, but it will not clear
+the sticky options on modified files. To get back to the default keyword
+substitution for modified files, you must commit the results of the merge
+and then run @code{update -A}.
+
@c ---------------------------------------------------------------------
@node Recursive behavior
@chapter Recursive behavior
@@ -4971,7 +5003,7 @@ later merge the removals to another branch if you want
@cindex Removing directories
@cindex Directories, removing
-In concept removing directories is somewhat similar to
+In concept, removing directories is somewhat similar to
removing files---you want the directory to not exist in
your current working directories, but you also want to
be able to retrieve old releases in which the directory
@@ -4998,7 +5030,7 @@ removing it.
@c need for -P and so that a file can be a directory in
@c one revision and a regular file in another.
Note that @samp{-P} is implied by the @samp{-r} or @samp{-D}
-options of @code{checkout}. This way
+options of @code{checkout}. This way,
@sc{cvs} will be able to correctly create the directory
or not depending on whether the particular version you
are checking out contains any files in that directory.
@@ -5197,9 +5229,9 @@ like this:
@enumerate
@item
Inform everyone who has a checked out copy of the directory that the
-directory will be renamed. They should commit all
-their changes, and remove their working copies,
-before you take the steps below.
+directory will be renamed. They should commit all their changes in all their
+copies of the project containing the directory to be removed, and remove
+all their working copies of said project, before you take the steps below.
@item
Rename the directory inside the repository.
@@ -5938,10 +5970,12 @@ these options, see @ref{Invoking CVS}.
@cindex Merging a file
@cindex Update, introduction
-When you want to update or merge a file, use the @code{update}
+When you want to update or merge a file, use the @code{cvs update -d}
command. For files that are not up to date this is roughly equivalent
to a @code{checkout} command: the newest revision of the file is
-extracted from the repository and put in your working directory.
+extracted from the repository and put in your working directory. The
+@code{-d} option, not necessary with @code{checkout}, tells @sc{cvs}
+that you wish it to create directories added by other developers.
Your modifications to a file are never lost when you
use @code{update}. If no newer revision exists,
@@ -6978,8 +7012,10 @@ each working directory copy of a file also has a
substitution mode. The former is set by the @samp{-k}
option to @code{cvs add} and @code{cvs admin}; the
latter is set by the @samp{-k} or @samp{-A} options to @code{cvs
-checkout} or @code{cvs update}. @code{cvs diff} also
-has a @samp{-k} option. For some examples,
+checkout} or @code{cvs update}.
+@code{cvs diff} and @code{cvs rdiff} also
+have @samp{-k} options.
+For some examples,
see @ref{Binary files}, and @ref{Merging and keywords}.
@c The fact that -A is overloaded to mean both reset
@c sticky options and reset sticky tags/dates is
@@ -7198,6 +7234,9 @@ $ cd wdiff-0.05
$ cvs import -m "Import of FSF v. 0.05" fsf/wdiff FSF_DIST WDIFF_0_05
@end example
+@strong{WARNING: If you use a release tag that already exists in one of the
+repository archives, files removed by an import may not be detected.}
+
For files that have not been modified locally, the newly created
revision becomes the head revision. If you have made local
changes, @code{import} will warn you that you must merge the changes
@@ -7409,7 +7448,7 @@ for other files to access source files from a central
location. Many people have come up with some such a
@c two such people are paul@sander.cupertino.ca.us (for
@c a previous employer)
-@c and gtornblo@senet.abb.se (spicm and related tools),
+@c and gunnar.tornblom@se.abb.com (spicm and related tools),
@c but as far as I know
@c no one has nicely packaged or released such a system (or
@c instructions for constructing one).
@@ -7909,7 +7948,7 @@ option as in other commands. (Other command options,
which are listed with the individual commands, may have
different behavior from one @sc{cvs} command to the other).
-@strong{Note: the @samp{history} command is an exception; it supports
+@strong{The @samp{history} command is an exception; it supports
many options that conflict even with these standard options.}
@table @code
@@ -8131,7 +8170,7 @@ file, and continues to use it with future update
commands on the same file until you specify otherwise.
The @samp{-k} option is available with the @code{add},
-@code{checkout}, @code{diff}, @code{import} and
+@code{checkout}, @code{diff}, @code{rdiff}, @code{import} and
@code{update} commands.
@item -l
@@ -8158,10 +8197,10 @@ Do not run any tag program. (A program can be
specified to run in the modules
database (@pxref{modules}); this option bypasses it).
-@strong{Note: this is not the same as the @samp{cvs -n}
+@strong{This is not the same as the @samp{cvs -n}
program option, which you can specify to the left of a cvs command!}
-Available with the @code{checkout}, @code{commit}, @code{export},
+Available with the @code{checkout}, @code{export},
and @code{rtag} commands.
@item -P
@@ -8224,17 +8263,20 @@ on sticky tags/dates, @pxref{Sticky tags}).
The tag can be either a symbolic or numeric tag, as
described in @ref{Tags}, or the name of a branch, as
described in @ref{Branching and merging}.
+When a command expects a specific revision,
+the name of a branch is interpreted as the most recent
+revision on that branch.
Specifying the @samp{-q} global option along with the
@samp{-r} command option is often useful, to suppress
the warning messages when the @sc{rcs} file
does not contain the specified tag.
-@strong{Note: this is not the same as the overall @samp{cvs -r} option,
+@strong{This is not the same as the overall @samp{cvs -r} option,
which you can specify to the left of a @sc{cvs} command!}
-@samp{-r} is available with the @code{checkout}, @code{commit},
-@code{diff}, @code{history}, @code{export}, @code{rdiff},
+@samp{-r} is available with the @code{annotate}, @code{checkout},
+@code{commit}, @code{diff}, @code{history}, @code{export}, @code{rdiff},
@code{rtag}, and @code{update} commands.
@item -W
@@ -8539,10 +8581,10 @@ it is created. The state is visible in the output from
@var{cvs log} (@pxref{log}), and in the
@samp{$@splitrcskeyword{Log}$} and @samp{$@splitrcskeyword{State}$} keywords
(@pxref{Keyword substitution}). Note that @sc{cvs}
-uses the @code{dead} state for its own purposes; to
+uses the @code{dead} state for its own purposes (@pxref{Attic}); to
take a file to or from the @code{dead} state use
-commands like @code{cvs remove} and @code{cvs add}, not
-@code{cvs admin -s}.
+commands like @code{cvs remove} and @code{cvs add}
+(@pxref{Adding and removing}), not @code{cvs admin -s}.
@item -t[@var{file}]
Useful with @sc{cvs}. Write descriptive text from the
@@ -8835,6 +8877,7 @@ options with @code{checkout}:
@table @code
@item -A
Reset any sticky tags, dates, or @samp{-k} options.
+Does not reset sticky @samp{-k} options on modified files.
See @ref{Sticky tags}, for more information on sticky tags/dates.
@item -c
@@ -8932,7 +8975,7 @@ $ cvs checkout -D yesterday tc
@itemize @bullet
@item
-Synopsis: commit [-lnRf] [-m 'log_message' |
+Synopsis: commit [-lRf] [-m 'log_message' |
-F file] [-r revision] [files@dots{}]
@item
Requires: working directory, repository.
@@ -9872,7 +9915,7 @@ various formats.
Logging must be enabled by creating the file
@file{$CVSROOT/CVSROOT/history}.
-@strong{Note: @code{history} uses @samp{-f}, @samp{-l},
+@strong{@code{history} uses @samp{-f}, @samp{-l},
@samp{-n}, and @samp{-p} in ways that conflict with the
normal use inside @sc{cvs} (@pxref{Common options}).}
@@ -10091,8 +10134,10 @@ At least three arguments are required.
@var{repository} is needed to identify the collection
of source. @var{vendortag} is a tag for the entire
branch (e.g., for 1.1.1). You must also specify at
-least one @var{releasetag} to identify the files at
-the leaves created each time you execute @code{import}.
+least one @var{releasetag} to uniquely identify the files at
+the leaves created each time you execute @code{import}. The
+@var{releasetag} should be new, not previously existing in the
+repository file, and uniquely identify the imported release,
@c I'm not completely sure this belongs here. But
@c we need to say it _somewhere_ reasonably obvious; it
@@ -10247,7 +10292,7 @@ Coordinated Universal Time (UTC). (Other parts of
@c client then communicates to the server, is the
@c right solution.
-@strong{Note: @code{log} uses @samp{-R} in a way that conflicts
+@strong{@code{log} uses @samp{-R} in a way that conflicts
with the normal use inside @sc{cvs} (@pxref{Common options}).}
@menu
@@ -10260,7 +10305,12 @@ with the normal use inside @sc{cvs} (@pxref{Common options}).}
@appendixsubsec log options
By default, @code{log} prints all information that is
-available. All other options restrict the output.
+available. All other options restrict the output. Note that the revision
+selection options (@code{-d}, @code{-r}, @code{-s}, and @code{-w}) have no
+effect, other than possibly causing a search for files in Attic directories,
+when used in conjunction with the options that restrict the output to only
+@code{log} header fields (@code{-b}, @code{-h}, @code{-R}, and @code{-t})
+unless the @code{-S} option is also specified.
@table @code
@item -b
@@ -10391,7 +10441,10 @@ Suppress the header if no revisions are selected.
@item -s @var{states}
Print information about revisions whose state
attributes match one of the states given in the
-comma-separated list @var{states}.
+comma-separated list @var{states}. Individual states may
+be any text string, though @sc{cvs} commonly only uses two
+states, @samp{Exp} and @samp{dead}. See @ref{admin options}
+for more information.
@item -t
Print the same as @samp{-h}, plus the descriptive text.
@@ -10473,6 +10526,10 @@ Use the most recent revision no later than @var{date}.
If no matching revision is found, retrieve the most
recent revision (instead of ignoring the file).
+@item -k @var{kflag}
+Process keywords according to @var{kflag}. See
+@ref{Keyword substitution}.
+
@item -l
Local; don't descend subdirectories.
@@ -10746,6 +10803,7 @@ These special options are also available with
@table @code
@item -A
Reset any sticky tags, dates, or @samp{-k} options.
+Does not reset sticky @samp{-k} options on modified files.
See @ref{Sticky tags}, for more information on sticky tags/dates.
@item -C
@@ -10826,7 +10884,7 @@ by one character indicating the status of the file:
@item U @var{file}
The file was brought up to date with respect to the
repository. This is done for any file that exists in
-the repository but not in your source, and for files
+the repository but not in your working directory, and for files
that you haven't changed but are not the most recent
versions available in the repository.
@@ -11074,7 +11132,8 @@ Delete revisions from the repository. See
Run quietly; do not print diagnostics.
@item -s@var{state}[:@var{rev}]
-Set the state.
+Set the state. See @ref{admin options} for more information on possible
+states.
@c Does not work for client/server CVS
@item -t
@@ -11853,6 +11912,8 @@ file, which defines the modules inside the repository.
@menu
* modules:: Defining modules
* Wrappers:: Specify binary-ness based on file name
+* Trigger Scripts:: Some notes on the commit support files and
+ taginfo, referenced below.
* commit files:: The commit support files (commitinfo,
verifymsg, editinfo, loginfo)
* taginfo:: Verifying/Logging tags
@@ -12349,59 +12410,26 @@ cvs import -I ! -W "*.exe -k 'b'" first-dir vendortag reltag
@c One catch--"cvs diff" will not invoke the wrappers
@c (probably a CVS bug, although I haven't thought it out).
-@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-@node commit files
-@appendixsec The commit support files
-@cindex Committing, administrative support files
-
-The @samp{-i} flag in the @file{modules} file can be
-used to run a certain program whenever files are
-committed (@pxref{modules}). The files described in
-this section provide other, more flexible, ways to run
-programs whenever something is committed.
-
-There are three kinds of programs that can be run on
-commit. They are specified in files in the repository,
-as described below. The following table summarizes the
-file names and the purpose of the corresponding
-programs.
-
-@table @file
-@item commitinfo
-The program is responsible for checking that the commit
-is allowed. If it exits with a non-zero exit status
-the commit will be aborted.
-
-@item verifymsg
-The specified program is used to evaluate the log message,
-and possibly verify that it contains all required
-fields. This is most useful in combination with the
-@file{rcsinfo} file, which can hold a log message
-template (@pxref{rcsinfo}).
-
-@item editinfo
-The specified program is used to edit the log message,
-and possibly verify that it contains all required
-fields. This is most useful in combination with the
-@file{rcsinfo} file, which can hold a log message
-template (@pxref{rcsinfo}). (obsolete)
-
-@item loginfo
-The specified program is called when the commit is
-complete. It receives the log message and some
-additional information and can store the log message in
-a file, or mail it to appropriate persons, or maybe
-post it to a local newsgroup, or@dots{} Your
-imagination is the limit!
-@end table
+@c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+@node Trigger Scripts
+@appendixsec The Trigger Scripts
+@cindex Info files
+@cindex Trigger scripts
+
+Several of the administrative files support triggers, or the launching external
+scripts or programs at specific times before or after particular events. The
+individual files are discussed in the later sections, @ref{commit files} and
+@ref{taginfo}, but some of the common elements are discussed here.
+
+All the trigger scripts are launched in a copy of the user sandbox being
+committed, on the server, in client-server mode. In local mode, the scripts
+are actually launched directly from the user sandbox directory being committed.
+For most intents and purposes, the same scripts can be run in both locations
+without alteration.
@menu
-* syntax:: The common syntax
-* commitinfo:: Pre-commit checking
-* verifymsg:: How are log messages evaluated?
-* editinfo:: Specifying how log messages are created
- (obsolete)
-* loginfo:: Where should log messages be sent?
+* syntax:: The common syntax
+* Trigger Script Security:: Trigger script security
@end menu
@c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
@@ -12466,6 +12494,78 @@ is used as a file name or command-line as appropriate.
@c unambiguous but there is nothing like an example to
@c confirm people's understanding of this sort of thing).
+@c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+@node Trigger Script Security
+@appendixsubsec Security and the Trigger Scripts
+@cindex Info files, security
+@cindex Trigger scripts, security
+
+Security is a huge subject, and implementing a secure system is a non-trivial
+task. This section will barely touch on all the issues involved, but it is
+well to note that, as with any script you will be allowing an untrusted
+user to run on your server, there are measures you can take to help prevent
+your trigger scripts from being abused.
+
+For instance, since the CVS trigger scripts all run in a copy of the user's
+sandbox on the server, a naively coded Perl trigger script which attempts to
+use a Perl module that is not installed on the system can be hijacked by any
+user with commit access who is checking in a file with the correct name. Other
+scripting languages may be vulnerable to similar hacks.
+
+One way to make a script more secure, at least with Perl, is to use scripts
+which invoke the @code{-T}, or "taint-check" switch on their @code{#!} line.
+In the most basic terms, this causes Perl to avoid running code that may have
+come from an external source. Please run the @code{perldoc perlsec} command
+for more on Perl security. Again, other languages may implement other security
+verification hooks which look more or less like Perl's "taint-check" mechanism.
+
+@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+@node commit files
+@appendixsec The commit support files
+@cindex Committing, administrative support files
+
+There are three kinds of trigger scripts (@pxref{Trigger Scripts}) that can be
+run at various times during a commit. They are specified in files in the
+repository, as described below. The following table summarizes the
+file names and the purpose of the corresponding programs.
+
+@table @file
+@item commitinfo
+The program is responsible for checking that the commit
+is allowed. If it exits with a non-zero exit status
+the commit will be aborted.
+
+@item verifymsg
+The specified program is used to evaluate the log message,
+and possibly verify that it contains all required
+fields. This is most useful in combination with the
+@file{rcsinfo} file, which can hold a log message
+template (@pxref{rcsinfo}).
+
+@item editinfo
+The specified program is used to edit the log message,
+and possibly verify that it contains all required
+fields. This is most useful in combination with the
+@file{rcsinfo} file, which can hold a log message
+template (@pxref{rcsinfo}). (obsolete)
+
+@item loginfo
+The specified program is called when the commit is
+complete. It receives the log message and some
+additional information and can store the log message in
+a file, or mail it to appropriate persons, or maybe
+post it to a local newsgroup, or@dots{} Your
+imagination is the limit!
+@end table
+
+@menu
+* commitinfo:: Pre-commit checking
+* verifymsg:: How are log messages evaluated?
+* editinfo:: Specifying how log messages are created
+ (obsolete)
+* loginfo:: Where should log messages be sent?
+@end menu
+
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@node commitinfo
@appendixsubsec Commitinfo
@@ -12694,7 +12794,7 @@ RereadLogAfterVerify=always
@cindex Per-module editor
@cindex Log messages, editing
-@strong{Note: The @file{editinfo} feature has been
+@strong{The @file{editinfo} feature has been
rendered obsolete. To set a default editor for log
messages use the @code{CVSEDITOR}, @code{EDITOR} environment variables
(@pxref{Environment variables}) or the @samp{-e} global
@@ -13046,9 +13146,9 @@ directory.
The @file{taginfo} file defines programs to execute
when someone executes a @code{tag} or @code{rtag}
command. The @file{taginfo} file has the standard form
-for administrative files (@pxref{syntax}),
+for trigger scripts (@pxref{Trigger Scripts}),
where each line is a regular expression
-followed by a command to execute. The arguments passed
+followed by a command to execute (@pxref{syntax}). The arguments passed
to the command are, in order, the @var{tagname},
@var{operation} (@code{add} for @code{tag},
@code{mov} for @code{tag -F}, and @code{del} for
@@ -13490,7 +13590,7 @@ that the file should be checked with the file system
@samp{stat()} function to see if it has changed (see warning below)
before rereading. The default value is @samp{always}.
-@strong{Note: the `stat' mode can cause CVS to pause for up to
+@strong{The `stat' mode can cause CVS to pause for up to
one extra second per directory committed. This can be less IO and
CPU intensive but is not recommended for use with large repositories}
@@ -14092,6 +14192,19 @@ logged in as "root". (You can disable this option by passing the
On some systems this means editing the appropriate @file{config.h} file
before building @sc{cvs}.)
+@item Terminated with fatal signal 11
+This message usually indicates that @sc{cvs} (the server, if you're
+using client/server mode) has run out of (virtual) memory.
+Although @sc{cvs} tries to catch the error and issue a more meaningful
+message, there are many circumstances where that is not possible.
+If you appear to have lots of memory available to the system,
+the problem is most likely that you're running into a system-wide
+limit on the amount of memory a single process can use or a
+similar process-specific limit.
+The mechanisms for displaying and setting such limits vary from
+system to system, so you'll have to consult an expert for your
+particular system if you don't know how to do that.
+
@item Too many arguments!
This message is typically printed by the @file{log.pl}
script which is in the @file{contrib} directory in the
@@ -14182,9 +14295,21 @@ vi $*
exit 0
@end example
-@c "warning: foo was lost" and "no longer pertinent" (both normal).
-@c Would be nice to write these up--they are
-@c potentially confusing for the new user.
+@item cvs update: warning: @var{file} was lost
+This means that the working copy of @var{file} has been deleted
+but it has not been removed from @sc{cvs}.
+This is nothing to be concerned about,
+the update will just recreate the local file from the repository.
+(This is a convenient way to discard local changes to a file:
+just delete it and then run @code{cvs update}.)
+
+@item cvs update: warning: @var{file} is not (any longer) pertinent
+This means that the working copy of @var{file} has been deleted,
+it has not been removed from @sc{cvs} in the current working directory,
+but it has been removed from @sc{cvs} in some other working directory.
+This is nothing to be concerned about,
+the update would have removed the local file anyway.
+
@end table
@node Connection
@@ -14449,12 +14574,11 @@ distribution. It contains much more information on the
process of submitting fixes.
@item
-There may be resources on the net which can help. Two
-good places to start are:
+There may be resources on the net which can help. A
+good place to start is:
@example
-@url{http://www.cvshome.org}
-@url{http://www.loria.fr/~molli/cvs-index.html}
+@url{http://cvs.nongnu.org/}
@end example
If you are so inspired, increasing the information
@@ -14467,7 +14591,7 @@ page on mailing lists or newsgroups when the subject
came up.
@item
-It is also possible to report bugs to @email{bug-cvs@@gnu.org}.
+It is also possible to report bugs to @email{bug-cvs@@nongnu.org}.
Note that someone may or may not want to do anything
with your bug report---if you need a solution consider
one of the options mentioned above. People probably do
@@ -14476,20 +14600,20 @@ in consequences and/or easy to fix, however. You can
also increase your odds by being as clear as possible
about the exact nature of the bug and any other
relevant information. The way to report bugs is to
-send email to @email{bug-cvs@@gnu.org}. Note
-that submissions to @email{bug-cvs@@gnu.org} may be distributed
+send email to @email{bug-cvs@@nongnu.org}. Note
+that submissions to @email{bug-cvs@@nongnu.org} may be distributed
under the terms of the @sc{gnu} Public License, so if
you don't like this, don't submit them. There is
usually no justification for sending mail directly to
one of the @sc{cvs} maintainers rather than to
-@email{bug-cvs@@gnu.org}; those maintainers who want to hear
-about such bug reports read @email{bug-cvs@@gnu.org}. Also note
+@email{bug-cvs@@nongnu.org}; those maintainers who want to hear
+about such bug reports read @email{bug-cvs@@nongnu.org}. Also note
that sending a bug report to other mailing lists or
newsgroups is @emph{not} a substitute for sending it to
-@email{bug-cvs@@gnu.org}. It is fine to discuss @sc{cvs} bugs on
+@email{bug-cvs@@nongnu.org}. It is fine to discuss @sc{cvs} bugs on
whatever forum you prefer, but there are not
necessarily any maintainers reading bug reports sent
-anywhere except @email{bug-cvs@@gnu.org}.
+anywhere except @email{bug-cvs@@nongnu.org}.
@end itemize
@cindex Known bugs in this manual or CVS
@@ -14507,10 +14631,6 @@ comprehensive, detailed list of known bugs.
@printindex cp
-@summarycontents
-
-@contents
-
@bye
Local Variables:
diff --git a/contrib/cvs/doc/cvsclient.texi b/contrib/cvs/doc/cvsclient.texi
index edb27af..b6123ae 100644
--- a/contrib/cvs/doc/cvsclient.texi
+++ b/contrib/cvs/doc/cvsclient.texi
@@ -82,7 +82,7 @@ It does not depend on NFS, rdist, etc.
@item
Providing a reliable transport is outside this protocol. The protocol
expects a reliable transport that is transparent (that is, there is no
-translation of characters, including characters such as such as
+translation of characters, including characters such as
linefeeds or carriage returns), and can transmit all 256 octets (for
example for proper handling of binary files, compression, and
encryption). The encoding of characters specified by the protocol (the
@@ -535,12 +535,13 @@ Here are the requests:
@table @code
@item Root @var{pathname} \n
Response expected: no. Tell the server which @code{CVSROOT} to use.
-Note that @var{pathname} is a local directory and @emph{not} a fully
-qualified @code{CVSROOT} variable. @var{pathname} must
-already exist; if creating a new root, use the @code{init} request, not
-@code{Root}. @var{pathname} does not include the hostname of the
-server, how to access the server, etc.; by the time the CVS protocol is
-in use, connection, authentication, etc., are already taken care of.
+Note that @var{pathname} is @emph{not} a fully qualified @code{CVSROOT}
+variable, but only the local directory part of it. @var{pathname} must
+already exist on the server; if creating a new root, use the @code{init}
+request, not @code{Root}. Again, @var{pathname} @emph{does not} include
+the hostname of the server, how to access the server, etc.; by the time
+the CVS protocol is in use, connection, authentication, etc., are
+already taken care of.
The @code{Root} request must be sent only once, and it must be sent
before any requests other than @code{Valid-responses},
@@ -871,6 +872,15 @@ in this document, servers must support this request (although it need
not do anything) and clients must issue it.
The @code{Root} request need not have been previously sent.
+@item Empty-conflicts \n
+Response expected: yes. This request is an alias for @code{noop}. Its
+presence in the list of @code{valid-requests} is intended to be used as a
+placeholder to alert the client that the server does not require the contents
+of files with conflicts that have not been modified since the merge, for
+operations other than diff. It was a bug in pre 1.11.22 & pre 1.12.14 servers
+that the contents of files with conflicts was required for the server to
+acknowledge the existence of the conflicts.
+
@item Notify @var{filename} \n
Response expected: no.
Tell the server that an @code{edit} or @code{unedit} command has taken
@@ -2014,7 +2024,7 @@ working directory, and the meaning of sending @code{Entries} without
A number of enhancements are possible. Also see the file @sc{todo} in
the @sc{cvs} source distribution, which has further ideas concerning
various aspects of @sc{cvs}, some of which impact the protocol.
-Similarly, the @code{http://www.cvshome.org} site, in particular the
+Similarly, the @code{http://cvs.nongnu.org} site, in particular the
@cite{Development} pages.
@itemize @bullet
diff --git a/contrib/cvs/doc/mkman.pl b/contrib/cvs/doc/mkman.pl
new file mode 100644
index 0000000..ecc2ea1
--- /dev/null
+++ b/contrib/cvs/doc/mkman.pl
@@ -0,0 +1,369 @@
+#! @PERL@
+#
+# Generate a man page from sections of a Texinfo manual.
+#
+# Copyright 2004 The Free Software Foundation,
+# Derek R. Price,
+# & Ximbiot <http://ximbiot.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.
+
+
+
+# Need Perl 5.005 or greater for re 'eval'.
+require 5.005;
+
+# The usual.
+use strict;
+use IO::File;
+
+
+
+###
+### GLOBALS
+###
+my $texi_num = 0; # Keep track of how many texinfo files have been encountered.
+my @parent; # This needs to be global to be used inside of a regex later.
+my $nk; # Ditto.
+my $ret; # The RE match Type, used in debug prints.
+my $debug = 0; # Debug mode?
+
+
+
+###
+### FUNCTIONS
+###
+sub debug_print
+{
+ print @_ if $debug;
+}
+
+
+
+sub keyword_mode
+{
+ my ($keyword, $file) = @_;
+
+ return "\\fR"
+ if $keyword =~ /^(|r|t)$/;
+ return "\\fB"
+ if $keyword =~ /^(strong|sc|code|file|samp)$/;
+ return "\\fI"
+ if $keyword =~ /^(emph|var|dfn)$/;
+ die "no handler for keyword \`$keyword', found at line $. of file \`$file'\n";
+}
+
+
+
+# Return replacement for \@$keyword{$content}.
+sub do_keyword
+{
+ my ($file, $parent, $keyword, $content) = @_;
+
+ return "see node \`$content\\(aq in the CVS manual"
+ if $keyword =~ /^(p?x)?ref$/;
+ return "\\fP\\fP$content"
+ if $keyword =~ /^splitrcskeyword$/;
+
+ my $endmode = keyword_mode $parent;
+ my $startmode = keyword_mode $keyword, $file;
+
+ return "$startmode$content$endmode";
+}
+
+
+
+###
+### MAIN
+###
+for my $file (@ARGV)
+{
+ my $fh = new IO::File "< $file"
+ or die "Failed to open file \`$file': $!";
+
+ if ($file !~ /\.(texinfo|texi|txi)$/)
+ {
+ print stderr "Passing \`$file' through unprocessed.\n";
+ # Just cat any file that doesn't look like a Texinfo source.
+ while (my $line = $fh->getline)
+ {
+ print $line;
+ }
+ next;
+ }
+
+ print stderr "Processing \`$file'.\n";
+ $texi_num++;
+ my $gotone = 0;
+ my $inblank = 0;
+ my $indent = 0;
+ my $inexample = 0;
+ my $inmenu = 0;
+ my $intable = 0;
+ my $last_header = "";
+ my @table_headers;
+ my @table_footers;
+ my $table_header = "";
+ my $table_footer = "";
+ my $last;
+ while ($_ = $fh->getline)
+ {
+ if (!$gotone && /^\@c ----- START MAN $texi_num -----$/)
+ {
+ $gotone = 1;
+ next;
+ }
+
+ # Skip ahead until our man section.
+ next unless $gotone;
+
+ # If we find the end tag we are done.
+ last if /^\@c ----- END MAN $texi_num -----$/;
+
+ # Need to do this everywhere. i.e., before we print example
+ # lines, since literal back slashes can appear there too.
+ s/\\/\\\\/g;
+ s/^\./\\&./;
+ s/([\s])\./$1\\&./;
+ s/'/\\(aq/g;
+ s/`/\\`/g;
+ s/(?<!-)---(?!-)/\\(em/g;
+ s/\@bullet({}|\b)/\\(bu/g;
+ s/\@dots({}|\b)/\\&.../g;
+
+ # Examples should be indented and otherwise untouched
+ if (/^\@example$/)
+ {
+ $indent += 2;
+ print qq{.SP\n.PD 0\n};
+ $inexample = 1;
+ next;
+ }
+ if ($inexample)
+ {
+ if (/^\@end example$/)
+ {
+ $indent -= 2;
+ print qq{\n.PD\n.IP "" $indent\n};
+ $inexample = 0;
+ next;
+ }
+ if (/^[ ]*$/)
+ {
+ print ".SP\n";
+ next;
+ }
+
+ # Preserve the newline.
+ $_ = qq{.IP "" $indent\n} . $_;
+ }
+
+ # Compress blank lines into a single line. This and its
+ # corresponding skip purposely bracket the @menu and comment
+ # removal so that blanks on either side of a menu are
+ # compressed after the menu is removed.
+ if (/^[ ]*$/)
+ {
+ $inblank = 1;
+ next;
+ }
+
+ # Not used
+ if (/^\@(ignore|menu)$/)
+ {
+ $inmenu++;
+ next;
+ }
+ # Delete menu contents.
+ if ($inmenu)
+ {
+ next unless /^\@end (ignore|menu)$/;
+ $inmenu--;
+ next;
+ }
+
+ # Remove comments
+ next if /^\@c(omment)?\b/;
+
+ # Ignore includes.
+ next if /^\@include\b/;
+
+ # It's okay to ignore this keyword - we're not using any
+ # first-line indent commands at all.
+ next if s/^\@noindent\s*$//;
+
+ # @need is only significant in printed manuals.
+ next if s/^\@need\s+.*$//;
+
+ # If we didn't hit the previous check and $inblank is set, then
+ # we just finished with some number of blanks. Print the man
+ # page blank symbol before continuing processing of this line.
+ if ($inblank)
+ {
+ print ".SP\n";
+ $inblank = 0;
+ }
+
+ # Chapter headers.
+ $last_header = $1 if s/^\@node\s+(.*)$/.SH "$1"/;
+ if (/^\@appendix\w*\s+(.*)$/)
+ {
+ my $content = $1;
+ $content =~ s/^$last_header(\\\(em|\s+)?//;
+ next if $content =~ /^\s*$/;
+ s/^\@appendix\w*\s+.*$/.SS "$content"/;
+ }
+
+ # Tables are similar to examples, except we need to handle the
+ # keywords.
+ if (/^\@(itemize|table)(\s+(.*))?$/)
+ {
+ $indent += 2;
+ push @table_headers, $table_header;
+ push @table_footers, $table_footer;
+ my $content = $3;
+ if (/^\@itemize/)
+ {
+ my $bullet = $content;
+ $table_header = qq{.IP "$bullet" $indent\n};
+ $table_footer = "";
+ }
+ else
+ {
+ my $hi = $indent - 2;
+ $table_header = qq{.IP "" $hi\n};
+ $table_footer = qq{\n.IP "" $indent};
+ if ($content)
+ {
+ $table_header .= "$content\{";
+ $table_footer = "\}$table_footer";
+ }
+ }
+ $intable++;
+ next;
+ }
+
+ if ($intable)
+ {
+ if (/^\@end (itemize|table)$/)
+ {
+ $table_header = pop @table_headers;
+ $table_footer = pop @table_footers;
+ $indent -= 2;
+ $intable--;
+ next;
+ }
+ s/^\@itemx?(\s+(.*))?$/$table_header$2$table_footer/;
+ # Fall through so the rest of the table lines are
+ # processed normally.
+ }
+
+ # Index entries.
+ s/^\@cindex\s+(.*)$/.IX "$1"/;
+
+ $_ = "$last$_" if $last;
+ undef $last;
+
+ # Trap keywords
+ $nk = qr/
+ \@(\w+)\{
+ (?{ debug_print "$ret MATCHED $&\nPUSHING $1\n";
+ push @parent, $1; }) # Keep track of the last keyword
+ # keyword we encountered.
+ ((?>
+ [^{}]|(?<=\@)[{}] # Non-braces...
+ | # ...or...
+ (??{ $nk }) # ...nested keywords...
+ )*) # ...without backtracking.
+ \}
+ (?{ debug_print "$ret MATCHED $&\nPOPPING ",
+ pop (@parent), "\n"; }) # Lose track of the current keyword.
+ /x;
+
+ $ret = "m//";
+ if (/\@\w+\{(?:[^{}]|(?<=\@)[{}]|(??{ $nk }))*$/)
+ {
+ # If there is an opening keyword on this line without a
+ # close bracket, we need to find the close bracket
+ # before processing the line. Set $last to append the
+ # next line in the next pass.
+ $last = $_;
+ next;
+ }
+
+ # Okay, the following works somewhat counter-intuitively. $nk
+ # processes the whole line, so @parent gets loaded properly,
+ # then, since no closing brackets have been found for the
+ # outermost matches, the innermost matches match and get
+ # replaced first.
+ #
+ # For example:
+ #
+ # Processing the line:
+ #
+ # yadda yadda @code{yadda @var{foo} yadda @var{bar} yadda}
+ #
+ # Happens something like this:
+ #
+ # 1. Ignores "yadda yadda "
+ # 2. Sees "@code{" and pushes "code" onto @parent.
+ # 3. Ignores "yadda " (backtracks and ignores "yadda yadda
+ # @code{yadda "?)
+ # 4. Sees "@var{" and pushes "var" onto @parent.
+ # 5. Sees "foo}", pops "var", and realizes that "@var{foo}"
+ # matches the overall pattern ($nk).
+ # 6. Replaces "@var{foo}" with the result of:
+ #
+ # do_keyword $file, $parent[$#parent], $1, $2;
+ #
+ # which would be "\Ifoo\B", in this case, because "var"
+ # signals a request for italics, or "\I", and "code" is
+ # still on the stack, which means the previous style was
+ # bold, or "\B".
+ #
+ # Then the while loop restarts and a similar series of events
+ # replaces "@var{bar}" with "\Ibar\B".
+ #
+ # Then the while loop restarts and a similar series of events
+ # replaces "@code{yadda \Ifoo\B yadda \Ibar\B yadda}" with
+ # "\Byadda \Ifoo\B yadda \Ibar\B yadda\R".
+ #
+ $ret = "s///";
+ @parent = ("");
+ while (s/$nk/do_keyword $file, $parent[$#parent], $1, $2/e)
+ {
+ # Do nothing except reset our last-replacement
+ # tracker - the replacement regex above is handling
+ # everything else.
+ debug_print "FINAL MATCH $&\n";
+ @parent = ("");
+ }
+
+ # Finally, unprotect texinfo special characters.
+ s/\@://g;
+ s/\@([{}])/$1/g;
+
+ # Verify we haven't left commands unprocessed.
+ die "Unprocessed command at line $. of file \`$file': "
+ . ($1 ? "$1\n" : "<EOL>\n")
+ if /^(?>(?:[^\@]|\@\@)*)\@(\w+|.|$)/;
+
+ # Unprotect @@.
+ s/\@\@/\@/g;
+
+ # And print whatever's left.
+ print $_;
+ }
+}
diff --git a/contrib/cvs/doc/stamp-1 b/contrib/cvs/doc/stamp-1
index 1517195..9db9288 100644
--- a/contrib/cvs/doc/stamp-1
+++ b/contrib/cvs/doc/stamp-1
@@ -1,4 +1,4 @@
-@set UPDATED 3 February 2004
-@set UPDATED-MONTH February 2004
-@set EDITION 1.11.17
-@set VERSION 1.11.17
+@set UPDATED 8 June 2006
+@set UPDATED-MONTH June 2006
+@set EDITION 1.11.22
+@set VERSION 1.11.22
diff --git a/contrib/cvs/doc/stamp-vti b/contrib/cvs/doc/stamp-vti
index 06b435c..8d58a7c 100644
--- a/contrib/cvs/doc/stamp-vti
+++ b/contrib/cvs/doc/stamp-vti
@@ -1,4 +1,4 @@
-@set UPDATED 27 May 2004
-@set UPDATED-MONTH May 2004
-@set EDITION 1.11.17
-@set VERSION 1.11.17
+@set UPDATED 15 May 2006
+@set UPDATED-MONTH May 2006
+@set EDITION 1.11.22
+@set VERSION 1.11.22
diff --git a/contrib/cvs/doc/version-client.texi b/contrib/cvs/doc/version-client.texi
index 1517195..9db9288 100644
--- a/contrib/cvs/doc/version-client.texi
+++ b/contrib/cvs/doc/version-client.texi
@@ -1,4 +1,4 @@
-@set UPDATED 3 February 2004
-@set UPDATED-MONTH February 2004
-@set EDITION 1.11.17
-@set VERSION 1.11.17
+@set UPDATED 8 June 2006
+@set UPDATED-MONTH June 2006
+@set EDITION 1.11.22
+@set VERSION 1.11.22
diff --git a/contrib/cvs/doc/version.texi b/contrib/cvs/doc/version.texi
index 06b435c..8d58a7c 100644
--- a/contrib/cvs/doc/version.texi
+++ b/contrib/cvs/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 27 May 2004
-@set UPDATED-MONTH May 2004
-@set EDITION 1.11.17
-@set VERSION 1.11.17
+@set UPDATED 15 May 2006
+@set UPDATED-MONTH May 2006
+@set EDITION 1.11.22
+@set VERSION 1.11.22
OpenPOWER on IntegriCloud