annotate lib-src/rcs-checkin @ 1330:4542b72c005e

[xemacs-hg @ 2003-03-01 07:25:26 by ben] build patch Makefile.in.in: Move src deletions to src/Makefile.in.in. dump-paths.el, dumped-lisp.el: Delete. Combine stuff into setup-paths.el. find-paths.el: Removed. Make this file contain generic routines only. Move stuff to compute Emacs roots to setup-paths.el. startup.el: Removed. Move these variables into setup-paths.el. setup-paths.el, startup.el: Removed. Combine all high-level code for computing the paths into setup-paths.el. Create new function startup-find-load-path to encapsulate all logic for computing `load-path'. Eliminate invocation-directory and invocation-name parameters since there is no point (false generality) -- the code references other globals, which cannot be specified. Eliminate some code duplicated between setup-paths.el and startup.el. Clean up the debug-paths code and output load-path in addition. Add logic to paths-emacs-root-p to support separated source and build trees. loadup.el, make-docfile.el, update-elc-2.el, update-elc.el: Rewrite to allow for separated source and build trees, as may occur in MS Windows. NOTE TO BUILD HACKERS: loadup.el, make-docfile.el, update-elc.el and update-elc-2.el made two assumptions that are no longer correct: (1) The source and build trees are in the same place. (2) They can make assumptions about where `.' is. These files now compute the locations of the source and build roots at the top of the file. *ALL* constant file names or path snippets must now be made absolute using expand-file-name and one of these roots. dumped-lisp.el, packages.el: Removed. Remove some unused lists of Lisp files. packages-hardcoded-lisp (empty, in any case) moved to dumped-lisp.el. startup.el: When a compiled init file is out-of-date wrt the uncompiled version, load the uncompiled version and issue a nasty warning. update-elc-2.el: Force touching of auto-autoloads files when REBUILD_AUTOLOADS was set. update-elc.el: Fix code that checks whether dumping is necessary to check against xemacs.dmp, not xemacs.exe, when Unix and pdump. lwlib-Xm.c: Fix compile warning. README, config.inc.samp, xemacs.mak: -- Major reorganization and cleanup. -- Add support for separated build tree and source tree. -- Delete all support for X Windows building, since it's totally bit-rotten and will never be fixed up. Instruct people to use Cygwin if they want such support. make-build-dir: New script to create a skeleton build tree for use with separated build and source tree compilation. m/acorn.h, m/alliant-2800.h, m/alliant.h, m/altos.h, m/amdahl.h, m/arm.h, m/att3b.h, m/aviion.h, m/clipper.h, m/cnvrgnt.h, m/convex.h, m/cydra5.h, m/delta.h, m/delta88k.h, m/dpx2.h, m/elxsi.h, m/ews4800r.h, m/gould.h, m/hp800.h, m/hp9000s300.h, m/i860.h, m/ibmps2-aix.h, m/ibmrs6000.h, m/ibmrt-aix.h, m/ibmrt.h, m/intel386.h, m/iris4d.h, m/iris5d.h, m/iris6d.h, m/irist.h, m/m68k.h, m/masscomp.h, m/mg1.h, m/mips-nec.h, m/mips-siemens.h, m/mips.h, m/nh3000.h, m/nh4000.h, m/ns32000.h, m/plexus.h, m/powerpc.h, m/sequent-ptx.h, m/sequent.h, m/sgi-challenge.h, m/stride.h, m/tad68k.h, m/targon31.h, m/tekxd88.h, m/template.h, m/tower32.h, m/tower32v3.h, m/ustation.h, m/wicat.h, m/xps100.h, data.c, doc.c, editfns.c, emacs.c, lrecord.h, ntheap.c, process-unix.c, sysdep.c, unexec.c: Delete all support for bit-rotten CANNOT_DUMP. Just use pdump. Makefile.in.in: Lots o' cleanup. Use names like LISP, SRC instead of lispdir, srcdir, for consistency with xemacs.mak and the conventions in the rest of the file. Eliminate use of ${...} in favor of $(...), to make it easier to move code between this file and xemacs.mak. Fix dependency handling wrt NEEDTODUMP to eliminate problems some people (e.g. Vin) have been seeing with non-GNU makes. Write a long section about the subtle but oh-so-important differences in dependency processing between nmake, make, and GNU make. Add unicode-encapsulate target, from xemacs.mak. chartab.c, lrecord.h: Fix crash due to attempt to free objects across dump/undump.
author ben
date Sat, 01 Mar 2003 07:25:56 +0000
parents 3ecd8885ac67
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 #! /bin/sh
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 # This script accepts any number of file arguments and checks them into RCS.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 #
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 # Arguments which are detectably either RCS masters (with names ending in ,v)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 # or Emacs version files (with names of the form foo.~<number>~) are ignored.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 # For each file foo, the script looks for Emacs version files related to it.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 # These files are checked in as deltas, oldest first, so that the contents of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 # the file itself becomes the latest revision in the master.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 #
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 # The first line of each file is used as its description text. The file itself
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 # is not deleted, as under VC with vc-keep-workfiles at its default of t, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 # all the version files are.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 #
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 # If an argument file is already version-controlled under RCS, any version
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 # files are added to the list of deltas and deleted, and then the workfile
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 # is checked in again as the latest version. This is probably not quite
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 # what was wanted, and is the main reason VC doesn't simply call this to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 # do checkins.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 #
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 # This script is intended to be used to convert files with an old-Emacs-style
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 # version history for use with VC (the Emacs 19 version-control interface),
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 # which likes to use RCS as its back end. It was written by Paul Eggert
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 # and revised/documented for use with VC by Eric S. Raymond, Mar 19 1993.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 case $# in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 echo "rcs-checkin: usage: rcs-checkin file ..."
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 echo "rcs-checkin: function: checks file.~*~ and file into a new RCS file"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 echo "rcs-checkin: function: uses the file's first line for the description"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 esac
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 # expr pattern to extract owner from ls -l output
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 ls_owner_pattern='[^ ][^ ]* *[^ ][^ ]* *\([^ ][^ ]*\)'
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 for file
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 do
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 # Make it easier to say `rcs-checkin *'
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 # by ignoring file names that already contain `~', or end in `,v'.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 case $file in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 *~* | *,v) continue
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 esac
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 # Ignore non-files too.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 test -f "$file" || continue
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 # Check that file is readable.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 test -r "$file" || exit
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 # If the RCS file does not already exist,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 # initialize it with a description from $file's first line.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 rlog -R "$file" >/dev/null 2>&1 ||
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 rcs -i -q -t-"`sed 1q $file`" "$file" || exit
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 # Get list of old files.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 oldfiles=`
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 ls $file.~[0-9]*~ 2>/dev/null |
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 sort -t~ -n +1
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 `
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 # Check that they are properly sorted by date.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 case $oldfiles in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 ?*)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 oldfiles_by_date=`ls -rt $file $oldfiles`
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 test " $oldfiles
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 $file" = " $oldfiles_by_date" || {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 echo >&2 "rcs-checkin: skipping $file, because its mod times are out of order.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 Sorted by mod time:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 $oldfiles_by_date
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 Sorted by name:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 $oldfiles
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 $file"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 continue
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 esac
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 echo >&2 rcs-checkin: checking in: $oldfiles $file
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 # Save $file as $file.~-~ temporarily.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 mv "$file" "$file.~-~" || exit
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 # Rename each old file to $file, and check it in.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 for oldfile in $oldfiles
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 do
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 mv "$oldfile" "$file" || exit
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 ls_l=`ls -l "$file"` || exit
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner=
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 echo "Formerly ${oldfile}" | ci -d -l -q $owner "$file" || exit
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 done
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 # Bring $file back from $file.~-~, and check it in.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 mv "$file.~-~" "$file" || exit
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 ls_l=`ls -l "$file"` || exit
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner=
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 ci -d -q -u $owner -m"entered into RCS" "$file" || exit
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 done
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98