summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rw-r--r--contrib/cvs/README.VMS159
-rw-r--r--contrib/cvs/contrib/ccvs-rsh.pl97
-rw-r--r--contrib/cvs/contrib/pvcs_to_rcs439
-rw-r--r--contrib/cvs/diff/diagmeet.note71
-rw-r--r--contrib/cvs/doc/DIFFUTILS-2.7-BUG263
-rw-r--r--contrib/cvs/lib/getwd.c33
-rw-r--r--contrib/cvs/lib/strdup.c39
-rw-r--r--contrib/cvs/lib/strippath.c80
-rw-r--r--contrib/cvs/src/NOTES60
-rw-r--r--contrib/cvs/src/README-rm-add31
-rw-r--r--contrib/cvs/tools/pcl-cvs/ChangeLog.woods383
-rw-r--r--contrib/cvs/tools/pcl-cvs/ToDo44
12 files changed, 0 insertions, 1699 deletions
diff --git a/contrib/cvs/README.VMS b/contrib/cvs/README.VMS
deleted file mode 100644
index b32ed8f995b66..0000000000000
--- a/contrib/cvs/README.VMS
+++ /dev/null
@@ -1,159 +0,0 @@
- CVS port to VMS
-
-DISCLAIMER: This port must be considered experimental. Although
-previous versions have been in use at one large site since about
-October, 1995, and the port is believed to be quite usable, various
-VMS-specific quirks are known and the port cannot be considered as
-mature as the ports to, say, Windows NT or unix. As always, future
-progress of this port will depend on volunteer and customer interest.
-
-This port is of the CVS client only. Or in other words, the port
-implements the full set of CVS commands, but cannot access
-repositories located on the local machine. The repository must live
-on another machine (a Unix box) which runs a complete port of CVS.
-
-Most (all?) work to date has been done on OpenVMS/AXP 6.2. Other VMS
-variants might work too.
-
-You will also need GNU patch installed on your system. Here's a list
-of ftp servers which have VMS GNU resources, taken from
-
- ftp://prep.ai.mit.edu/pub/gnu/vms.README
-
- mvb.saic.com
- wuarchive.wustl.edu
- ftp.wku.edu
- ftp.spc.edu
- ftp.stacken.kth.se
-
-Please send bug reports to bug-cvs@prep.ai.mit.edu.
-
-As of CVS 1.5.something, this port passed most of the tests in
-[.src]sanity.sh. I say "most" because some tests to not apply to the
-CVS client. The tests were run by hand because the VMS POSIX shell
-was incapable of running the script. The tests that sanity.sh
-provides are not conclusive but at least provides some assurance that
-the client is usable.
-
-To compile, you will need DEC C (CC), DEC UCX, and of course DCL
-installed on your machine. Just type "@build" in the top level
-directory. This will build the sources in each subdirectory, and link
-the executable [.src]cvs.exe
-
-Copy the executable to an appropriate directory, and define the symbol "CVS"
-in a .COM file which everyone running CVS will need to run. Here's an example
-of what needs to be done.
-
-$ CVS :== $YOUR_DEVICE:[YOUR.DIRECTORY.CVS]CVS.EXE
-
-Accessing a remote repository can happen in several ways.
-
-1. pserver
-2. rsh - privileged (default)
-3. rsh - unprivileged (on VMS side)
-
-Here's how to do each of the above:
-
--------------------------------------------------------------------------------
-1. pserver. This is the preferred way. It works just as it is
-documented in the CVS manual (see the README file in the CVS
-distribution for more information on the manual).
-
--------------------------------------------------------------------------------
-2. Using CVS internal rsh support (privileged)
-
-VMS's RSH is unusable for CVS's purposes (that is, the one in UCX.
-Don't know about Multinet). However, there is code within CVS to
-emulate RSH for purposes of contacting a CVS server "in the usual way"
-via rshd. Unfortunately, this requires the VMS CVS client to be
-installed with OPER privilege, by your system administrator.
-
-RSH uses privileged ports and trusted software/hosts to determine
-which user on the client side is trying to connect. Part of this
-security is due to the fact that on VMS or UNIX, a non privileged
-process is not permitted to bind a socket to a privileged port.
-
-If rshd receives a connection on a non-privileged port, the connection is
-immediately aborted. Only connections arriving from a privileged port will
-be authenticated and served. The CVS client will therefore need privileges
-under VMS to produce such a connection.
-
-*** Please note that no careful examination has been done of the security
- implications of installing CVS with the OPER privilege. If some hole
- exists, then by doing so, you will enable users who are already on
- your system to gain unauthorized privileges ***
-
--------------------------------------------------------------------------------
-3. Using CVS internal rsh support (non-privileged)
-
-There is a workaround, but this is one case where I think the cure is worse
-than the disease. If you patch an rshd to not care that the RSH originating
-port is "non-privileged", the CVS VMS client will allow you to define the
-logical CVS_RCMD_PORT to the port number where this patched rshd will be
-listening. I leave the talk of patching rshd to the gentle reader and his/her
-friendly system administrator.
-
-If I put an entry in my /etc/services file:
-
-cvs_rcmd 4381/tcp cvs_rcmd
-
-And add a line to /etc/inetd.conf, then restart inetd via "kill -1"
-
-cvs_rcmd stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/cvs_rcmd
-
-On the VMS side, you will have to do this:
-
-$ define CVS_RCMD_PORT 4381
-
-Then run CVS in the "usual way".
-
-Note that the patched rshd will need to be invoked via inetd as root, so it can
-authenticate and _become_ the intended user, the same as the regular rshd.
-
-***Please note that you will be installing a security hole by doing this.***
-
-Please also note that this security hole is no larger than allowing a
-Macintosh, PC (OS/2, NT, etc.) to have it's hostname in any .rhosts file,
-as any user can create a privileged socket without authentication, under these
-environments. In fact, existing ports of CVS to these environment use this
-to their advantage.
-
--------------------------------------------------------------------------------
-Wildcard expansion is not yet implemented (i.e. CVS COMMIT *.c won't
-work.) I think that expand_wild should be calling lib$findfile
-(util.c in gzip is said to provide an example), but noone has gotten
-around to implementing this.
-
-Log messages must be entered on the command line using -m or -F. You
-can use -e or define the logical EDITOR to cause CVS to try other
-editors (TPU.EXE or any other editor which wants DCL command parsing
-will not work) if you want to test what's available on your system. I
-haven't tested this, but if you install vi or emacs, chances are it
-will probably work. Just make sure the .EXE files are in a directory
-listed in VAXC$PATH (is this a typo for DCL$PATH? Also, will a
-logical name work?). If someone gets around to implementing it, we
-should probably be using the callable editors (e.g. TPU$TPU), although
-of course we also need interface(s) which are not locked into any
-particular editors.
-
-----------------------------------------
-
-Notes regarding compiling on VAX/VMS 6.2 (not Alpha) (These are items
-which hopefully will have cleaner solutions in the future, but here is
-how to get around them for now):
-
-* Need to compile lib/getdate.c with vaxc instead of decc to avoid a
-compiler bugcheck. Therefore one must add SYS$LIBRARY:VAXCRTL/LIBRARY
-to the link.
-
-* In src/ignore.c, change lstat to stat. In vms/filesubr.c, change
-"#ifdef S_ISLNK" to "#if 0".
-
-* Ignore the warnings in vms/vmsmunch.c; the system include file
-declares something as an int when it should be void *. Not *our*
-fault!
-
-Credits:
-
-Initial VMS port by Benjamin J. Lee <benjamin@cyclic.com>, Cyclic
-Software, October 1, 1995 (Update March 1, 1996).
diff --git a/contrib/cvs/contrib/ccvs-rsh.pl b/contrib/cvs/contrib/ccvs-rsh.pl
deleted file mode 100644
index 8cfc6743ba3bf..0000000000000
--- a/contrib/cvs/contrib/ccvs-rsh.pl
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/perl
-
-# The version of the remote shell program on some Linuxes, at least,
-# misuses GNU getopt in such a way that it plucks arguments to rsh
-# that look like command-line switches from anywhere in rsh's
-# arguments. This is the Wrong Thing to do, and causes older versions
-# of CCVS to break.
-
-# In addition, if we live behind a firewall and have to construct a
-# "pipeline" of rshes through different machines in order to get to
-# the outside world, each rshd along the way undoes the hard work CCVS
-# does to put the command to be executed at the far end into a single
-# argument. Sigh.
-
-# This script is a very minimal wrapper to rsh which makes sure that
-# the commands to be executed remotely are packed into a single
-# argument before we call exec(). It works on the idea of a "proxy
-# chain", which is a set of machines you go through to get to the CCVS
-# server machine.
-
-# Each host you go through before you reach the CCVS server machine
-# should have a copy of this script somewhere (preferably accessible
-# directly from your PATH envariable). In addition, each host you go
-# through before you reach the firewall should have the CVS_PROXY_HOST
-# envariable set to the next machine in the chain, and CVS_PROXY_USER
-# set if necessary.
-
-# This really isn't as complex as it sounds. Honest.
-
-# Bryan O'Sullivan <bos@serpentine.com> April 1995
-
-$usage = "usage: ccvs-rsh hostname [-l username] command [...]\n";
-
-if ($#ARGV < 1) {
- print STDERR $usage;
- exit 1;
-}
-
-# Try to pick a sane version of the remote shell command to run. This
-# only understands BSD and Linux machines; if your remote shell is
-# called "remsh" under some System V (e.g. HP-SUX), you should edit
-# the line manually to suit yourself.
-
-$rsh = (-x "/usr/ucb/rsh") ? "/usr/ucb/rsh" : "/usr/bin/rsh";
-
-# If you are not rshing directly to the CCVS server machine, make the
-# following variable point at ccvs-rsh on the next machine in the
-# proxy chain. If it's accessible through the PATH envariable, you
-# can just set this to "ccvs-rsh".
-
-$ccvs_rsh = "ccvs-rsh";
-
-# There shouldn't be any user-serviceable parts beyond this point.
-
-$host = $ARGV[0];
-
-if ($ARGV[1] eq "-l") {
- if ($#ARGV < 3) {
- print STDERR $usage;
- exit 1;
- }
- $user = $ARGV[2];
- $cbase = 3;
-} else {
- $cbase = 1;
-}
-
-# You might think you shoul be able to do something like
-# $command = join(' ', $ARGV[$cbase..$#ARGV]);
-# to achieve the effect of the following block of code, but it doesn't
-# work under Perl 4 on Linux, at least. Sigh.
-
-$command = $ARGV[$cbase];
-for ($cbase++; $cbase <= $#ARGV; $cbase++) {
- $command .= " " . $ARGV[$cbase];
-}
-
-if (defined $ENV{"CVS_PROXY_HOST"}) {
- $command = (defined $user)
- ? "$ccvs_rsh $host -l $user $command"
- : "$ccvs_rsh $host $command";
-
- if (defined $ENV{"CVS_PROXY_USER"}) {
- exec ($rsh, $ENV{"CVS_PROXY_HOST"}, "-l", $ENV{"CVS_PROXY_USER"},
- $command);
- } else {
- exec ($rsh, $ENV{"CVS_PROXY_HOST"}, $command);
- }
-} elsif (defined $user) {
- exec ($rsh, $host, "-l", $user, $command);
-} else {
- if (defined $ENV{"CVS_PROXY_USER"}) {
- exec ($rsh, $host, "-l", $ENV{"CVS_PROXY_USER"}, $command);
- } else {
- exec ($rsh, $host, $command);
- }
-}
diff --git a/contrib/cvs/contrib/pvcs_to_rcs b/contrib/cvs/contrib/pvcs_to_rcs
deleted file mode 100644
index 7d526d81ad21f..0000000000000
--- a/contrib/cvs/contrib/pvcs_to_rcs
+++ /dev/null
@@ -1,439 +0,0 @@
-#! /opt/bin/perl5
-#
-# Beware of the fact that this script was not written to handle
-# branches in the PVCS archives, but it might work nontheless. I have
-# a specific addition in this latest version that would not be
-# globally useful: automatically making Framemaker files binary with
-# -kb (regardless of the file extension).
-# ---------------------------------
-# 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.
-
-###########################################################################
-# FUNCTION:
-# To recursively walk through a PVCS archive directory tree (archives
-# located in VCS/ or vcs/ subdirectories) and convert them to RCS archives.
-# The RCS archive name is the PVCS workfile name with ",v" appended.
-#
-# SYNTAX:
-# The calling syntax is:
-# pvcs_to_rcs [-l]
-#
-# where -l indicates the operation is to be performed only in the current
-# directory (no recursion)
-#
-# EXAMPLE:
-# pvcs_to_rcs
-#
-# Would walk through every VCS or vcs subdir starting at the current directory,
-# and produce corresponding RCS archives one level above the VCS or vcs subdir.
-#
-# NOTES:
-# * This script does not perform any error checking or logging of any kind
-# (i.e. USE AT YOUR OWN RISK)
-# * This script was developed using perl-5.003 on a Sun Solaris 2.5 machine
-# and executed from a csh
-# * PVCS archives in VCS/ or vcs/ subdirectories are left intact
-# * RCS archives are processed in the VCS/ or vcs/ subdirectories and
-# are moved (forcibly) up one level upon completion of the conversion
-# * This script has *not* been tested with PVCS archives with branches,
-# although the only thing I believe that might need to be changed
-# is the ORDER of revision processing (e.g. you can't checkin 1.2.4.1 if
-# you haven't yet checked in 1.2).
-# * All revisions are saved with correct "metadata" (i.e. check-in date,
-# author, and log message). Any blank log message is replaced with
-# "no comment". This is because RCS does not allow non-interactive
-# checkin of a new revision without a comment string.
-# * Revision numbers are incremented by 1 during the conversion (since
-# RCS does not allow revision 1.0).
-# * Version labels are assigned to the appropriate (incremented) revision
-# numbers. PVCS allows spaces and periods in version labels while RCS
-# does not. A global search and replace converts " " and "." to "_"
-# There may be other cases that ought to be added.
-# * Any workfile within the VCS/ or vcs/ will be deleted (or overwritten)
-# since it is used in the checkout of each revision
-# * Locks on PVCS archives should be removed (or the workfiles should be
-# checked-in) prior to conversion, although the script will blaze through
-# the archive nonetheless (But you would lose any checked out revision(s))
-# * The -kb option is added to the RCS archive for workfiles with the following
-# extensions: .bin .out .btl .rom .a07 .lib .exe .tco .obj .t8u .c8u .o .lku
-#########################################################################
-
-require("getcwd.pl");
-
-#NOTE: Each possible binary extension is delimited by '.'
-$bin_ext =
-".bin.out.btl.rom.a07.lib.exe.tco.obj.t8u.c8u.o.lku.BIN.OUT.BTL.ROM.A07.LIB.EXE.TCO.OBJ
-.T8U.C8U.O.LKU.";
-
-# the main procedure that is run once in each directory
-sub execdir
-{
- $curlevel= $curlevel +1;
-
-#local sets the variables directory and prev directory local to the procedure
-
- local($dir,$prevdir)=@_;
-
-#change into the directory to be processed
-
- chdir($dir);
-
-#open the current directory for listing
-
- opendir(CURDIR,".");
-
-#initialize the list of filenames
-
- local(@filenames);
-
-#set filenames equal to directory listing
-
- @filenames = readdir(CURDIR);
-
-#clean up by closing the directory
-
- closedir(CURDIR);
-
-#initialize a list for any subdirectories
- local(@subdirs);
-
-#begin a for loop to execute on each filename in the list @filename
- for (@filenames)
-
- {
-#if the file is a directory...
- if (-d $_)
- {
-#include it in @subdir
- push(@subdirs,$_);
- }
- }
-
-#for loop of subdirs
- for (@subdirs)
-#if not a parent directory, run execdir on each sub dir
- {
- if (($_ ne '.') and ($_ ne '..') and ($maxlevel > $curlevel))
- {
- &execdir($_,$dir);
- }
- }
-
-#save the current directory
- $cd = &getcwd;
-
-#Print output header for each directory
- print("Directory: $cd\n");
-
-#determine the last directory in this path (to only process vcs or VCS)
- $_ = $cd;
- $num_dirs = split /\//;
- @dirs = @_;
- $last_dir = $dirs[$num_dirs-1];
-# print"Last directory is $last_dir\n";
-
-#shell redirection: output from command in @ARGV is put in $output
-# $output = `@ARGV`;
-#begin a for loop to execute on each filename in the list @filename
- for (@filenames)
- {
- if ( (-f $_) and ($_ ne '.') and ($_ ne '..') and ($maxlevel > $curlevel)
- and ( ( $last_dir eq 'vcs' ) or ( $last_dir eq 'VCS' ) ) )
- {
- $got_archivefile = 0;
- $got_workfile = 0;
- $got_version_labels = 0;
- $got_description = 0;
- $got_rev_count = 0;
-
- $file = $_;
- $abs_file = $cd . "/" . $file;
- print("Converting $abs_file...\n");
- $vlog_output = `vlog $_`;
- $_ = $vlog_output;
-# Split the cvs status output into individual lines
- @vlog_strings = split /\n/;
- $num_vlog_strings = @vlog_strings;
- $_ = $vlog_string[0];
- if ( /^vlog: warning/ )
- {
- print("$abs_file is NOT a valid PVCS archive!!!\n");
- }
- elsif( $vlog_output )
- {
-
-# Collect all vlog output into appropriate variables
-
- $num = 0;
- while( $num < $num_vlog_strings )
- {
-# print("$vlog_strings[$num]\n");
-
- $_ = $vlog_strings[$num];
-
- if( ( /^Workfile:\s*/ ) && (!$got_workfile ) )
- {
- $got_workfile = 1;
-# get the string to the right of the above search (with any path stripped)
- $workfile = $';
- $_=$workfile;
- $num_fields = split /\//;
- if ( $num_fields > 1 )
- {
- $workfile = $_[$num_fields - 1 ];
- }
-# print"Workfile is $workfile\n";
- }
-
- elsif( ( /^Archive:\s*/ ) && (!$got_archivefile ) )
- {
- $got_archivefile = 1;
-# get the string to the right of the above search (with any path stripped)
- $archivefile = $';
- $_=$archivefile;
- $num_fields = split /\//;
- if ( $num_fields > 1 )
- {
- $archivefile = $_[$num_fields - 1 ];
- }
-# print"Archive is $archivefile\n";
- }
-
- elsif ( ( /^Rev count:\s*/ ) && (!$got_rev_count ) )
- {
- $got_rev_count = 1;
-# get the string to the right of the above search
- $rev_count = $';
- print"Revision count is $rev_count\n";
- }
-
- elsif ( ( /^Version labels:\s*/ ) && (!$got_version_labels ) )
- {
- $got_version_labels = 1;
- $first_vl = $num+1;
- }
-
- elsif ( ( /^Description:\s*/ ) && (!$got_description ) )
- {
- $got_description = 1;
- $description = "\"" . $vlog_strings[$num+1] . "\"";
-# print"Description is $description\n";
- $last_vl = $num - 1;
- }
-
- elsif ( /^Rev\s*/ ) # get all the revision information at once
- {
- $rev_index = 0;
- while ( $rev_index < $rev_count )
- {
- $_=$vlog_strings[$num];
- /^Rev\s*/;
- $rev_num[$rev_index] = $';
- $_=$vlog_strings[$num+1];
- if ( /^Locked\s*/ )
- {
- $num += 1;
- }
- $_=$vlog_strings[$num+1];
- /^Checked in:\s*/;
- $checked_in[$rev_index] = "\"" . $' . "\"";
- $_=$vlog_strings[$num+3];
- /^Author id:\s*/;
- split;
- $author[$rev_index] = "\"" . $_[2] . "\"";
- $relative_comment_index = 0;
- $comment_string = "";
- while( ( $vlog_strings[$num+4+$relative_comment_index] ne
- "-----------------------------------" ) &&
- ( $vlog_strings[$num+4+$relative_comment_index] ne
- "===================================" ) )
- {
-# We need the \n added for multi-line comments. There is no effect for
-# single-line comments since RCS inserts the \n if it doesn't exist already
- $comment_string = $comment_string .
-$vlog_strings[$num+4+$relative_comment_index] . "\n";
- $relative_comment_index += 1;
- }
-# Convert any double quotes to an escaped double quote
- $comment_string =~ s/\"/\\\"/g;
- $comment[$rev_index] = "\"" . $comment_string . "\"";
- $num += ( 5 + $relative_comment_index );
- $rev_index += 1;
- }
- $num -= 1; #although there should be nothing left for this to matter
- }
-
- $num += 1;
-
- }
-
-# Loop through each version label, checking for need to relabel ' ' with '_'.
- $num_version_labels = $last_vl - $first_vl + 1;
- print"Version label count is $num_version_labels\n";
- for( $i = $first_vl; $i <= $last_vl; $i += 1 )
- {
-# print("$vlog_strings[$i]\n");
- $label_index = $i - $first_vl;
- $_=$vlog_strings[$i];
- split /\"/;
- $label = @_[1];
- $_=@_[2];
- split;
- $label_revision[$label_index] = @_[1];
-
-# Create RCS revision numbers corresponding to PVCS version numbers by
-# adding 1 to the revision number (# after last .)
- $rcs_rev = &pvcs_to_rcs_rev_number( $label_revision[$label_index]);
- $label_revision[ $label_index ] = $rcs_rev;
-# replace ' ' with '_', if needed
- $_=$label;
- $new_label[$label_index] = $label;
- $new_label[$label_index] =~ s/ /_/g;
- $new_label[$label_index] =~ s/\./_/g;
- $new_label[$label_index] = "\"" . $new_label[$label_index] . "\"";
-# print"Label $new_label[$label_index] is for revision
-$label_revision[$label_index]\n";
- }
-
-# Create RCS revision numbers corresponding to PVCS version numbers by
-# adding 1 to the revision number (# after last .)
-
- for( $i = 0; $i < $rev_count; $i += 1 )
- {
- $rcs_rev_num[ $i ] = &pvcs_to_rcs_rev_number( $rev_num[ $i ] );
-# print"PVCS is $rev_num[ $i ]; RCS is $rcs_rev_num[ $i ]\n"
- }
-
-# Create RCS archive and check in all revisions, then label.
-# PVCS vlog lists revisions last-revision-first; reverse that ordering
- $first_time = 1;
-
- for( $i = $rev_count - 1; $i >= 0; $i -= 1 )
- {
- print "get -r$rev_num[$i] $archivefile\\($workfile\\)\n";
-# $vcs_output = `vcs -u -r$rev_num[$i] $file`;
- $get_output = `get -r$rev_num[$i] $archivefile\\($workfile\\)`;
- if( $first_time )
- {
- $first_time = 0;
- $file_output = `file $workfile`;
-# If an empty comment is specified, RCS will not check in the file;
-# check for this case. (but an empty -t- description is fine - go figure!)
-# Since RCS will pause and ask for a comment if one is not given,
-# substitute a dummy comment "no comment".
- if ( $comment[$i] eq "\"\"" )
- {
- $ci_command = "ci -f -r$rcs_rev_num[$i] -d$checked_in[$i] -w$author[$i]
--t-$description -m\"no comment\" $workfile";
- }
- else
- {
- $ci_command = "ci -f -r$rcs_rev_num[$i] -d$checked_in[$i] -w$author[$i]
--t-$description -m$comment[$i] $workfile";
- }
- print "$ci_command\n";
- $ci_output = `$ci_command`;
-
-# Also check here whether this file ought to be "binary"
- $_=$file_output;
- split;
- if( $_[1] eq "Frame" )
- {
- print"Binary attribute -kb added (file type is Frame)\n";
- $rcs_output = `rcs -kb $workfile,v`;
- }
- else
- {
- $_=$workfile;
- $num_fields = split /\./;
- if ( $num_fields > 1 )
- {
- $ext = "." . $_[$num_fields - 1] . ".";
- if ( ( index $bin_ext, $ext ) > - 1 )
- {
- print"Binary attribute -kb added (file type is $ext)\n";
- $rcs_output = `rcs -kb $workfile,v`;
- }
- }
- }
- }
- else
- {
- $rcs_output = `rcs -l $workfile`;
-# If an empty comment is specified, RCS will not check in the file;
-# check for this case. (but an empty -t- description is fine - go figure!)
- if ( $comment[$i] eq "\"\"" )
- {
- $ci_command = "ci -f -r$rcs_rev_num[$i] -d$checked_in[$i] -w$author[$i]
--m\"no comment\" $workfile";
- }
- else
- {
- $ci_command = "ci -f -r$rcs_rev_num[$i] -d$checked_in[$i] -w$author[$i]
--m$comment[$i] $workfile";
- }
- print "$ci_command\n";
- $ci_output = `$ci_command`;
- }
- }
-# Attach version labels
- for( $i = $num_version_labels - 1; $i >= 0; $i -= 1 )
- {
-# print "rcs -n$new_label[$i]:$label_revision[$i] $workfile\n";
- $rcs_output = `rcs -n$new_label[$i]:$label_revision[$i] $workfile`;
- print "Version label $new_label[$i] added to revision $label_revision[$i]\n";
- }
-
-# Move archive file up one directory level (above vcs/ or VCS/)
- $mv_output = `mv -f $workfile",v" ..`;
- }
- }
- }
-
-#print the output to STDOUT
-# print("$output");
-
- $curlevel=$curlevel - 1;
- if ($dir ne $prevdir)
- {
- chdir('..');
- }
-}
-
-sub pvcs_to_rcs_rev_number
-{
- local($input, $num_fields, @rev_string, $return_rev_num, $i);
-
- $input = @_[0];
- $_ = $input;
- $num_fields = split /\./;
- @rev_string = @_;
- @rev_string[$num_fields-1] += 1;
- $return_rev_num = @rev_string[ 0 ];
- for( $i = 1; $i < $num_fields; $i += 1 )
- {
- $return_rev_num = $return_rev_num . "." . @rev_string[ $i ];
- }
- return $return_rev_num;
-}
-
-##MAIN program: checks to see if there are command line parameters
-if ($#ARGV > 2) {
-
-#if not then end and print help message
-die "Usage: pvcsns [-l]\n"};
-$curlevel=0-1;$maxlevel=10000;
-
-if (@ARGV[0] eq "-l") {$maxlevel=1;shift @ARGV;}
-
-#start the whole thing
-&execdir(".",".");
-
diff --git a/contrib/cvs/diff/diagmeet.note b/contrib/cvs/diff/diagmeet.note
deleted file mode 100644
index 8f7242c7356a7..0000000000000
--- a/contrib/cvs/diff/diagmeet.note
+++ /dev/null
@@ -1,71 +0,0 @@
-Here is a comparison matrix which shows a case in which
-it is possible for the forward and backward scan in `diag'
-to meet along a nonzero length of diagonal simultaneous
-(so that bdiag[d] and fdiag[d] are not equal)
-even though there is no snake on that diagonal at the meeting point.
-
-
- 85 1 1 1 159 1 1 17
- 1 2 3 4
-60
- 1 2
-1
- 2 2 3 4
-71
- 3 3 4 5
-85
- 4 3 4 5
-17
- 5 4 5
-1
- 6 4 5 6
-183
- 7 5 6 7
-10
- 8 6 7
-1
- 9 6 7 8
-12
- 7 8 9 10
-13
- 10 8 9 10
-14
- 10 9 10
-17
- 10 10
-1
- 10 9 10
-1
- 8 10 10 10
-183
- 8 7 9 9 9
-10
- 7 6 8 9 8 8
-1
- 6 5 7 7
-1
- 5 6 6
-1
- 5 5 5
-50
- 5 4 4 4
-1
- 4 3 3
-85
- 5 4 3 2 2
-1
- 2 1
-17
- 5 4 3 2 1 1
-1
- 1 0
- 85 1 1 1 159 1 1 17
-
-
-
-
-
-
-
-
-
diff --git a/contrib/cvs/doc/DIFFUTILS-2.7-BUG b/contrib/cvs/doc/DIFFUTILS-2.7-BUG
deleted file mode 100644
index f258ee7f6aae2..0000000000000
--- a/contrib/cvs/doc/DIFFUTILS-2.7-BUG
+++ /dev/null
@@ -1,263 +0,0 @@
-The enclosed two messages describe a bug in GNU diff 2.6 and 2.7 which
-may cause CVS to perform an erroneous merge. You may wish to use GNU
-diff 2.5 or apply the patch supplied by Loren James Rittle below. It
-would be nice to add this to the CVS testsuite, but I haven't done so
-because probably a lot of people who would like to run the testsuite
-are using the buggy diff.
-
-From: friedman@splode.com (Noah Friedman)
-To: bug-gnu-utils@prep.ai.mit.edu
-Cc: info-cvs@prep.ai.mit.edu
-Subject: diffutils 2.7 -- diff3 merge bug
-Date: Tue, 29 Oct 96 17:02:54 CST
-
-I believe a change first introduced in GNU diff 2.6 causes diff3 sometimes
-to produce incorrect merges.
-
-Since this is a not a bug in CVS itself but can cause commits to CVS
-repositories to be incorrect, am warning info-cvs@prep.ai.mit.edu as
-well as reporting the bug to bug-gnu-utils@prep.ai.mit.edu.
-
-I am including a simple test case as well as some sample outputs from
-different versions of `diff' and `diff3' in the enclosed shar archive.
-In addition, the file DESCRIPTION in that archive describes the problem
-more fully.
-
-If anyone has any advice for how to fix or to work around this bug, I would
-appreciate it. Using diff 2.5 seems like the most immediately obvious
-solution, but I don't know if it will introduce other problems.
-I do not understand the algorithms used by GNU diff well enough to suggest
-any patches.
-
-Unshar and enjoy. ;-)
-
-begin 666 merge-testcase.shar.gz
-M'XL(",&,=C("`VUE<F=E+71E<W1C87-E+G-H87(`[5Q[;]M&$O_[^"FF;E#9
-M@41)?C!GYX&V;MPS<$F+V+FZP.&:%;F26)-<E;NTHC[NL]_,+%^29;USUP-L
-M&)9$[CQW]C?#W;$^_ZS="Y.V'CJ?P_4PU("_`O101A&(U!^&=Q+V1ZD*,E\&
-MT)O`MV_?XVV19B:,-!R[W0.72!7(CR85O@$SE-`/(ZFAGZH8/Q)'RZD)6B"_
-M$`<IT"J6<''Y]]=-2&6L[B2RD7<RG2!%,H">[*M4,K</A8X-B,)$@N@IXH6W
-M$C"3$0[00^;40%60RQL12%`)=$]/O5:WTSH\A:YW=G(,YU?79,*+?AK*(!;)
-MEWH4J4"ZOHI?D157*DM]"4&82M^H=`)CH>%#.]-I.U*^B-HZ]=N#)&L'8;_/
-M#FC',AW(EI':^$++7('7'T-MR`CKAW&(SGR:*/,4K0+4/1VGH3&H?9;@?131
-M\AOD>#V2?MA'W2P;G@_R-?@J,2),]!E>C60R,$.(47&P/XF(R7DM_LE?9MXN
-M^T%R_#DZ]:"5CO-?F+:M7;QI3=!-VE(\ZQRM0A'CM%D"[_1X%0(5!3*U%,<G
-MAPLHWHA;25[FL8?=PV<+QG[S^NK\W>7WUY??O<U9=Q;92Y-\Z)Y87>I&>R>K
-MD)'-=:I5A'ESA!T_6X'LOK"3%52LYH?N!ZM,:2%P'FFW>[1HJJ[>OWGSU;L?
-M,;2-ROPAM$0,W<,C_#TY/3V%)T]<>_U5.Y!W[23#17/XZHNN$_:!>,!GT.K7
-M";[XPE['JP7M<P8%!WC5_,277O)?1T9:3E\_PX_2'ZK\!1H_?/7N[>7;;\\`
-M5RI"DD8$H#5LPAC?BWBD78!SE>@09P@&TO`*%TG0*#CLX0HU(HKH.L'D/S^P
-MI$83$46;-.QE!C$T3/CF!08MO$<,"4THM>NZ>X4^_=!)XQE;"P,9%U[6?Q:O
-MTNFQ+^N^#*`Q`UZE]ZP_/D(+_%0*MK/"Q!DB'![?XMU[W,B.0AP:TUBH9Z.<
-MS9N])]T]^.PEOFGY>W-4TK?A:$0J+39\GU`!1(0&!!-,3C@#^J!1Q$'%+D];
-M*S`T./2`[-4XBPW=_M=-N]V`%R^@<?6WK][]]/J[BP:\6L%.I]V&KS-C5.+^
-M+.Z$<^.,A'\K!A)2C"85NV(TBD(?_:Z2YW@WC$<J-<5-2CON4[H^RGHX#/Q(
-M8`JQ#)W?G!N`]E.XI$A,3"A0/.9S>Q<3$28.C.H!QN!^IPF=`XI?^%6F"N\%
-M>),^#F4X&!J7.,%3^%%E$&<X,9C_L"1(,'XQ8D44(A5ZS`Q50-D<2X213*-)
-M[3;G[MQ0RZQ-+[G:N4K[!W2-U4;'9L@#+Y%U?.$G$YI(GJM(I?`2^-7M1>BM
-MY_E]7%BB%\G@^OZX02HFS^ML+C")XEUZ<0/9%UED^!++`_C#^<,I)A(G^4D%
-M%1:I.H>GW9-##U/D"E,,X`\Q0T/'\Y:/__WW,B(M[&"1T%\2C7V!X<W0PWKZ
-M*DO,R[T/8Q]:/KQ8)O(#@0TO-T[Y\A?8>U+QV;,:%:BVD-59'D\B`DUSCOR:
-MX&=I*M&S?*7.F#!A5?RBE/80?"W"$Z+;)9RP'CM$$\MO2S`IC'S$DI6Q!#VU
-M#$YHR&J(4C);"BHWN1>Q<KB322@3?,#`<A[K@8SR*>!3#H2EA[FDJ+LX]UP/
-MET^@X6,3)DWKWF;=OP"O?\G".Q'1JC,J)Z*?OE*H7B+'E9.>3]]VR<NP/\7:
-MLBU&SG-UB(*0A%XF]B4GI;<Y>6TV^"FP$`U+)*Z&Q,\6(7&Y/E8#8CM\/1SF
-M=;PI#+/`"H6YYMX,A8G3+`@CNQV!,#^.;(+"3+A+&+::[!"'<X9;`G%IYR,2
-M_TFKND<`_D0`O+`4KM;%:@B<CU\/@NT2WA2#K<@*A'EK:C,09E:S*(S\MD/A
-M8F]K#?PM2':`O*7T[3&W8K49VM:M<KZYO+@XPB5%.U%'_"G_@"N=Z<Z<F[^T
-MGNSSN`-HO>:8G4[;,Q$TL[-YPWNO:'(ZR&*</,T8@8[32#E68/"&Q*MCB>$9
-M2"-38LJ[X[CX9.K+$7D!N;".#6U1%@.9/C-L(.",I/65F9*$ZW*$R,];P*3$
-MQ.X>WXET@J)&,@F(!@&`R,)DE!G>9'8=8EW?/20O6">@#P2T6D.,SE]5TJ(M
-M=/VRV\%+B_V`L9)F$KW!K*L=QII_Y[/N3K&>=GB=\S*(\;K=.1`S%0P+P:4:
-MN1*LE%&Z)J"48BHHX3WKM:"D8#(+(LAI.Q"I;7JO@2,UJAU`25V'[=%DBMMF
-M@#)CGF-/6J2AJ+!G-KCHL#Q*\TJ+S2=*&`]YT=.Z9KU(O_QX3#MAXJN4]DEI
-M^Q@+$4W#$\ATL2-<GAO!H>OA3%-=(%.L'E@!7V0:N?@JCD.DQ?KK_!]7R&JD
-M=$B;T9*O]6C=YW*:H!5<`BZ81)FP/R$YYQ,?ZP3G2O7-6-A`)ZQ`);&DBD$0
-M;E'-IZ&7#5J#)&NQ1E^.4)`K0A=ENS+(L+ASD+/)]ZVG>*`6?,JGHDB-<06*
-M9$">"7'Q8I4K42IO<S/:H:%-A[`-ZU["2#2CSP4ELWC[^H<KL(N.(5:8:J\<
-M"<Z*DG'/==WO16J04M"$6/\V2Z<BQJK,$!JB'VG_7G[$X,'1)$2+&"-.6T[V
-M7-&%]SI#4)X0X/*19P_?Z!@OR;2)GC%\/LE[_U-#(L+^U-TCQ9PWDUIDU".F
-M\@[-B/9E(M)0Y=9\90W.S_1X`!V%^G2@1U$PE/XM>@KMH8Q""6<DU8@P_@8X
-M+_7#%(5B4:TQ#P0RDC9(^UGBD],XP11!Q'%E)\C.&C$I0VI2\M02]0D*ID3-
-MZ8B4&*'?*8H$^G5(]59=#@:(C$<<K<3*BJU)I4.3K\D2R=%MHQ'O<FQ@`/(Q
-MKEWA$"C)DV=5I"/A/.KD7:@R'4U:UMB@4B$_8I[1OU%))UY7J@BW/@.KKT9E
-M`%:NL)K<DS"DA2(1Z%@ISAVT-*[+4^ZI1-><2:G-F<Q'9]UHC^;'!)R,6;6)
-MI56D3`/V$OG:S,Q],=Y!AEQ-W,EH4E<.'CCHXW!.\J<>GR=%0`%==B[L0V7?
-M(9EFF$H)=R@3'8(FE.T`/*B.:2=N$:'H&>?^22B;,>=<==HK/`)#-TMNZ8X(
-M$%AI*5C4I<=2F>(BCLO0P34TQVQOKMEV]G-0K`";1U2F.?=,\W+3[!HH)#S-
-M@X"`5N!LJ0$&:K[2PK3P`'"VEBFM)`I)AQZ_N:XCV/9MF-]*:R'F%YJ3/#ZM
-M$V1,_0)<81;^H6'&R2>EK"T)12LF%+EF+*E-8JH:XV":BDM&>RN1P:S@A\H_
-ML"Z$G2HL2`MGLNNI@R1Q"'G4.&'M65H!Q[$PB&^ZOF1Y3"ZO5-A94>$RQ5C5
-M[:(GSJ1C/BWH9G2F`,K"D?5H,\]6ER@O"N6==&*LORS2QP@(.NSE*:F,.4-)
-MTU+Q-#)O*S!@_?B>4]W#B,+E6#C.75[M'I[.J79G*Y6%!>_4X)5JWGHMM6;9
-M6Q=65;ZV!6.MTK?&:+;Z)6[;E;_SP&;U,G@.]0[*X7DZ;5\6S^6Z67G\@-G.
-MC>M6K4\M',&?-GR\=`X[S:-.T#UU7@#^;K5'1^3K;]+E5`_NTDW?7[A-9X>V
-M^763C3JB^\URJ;;J[,=E8I=OU7F=><CRT"0O1)BY1"LAS;SP7!-QY@FO/7-W
-MUCW)GL/OWN-WQ]L-_M1JH/7AIR+>(?K4--H=^-29;H<]TS:O`SU+MY^<KM?L
-M_M7GO_DB6WPX7(U9>C(QPV[1Z02U7;Z")0<B^8"E<NN,%@E]!-T_!>C.1/=*
-MF%NG60MR:XMR0\2MB:Z=EYQL"KBUO>39,Y.3G>"MMU6]YWV2>L_[)/6>M[MZ
-MSUM:[WF/]=[_!?1T.P]"C[=)O>=M7.]YV]=[WH[K/>^_4.]YV]1[WJ>H][Q/
-M4>]Y.ZOWO&7UGK=EO7=X^C^O]^SB?02_3<'O?U(O;X>UZY=YWJ9EGK=UF><]
-M4.8=/]L09Q>4><<[VM:;W>%?_]EZAL,.'[!G==O=4_8]SML]:L]QP6,WXY^]
-MKWR5,O!PP1/HO$E?Z3'T'N%:SZ*SH;OA`^FL$O6R\&3#I](9GO=+PY/=E(;;
-M8I;WR3#+^V28Y>T6L[Q'S'K\7YC'5NP5@-[;%.B]K8#>VPW0>PN`?OW_F7F`
-MY\[_>R;_1_<U@#VGV`&0%[*W!^Z2TV9`73/)N;E(57P&<[YV`_;?*C&$B_S.
-M@7.MSA;W)3KG_ADNFKYJ^7?W;UYEO9^E;\ZF6G>>T09!U;(I28#S3HZB28O$
-MS5'+^08!_@RN,]F$PU/XSC?\92+\-2)'9]UC:'6\3@?VSZ^N#YP+'S7Z=UL:
-MOQUCD+>1NZ[V+O"QE1R8MP-JN_IIYP*?9LOV$VI+LDUZMK\+@:/HL<J_+J!H
-M=,F;1'-SRAY%QZ8*(IEM:N)6F:LPX3:CX@M>J$52D!^(/W69AD;+J,^-CSXF
-M(]NL-]V)ZBSN1$4T&HN4^QD?FAYJPBR:3XE96C;`DR;$<86.U)B$1EE@TX/&
-M+![)6AMFK;^5VRJUX`&V.]1^)XU3]D^536T$9!^XD913R0?;N%\T86&BBA1%
-M/W\92_YE-B[U'XD@"*F>:%8=4/66&J87IOPFG4!J/PU[>0-4WD[KQ(2D_2RR
-MS7N7U&DY48GDUD-\BT+NJ$F,LN-0C<E/_?`C=0_CN[%*;Y$]I40[O=Q3>8G7
-MLRAPL.+!R:%J!2<8,^-[;;_+P79VX8*6,07CK:TI8D6A%\<R(`JL.52/&R\=
-MK:+,6DGQ<0F!2AH&;A-4!D$M-+:7K0S:O$<N-P_CCR@XY%!+=+@IFAE%-,!@
-M,D-4(M/5UPNQ?CR),E'98,C?%I0-,)2-0_X8V28R<M;[Q$X)M9@E/ZL)VOB\
-M=;`\8YX<S<F8=<A:F"'+@2MEQ`)(U\R`A9`JX]GO5UDKY>5,9E,<<5J2XS!E
--&.@X_P&I*Y$W($H``"'+
-`
-end
-
-Date: Wed, 30 Oct 96 14:54:13 CST
-From: Loren James Rittle <rittle@comm.mot.com>
-To: friedman@splode.com
-Cc: bug-gnu-utils@prep.ai.mit.edu, info-cvs@prep.ai.mit.edu
-Subject: Re: diffutils 2.7 -- diff3 merge bug
-
-Noah,
-
-I have seen the problem you discuss in your e-mail, however I fail to
-see how this situation is as critical as might be implied since it can
-never arise without at least some user involvement (an update that
-caused a merge is never automatically followed by a commit --- the
-user has a chance to inspect the merged file). However, I will agree
-that I don't always look very closely at non-conflicted merges before
-checking them back in.
-
-You didn't give the exact CVS commands used to create a lossage,
-but I added the following to your Makefile, to help me see the problem
-in a CVS usage context:
-
-t-older: testcase-older
- cp testcase-older t-older
-
-t-yours: testcase-yours
- cp testcase-yours t-yours
-
-t-mine: testcase-mine
- cp testcase-mine t-mine
-
-# Assume cvs-1.9
-cvs-test: t-older t-yours t-mine
- rm -rf /tmp/cvs-test-root x x2
- cvs -d /tmp/cvs-test-root init
- mkdir x
- cp t-older x/testcase
- cd x; cvs -d /tmp/cvs-test-root import -m '' x X X1
- rm -rf x
- cvs -d /tmp/cvs-test-root co x
- cvs -d /tmp/cvs-test-root co -d x2 x
- cp t-yours x/testcase
- cp t-mine x2/testcase
- cd x; cvs ci -m ''
- -cd x2; cvs ci -m ''
- cd x2; cvs update
- cat x2/testcase # at this point, user may commit blindly
-
-It looks like whomever added shift_boundaries() in analyze.c, which
-seems to be the source of the diff3 induced mischief, already provided
-a means to disable the boundary shifting optimization (at least with
-a recompile).
-
-Here is the patch I applied to diff to disable this (currently)
-overaggressive optimization:
-
-[ rittle@supra ]; diff -c analyze.c-old analyze.c
-*** analyze.c-old Wed Oct 30 14:10:27 1996
---- analyze.c Wed Oct 30 13:48:57 1996
-***************
-*** 616,622 ****
- but usually it is cleaner to consider the following identical line
- to be the "change". */
-
-! int inhibit;
-
- static void
- shift_boundaries (filevec)
---- 616,622 ----
- but usually it is cleaner to consider the following identical line
- to be the "change". */
-
-! int inhibit = 1;
-
- static void
- shift_boundaries (filevec)
-
-Now, diff-2.7 with the above patch produces:
-
-[ rittle@supra ]; make diff-mine-yours 'DIFF=/usr/src/diffutils-2.7/diff'
-/usr/src/diffutils-2.7/diff -a --horizon-lines=11 -- testcase-mine testcase-yours; true
-16,18c16,18
-< // _titleColor = Color.black;
-< // _disabledTitleColor = Color.gray;
-< // _titleFont = Font.defaultFont ();
----
-> _titleColor = Color.black;
-> _disabledTitleColor = Color.gray;
-> _titleFont = Font.defaultFont ();
-20,30d19
-<
-< /* Convenience constructor for instantiating a Button with
-< * bounds x, y, width, and height. Equivalent to
-< * foo = new Button ();
-< * foo.init (x, y, width, height);
-< */
-< public Button (int x, int y, int width, int height)
-< {
-< this ();
-< init (x, y, width, height);
-< }
-
-Whereas, stock diff-2.7 produces:
-
-[ rittle@supra ]; make diff-mine-yours
-diff -a --horizon-lines=11 -- testcase-mine testcase-yours; true
-16,29c16,18
-< // _titleColor = Color.black;
-< // _disabledTitleColor = Color.gray;
-< // _titleFont = Font.defaultFont ();
-< }
-<
-< /* Convenience constructor for instantiating a Button with
-< * bounds x, y, width, and height. Equivalent to
-< * foo = new Button ();
-< * foo.init (x, y, width, height);
-< */
-< public Button (int x, int y, int width, int height)
-< {
-< this ();
-< init (x, y, width, height);
----
-> _titleColor = Color.black;
-> _disabledTitleColor = Color.gray;
-> _titleFont = Font.defaultFont ();
-
-A better solution might be to disable the boundary shifting code
-unless explicitly turned on via command line argument. That way
-programs, like diff3, expecting unoptimized diff regions will work
-correctly, yet users can get smaller diffs, if desired. The problem
-is that diff3 doesn't properly track changes once they have been
-optimized.
-
-BTW, I never did like the look of the `optimized diff regions', so I
-consider this a good change for other reasons... :-)
-
-Enjoy!
-
-Regards,
-Loren
---
-Loren J. Rittle (rittle@comm.mot.com) PGP KeyIDs: 1024/B98B3249 2048/ADCE34A5
-Systems Technology Research (IL02/2240) FP1024:6810D8AB3029874DD7065BC52067EAFD
-Motorola, Inc. FP2048:FDC0292446937F2A240BC07D42763672
-(847) 576-7794 Call for verification of fingerprints.
diff --git a/contrib/cvs/lib/getwd.c b/contrib/cvs/lib/getwd.c
deleted file mode 100644
index 5707dcbf4a5ef..0000000000000
--- a/contrib/cvs/lib/getwd.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* getwd.c -- get current working directory pathname
- Copyright (C) 1992 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
- 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. */
-
-/* Some systems which include both getwd() and getcwd() have an implementation
- of getwd() which is much faster than getcwd(). As a result, we use the
- system's getwd() if it is available */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "system.h"
-
-/* Get the current working directory into PATHNAME */
-
-char *
-getwd (pathname)
- char *pathname;
-{
- char *getcwd();
-
- return (getcwd(pathname, PATH_MAX));
-}
diff --git a/contrib/cvs/lib/strdup.c b/contrib/cvs/lib/strdup.c
deleted file mode 100644
index c81969da00d7e..0000000000000
--- a/contrib/cvs/lib/strdup.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* strdup.c -- return a newly allocated copy of a string
- Copyright (C) 1990 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
- 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. */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef STDC_HEADERS
-#include <string.h>
-#include <stdlib.h>
-#else
-char *malloc ();
-char *strcpy ();
-#endif
-
-/* Return a newly allocated copy of STR,
- or 0 if out of memory. */
-
-char *
-strdup (str)
- char *str;
-{
- char *newstr;
-
- newstr = (char *) malloc (strlen (str) + 1);
- if (newstr)
- strcpy (newstr, str);
- return newstr;
-}
diff --git a/contrib/cvs/lib/strippath.c b/contrib/cvs/lib/strippath.c
deleted file mode 100644
index 39687f92b8047..0000000000000
--- a/contrib/cvs/lib/strippath.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* strippath.c -- remove unnecessary components from a path specifier
- Copyright (C) 1992 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
- 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#if STDC_HEADERS || HAVE_STRING_H
-#include <string.h>
-/* An ANSI string.h and pre-ANSI memory.h might conflict. */
-#if !STDC_HEADERS && HAVE_MEMORY_H
-#include <memory.h>
-#endif /* not STDC_HEADERS and HAVE_MEMORY_H */
-#else /* not STDC_HJEADERS and not HAVE_STRING_H */
-#include <strings.h>
-/* memory.h and strings.h conflict on some systems. */
-#endif /* not STDC_HEADERS and not HAVE_STRING_H */
-
-#include <stdio.h>
-
-#if __STDC__
-static void remove_component(char *beginc, char *endc);
-void strip_trailing_slashes(char *path);
-#else
-static void remove_component();
-void strip_trailing_slashes();
-#endif /* __STDC__ */
-
-/* Remove unnecessary components from PATH. */
-
-void
-strip_path (path)
- char *path;
-{
- int stripped = 0;
- char *cp, *slash;
-
- for (cp = path; (slash = strchr(cp, '/')) != NULL; cp = slash)
- {
- *slash = '\0';
- if ((!*cp && (cp != path || stripped)) ||
- strcmp(cp, ".") == 0 || strcmp(cp, "/") == 0)
- {
- stripped = 1;
- remove_component(cp, slash);
- slash = cp;
- }
- else
- {
- *slash++ = '/';
- }
- }
- strip_trailing_slashes(path);
-}
-
-/* Remove the component delimited by BEGINC and ENDC from the path */
-
-static void
-remove_component (beginc, endc)
- char *beginc;
- char *endc;
-{
- for (endc++; *endc; endc++)
- *beginc++ = *endc;
- *beginc = '\0';
-}
diff --git a/contrib/cvs/src/NOTES b/contrib/cvs/src/NOTES
deleted file mode 100644
index 646ebdf85207d..0000000000000
--- a/contrib/cvs/src/NOTES
+++ /dev/null
@@ -1,60 +0,0 @@
-wishlist - Tue Nov 2 15:22:58 PST 1993
-
-* bcopy -> memcpy & friends.
- ** done 12/18/93
-
-* remove static buffers.
-* replace list & node cache with recursive obstacks, (xmalloc,
- getnode, getlist)
-* check all io functions for error return codes. also check all
- system calls.
-* error check mkdir.
-
----
-Old notes...
-
-* All sizing limits are gone. The rest of these items were incidental
- in that effort.
-
-* login name from history was duplicated. taught existing routine to
- cache and use that instead. Also add routines to cache uid, pid,
- etc.
-
-* ign strings were never freed. Now they are.
-
-* there was a printf("... %s ...", cp) vs *cp bug in history.c. Now
- fixed.
-
-* The environment variables TMPDIR, HOME, and LOGNAME were not
- honored. Now they are.
-
-* extra line inserted by do_editor() is gone. Then obviated. Editor
- is now called exactly once per checkin.
-
-* revised editor behaviour. Never use /dev/tty. If the editor
- session fails, we haven't yet done anything. Therefor the user can
- safely rerun cvs and we should just fail. Also use the editor for
- initial log messages on added files. Also omit the confirmation
- when adding directories. Adding directories will require an
- explicit "commit" step soon. Make it possible to prevent null login
- messages using #define REQUIRE_LOG_MESSAGES
-
-* prototypes for all callbacks.
-
-* all callbacks get ref pointers.
-
-* do_recursion/start_recursion now use recusion_frame's rather than a
- list of a lot of pointers and global variables.
-
-* corrected types on status_dirproc().
-
-* CONFIRM_DIRECTORY_ADDS
-
-* re_comp was innappropriate in a few places. I've eliminated it.
-
-* FORCE_MESSAGE_ON_ADD
-
-* So I built a regression test. Let's call it a sanity check to be
- less ambitious. It exposed that cvs is difficult to call from
- scripts.
-
diff --git a/contrib/cvs/src/README-rm-add b/contrib/cvs/src/README-rm-add
deleted file mode 100644
index 87fd7c6d27741..0000000000000
--- a/contrib/cvs/src/README-rm-add
+++ /dev/null
@@ -1,31 +0,0 @@
-WHAT THE "DEATH SUPPORT" FEATURES DO:
-
-(Some of the death support stuff is documented in the main manual, but
-this file is for stuff which noone has gotten around to adding to the
-main manual yet).
-
-CVS with death support can record when a file is active, or alive, and
-when it is removed, or dead. With this facility you can record the
-history of a file, including the fact that at some point in its life
-the file was removed and then later added.
-
-Files can now be added or removed in a branch and later merged
-into the trunk.
-
- cvs update -A
- touch a b c
- cvs add a b c ; cvs ci -m "added" a b c
- cvs tag -b branchtag
- cvs update -r branchtag
- touch d ; cvs add d
- rm a ; cvs rm a
- cvs ci -m "added d, removed a"
- cvs update -A
- cvs update -jbranchtag
-
-Added and removed files may also be merged between branches.
-
-Files removed in the trunk may be merged into branches.
-
-Files added on the trunk are a special case. They cannot be merged
-into a branch. Instead, simply branch the file by hand.
diff --git a/contrib/cvs/tools/pcl-cvs/ChangeLog.woods b/contrib/cvs/tools/pcl-cvs/ChangeLog.woods
deleted file mode 100644
index 827c3f2e3fd75..0000000000000
--- a/contrib/cvs/tools/pcl-cvs/ChangeLog.woods
+++ /dev/null
@@ -1,383 +0,0 @@
-Thu Jan 4 13:19:20 1996 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - from Cyclic CVS version:
-
- Sat Dec 30 15:01:45 1995 Karl Fogel <kfogel@floss.cyclic.com>
-
- * pcl-cvs.el (cvs-changelog-ours-p): check that
- `add-log-full-name' and `add-log-mailing-address' are non-nil, in
- addition to checking that they are boundp.
-
-Fri Dec 22 17:52:17 1995 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - (cvs-parse-stdout): make the "connection timed out" an error
-
- - from Cyclic CVS version:
-
- Thu Dec 21 16:45:48 1995 Karl Fogel <kfogel@occs.cs.oberlin.edu>
-
- * pcl-cvs.el (cvs-parse-stderr): ignore kerberos connection
- failure, since CVS will automatically try rsh next. I think this
- is okay because if a person needs to know that kerberos failed,
- then chances are the rsh failed too, and *that* error message will
- clue them in that something's afoot.
-
-Thu Dec 21 21:13:10 1995 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - (cvs-parse-stdout): handle "Permission denied" (which will
- often precede the "premature EOF from server" message....)
-
- - from Cyclic CVS version:
-
- Wed Nov 22 11:01:50 1995 Joshua Cowan <jcowan@hermit.reslife.okstate.edu>
-
- * pcl-cvs.el (cvs-changelog-ours-p): use `user-full-name' if
- `add-log-full-name' unbound, as not every uses the stuff in
- add-log.el. Same with `add-log-mailing-address'.
- (cvs-changelog-entries): change to `change-log-mode' unless
- already in it.
-
- * ToDo:
- - more new ideas....
-
-Mon Nov 27 23:19:50 1995 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - add more support for recognizing unknown directories
- - add initial support for properly supporting directories with cvs-mode-add
-
-Tue Nov 21 16:51:45 1995 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - fix up the debug mail message buffer formatting
- - include bugs@most.weird.com on debug message list (i.e. my gnats)
- (cvs-parse-stderr): fix up handling of some transient errors, such as
- network server errors
-
-Mon Nov 20 19:13:34 1995 Greg A. Woods <woods@most.weird.com>
-
- * Makefile:
- - minor tweaks on version numbers, etc.
- - added '-n -q' to emacs arguments...
-
- * pcl-cvs.texinfo:
- - mention new pcl-cvs release properly
- - mention new CVS release
- - fix grammar & layout style here and there...
- - move GPL to the bottom and into an included file (should ref another
- info document)
- - add Ediff documentation, fix up Emerge docs.
- - updated Contributors section
- - add note about 'Patched' state (FIXME: more remote docs needed!!!!)
- - added some documentation for cvs-mode-changelog-commit
- - added a few more index entries, etc.
-
- * pcl-cvs.el:
- - update comments and documentation, fix grammar, etc.
- - mention new CVS release
- - re-sort cvs-mode-map setup, document key-map convention
- - re-write (cvs-mode-ediff), adding (cvs-old-ediff-interface)
- - fix (cvs-retrieve-revision-to-tmpfile) to handle empty revision arg.
-
- * ToDo:
- - lots of new ideas
- - give up on 'C-u' for cvs-mode-*
- - minor prioritisation
-
-Thu Nov 16 20:38:58 1995 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el (cvs-mode-emerge):
- fix the quit-hook setup for ediff-*
- (cvs-mode-ediff): new, based on cvs-mode-emerge
-
- * pcl-cvs.el (cvs-mode-emerge):
- cleanups and use emerge-hooks, and protect from
- multiple invocations (idea from Loren James Rittle <rittle@comm.mot.com>)
-
- * pcl-cvs.el (cvs-diff-program):
- document problems with vendor versions
-
- * pcl-cvs.el, ToDo:
- - add minimal "cvs tag" and "cvs rtag" support
- (cvs-mod): clean up the documentation
- (cvs-mode-map): clean up a bit too
- (cvs-mode-log), (cvs-mode-status): clean up implementation
-
-Wed Nov 15 18:39:22 1995 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el, ToDo:
- (cvs-parse-stderr) - handle some more error messages from CVS
-
- * pcl-cvs.el:
- Various tweaks and fixes after diffing with CVS-1.6.1 version:
- - spelling/typos
- - minor re-indentation
- - missed one check for PATCHED
- - more documentation and comment fixups
-
- * pcl-cvs.el:
- From: Loren James Rittle <rittle@comm.mot.com>
- To: info-cvs@prep.ai.mit.edu
- Subject: Change to allow pcl-cvs to use ediff instead of emerge
- Date: Mon, 6 Nov 95 17:17:31 CST
-
- 2) ensures the user wants to `update' in cases where a possible conflict
- currectly exists;
-
- * pcl-cvs.el:
- Message-Id: <9511062119.AA29213@supra.comm.mot.com>
- From: Loren James Rittle <rittle@comm.mot.com>
- To: info-cvs@prep.ai.mit.edu
- Subject: Change to allow pcl-cvs to use more hidden buffer names
- Date: Mon, 6 Nov 95 15:19:57 CST
-
-
- PCL-CVS uses hidden buffers in some places. This patch makes more
- PCL-CVS buffers hidden.
-
- Loren
-
-Tue Nov 14 20:56:41 1995 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el (cvs-do-removal):
- don't fail if the file is missing or a directory
- (cvs-mode-add-change-log-entry-other-window): get the
- change-log-filename and entry name right
-
- * pcl-cvs.el, ChangeLog:
- * pcl-cvs.el (local-path, local-gnu-path): added documentation
- string
- (cvs-rmdir-program): use the proper default and leave it alone
-
- * pcl-cvs.el:
- - from ccvs official sources:
- revision 1.12
- pcl-cvs.el 1995/05/19 01:59:26 jimb
- Automatically guess CVS log entries from ChangeLog contents.
- * pcl-cvs.el (cvs-mode-changelog-commit): New command.
- (cvs-changelog-full-paragraphs): New variable.
- (cvs-changelog-name, cvs-narrow-changelog,
- cvs-changelog-paragraph, cvs-changelog-subparagraph,
- cvs-changelog-entry, cvs-changelog-ours-p, cvs-relative-path,
- cvs-changelog-entries, cvs-changelog-insert-entries, cvs-union,
- cvs-insert-changelog-entries, cvs-edit-delete-common-indentation): New functions.
- (cvs-mode-map): Bind 'C' to cvs-mode-changelog-commit.
- (cvs-mode): Mention cvs-mode-changelog-commit in docstring.
-
- * ChangeLog:
- - from ccvs official sources:
- revision 1.12
- ChangeLog 1995/05/19 01:59:26 jimb
- Automatically guess CVS log entries from ChangeLog contents.
- * pcl-cvs.el (cvs-mode-changelog-commit): New command.
- (cvs-changelog-full-paragraphs): New variable.
- (cvs-changelog-name, cvs-narrow-changelog,
- cvs-changelog-paragraph, cvs-changelog-subparagraph,
- cvs-changelog-entry, cvs-changelog-ours-p, cvs-relative-path,
- cvs-changelog-entries, cvs-changelog-insert-entries, cvs-union,
- cvs-insert-changelog-entries, cvs-edit-delete-common-indentation): New functions.
- (cvs-mode-map): Bind 'C' to cvs-mode-changelog-commit.
- (cvs-mode): Mention cvs-mode-changelog-commit in docstring.
-
- * pcl-cvs.el:
- - slight variant of this change ccvs official sources
- revision 1.10
- pcl-cvs.el 1995/05/03 18:56:20 jimb
- (cvs-parse-stderr): Handle colons after both "rcsmerge" and "warning".
-
- * pcl-cvs.el:
- - from ccvs official sources
- revision 1.9
- pcl-cvs.el 1995/04/26 02:36:15 jimb
- (cvs-parse-stderr): Recognize "conflicts" as well as "overlaps" before
- "during merge."
- - also fixed a few other minor inconsitencies in that region...
-
- * pcl-cvs.el:
- - from ccvs official sources
- revision 1.5
- pcl-cvs.el 1995/01/31 23:31:39 jimb
- (cvs-cvsroot-required): New variable.
- (cvs-do-update): If cvs-cvsroot-required is not set, don't complain if
- CVSROOT and cvs-cvsroot are both unset.
-
- * pcl-cvs.el:
- - use 'identity instead of '(lambda (foo) foo)
- - fix a botch in cvs-make-list
- - check cvs-status-flags and cvs-log-flags are lists before using them
-
-Mon Nov 13 23:49:25 1995 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - fixed up version strings
- - minor changes to cvs-*-flags defaults
- - added functions parse-string and cvs-make-list
- - modified various parsers to handle "cvs server:" messages
- - added support for "P" flag (PATCHED)
- - fixed use of "-Q" for "cvs status"
- - use cvs-make-list when reading new values for cvs-*-flags
-
- * Makefile:
- - fix the info install rules...
-
- * ToDo:
- - more things to look into...
-
-Sun Mar 12 20:40:05 1995 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - minor twiggle to old RCS Id's to match format
-
- * Makefile:
- - fix up RCS Id's
- - add clobber to "clean" targets
- - separate installation of *.el's and default off
- - fix INSTALL_DATA
-
- * pcl-cvs.el:
- - minor twiggles to automatically localise and to note this is a local version
-
- * ToDo:
- - first cut
-
- * .cvsignore:
- - first time in -- default generated targets
-
-Tue Nov 22 20:49:39 1994 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - adjust RCS keywords
- - reset shell to just /bin/sh
-
-Fri Nov 4 21:14:55 1994 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - fix directory for new CVS-1.4
- - add '-v' to cvs-status-flags
-
-Mon Dec 6 19:06:18 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - I don't quite know how that happened, but we had a variable and
- function with the same name, and an un-defined variable....
-
- * pcl-cvs.el:
- - re-format a few things....
- - replace numerous duplicate lambda expressions with a new common
- function: cvs-quote-multiword-string
-
-Fri Nov 26 20:54:25 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - oops! was changing the directory string we were comparing against!
-
- * pcl-cvs.el:
- - oops -- missing an end-sexp....
-
- * pcl-cvs.el:
- - in theory this fixes up all the local directory vs.
- default-directory problems
-
- * pcl-cvs.el:
- - ensure multi-word args are quoted in messages
- - enhance naming of diff buffers
-
-Fri Nov 12 18:43:09 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - update comment about "Conflict"...
- - fiddle with rcs-ident stuff
-
-Thu Nov 4 01:15:53 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - set default cvs-status-flags to '("-Q)
- - use cvs-bakprefix where intended
- - add functions and keymaps for setting cvs-*-flags.
- - re-pretty-print some stuff
-
-Wed Nov 3 23:11:15 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - use cvs-kill-buffer-visiting in cvs-mode-diff-vendor for cleanup.
- - fix last minibuffer message in cvs-mode-diff-vendor.
-
- * pcl-cvs.el:
- - OOPS! put (list ...) back where we need evaluation.
- - default to use of CVS/Root always for cvs-update, if it exits.
-
- * pcl-cvs.el:
- - oops -- minor bug with usage of mapconcat
- - changed (list ...) to '(...)
-
- * pcl-cvs.texinfo:
- - minor updates of filenames and versions.
- - added myself as a contributor
-
- * pcl-cvs.el:
- - re-justified multitueds of comments, and fixed minor bits too.
- - added support for CVS/Root file to supplement use of $CVSROOT and/or
- cvs-cvsroot.
- - added cvs-mode-map binding for cvs-change-cvsroot
- - added optional message-fmt argument to cvs-execute-list (prints
- message showing progress in minibuffer).
- - modified cvs-mode-diff-cvs to put results in
- cvs-fileinfo->cvs-diff-buffer.
- - modified cvs-mode-diff-backup to put results in
- cvs-fileinfo->backup-diff-buffer.
- - modified cvs-mode-diff-vendor to put results in
- cvs-fileinfo->vendor-diff-buffer.
- - modified cvs-mode-diff-* to use cvs-diff-flags.
- - added cvs-*-diffable.
- - fixed various minibuffer progress messages.
-
-Thu Oct 28 23:10:38 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- - many minor improvements,
- - several bug fixes,
- - added some support for vendor branch merging,
-
-Tue Oct 26 18:26:33 1993 Greg A. Woods <woods@most.weird.com>
-
- * Makefile:
- - fixes, localisations, etc.
-
-Fri Oct 22 21:19:15 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el, Makefile:
- - localisations....
-
- * pcl-cvs.el:
- pick the 1.05 version over local edits....
-
-Thu Oct 21 21:40:26 1993 Greg A. Woods <woods@most.weird.com>
-
- * texinfo.tex, pcl-cvs.texinfo, pcl-cvs.el, pcl-cvs-startup.el, pcl-cvs-lucid.el, compile-all.el, README, NEWS, Makefile, INSTALL, ChangeLog:
- pcl-cvs version 1.05 distribution
-
-Tue Jun 1 16:25:35 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- add a newline to the cvs-mode-add description
-
-Fri May 28 14:13:41 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- add cvs-commit-buffer-require-final-newline to allow forcing a newline
- onto the commit buffer
-
-Fri May 14 22:35:01 1993 Greg A. Woods <woods@most.weird.com>
-
- * pcl-cvs.el:
- localizations....
-
- * ChangeLog, INSTALL, Makefile, NEWS, README, compile-all.el, pcl-cvs.el, pcl-cvs-lucid.el, pcl-cvs-startup.el, pcl-cvs.texinfo, texinfo.tex:
- pcl-cvs version 1.04 distribution
-
- * ChangeLog, INSTALL, Makefile, NEWS, README, compile-all.el, pcl-cvs.el, pcl-cvs-lucid.el, pcl-cvs-startup.el, pcl-cvs.texinfo, texinfo.tex:
- Initial revision
-
diff --git a/contrib/cvs/tools/pcl-cvs/ToDo b/contrib/cvs/tools/pcl-cvs/ToDo
deleted file mode 100644
index 8e317f897cca6..0000000000000
--- a/contrib/cvs/tools/pcl-cvs/ToDo
+++ /dev/null
@@ -1,44 +0,0 @@
-- documentation.... (esp. ChangeLog support)
-
-- IMPORTANT: make cvs-mode-tag run in the background
-
-- fix 'cvs-mode-add' to "cvs update" in the added directory
-
-- write 'cvs-mode-import'
-
-- write 'cvs-mode-handle-new-vendor-version'
-
- - checks out module
- - does "cvs -n tag LAST_VENDOR" to find old files into *cvs*
-
-- add 'cvs-set-cvs-flags' for top level cvs command flags
-
-- add '\M-a' to do arbitrary 'cvs admin' commands
-
-- add 'cvs patch' support (with completion on tag names and hooks to
-help generate ChangeLog files with rcs2log, etc.)
-
-- add 'cvs export' support (with completion on tag names and hooks to
-help generate full releases)
-
-- add 'cvs-mode-version' to call 'cvs -v' [on ^C-cv ?] (really???)
-
-- re-write rcs2log in e-lisp.
-
-- add support for parsing 'modules' file ("cvs co -c")
-
-- enhance 'cvs-mode-rtag'
-
-- fix 'cvs-examine'
-
-- write 'cvs-mode-checkout' and 'cvs-mode-checkout-other-window'
-
-- write 'cvs-mode-release'
-
-- add an update mode that keeps all files
-
- - this will require all commands to work only on non-up-to-date
- files
-
---
-#ident "@(#)cvs/contrib/pcl-cvs:$Name: $Id: ToDo,v 1.1 1996/04/14 15:17:57 kfogel Exp $"