annotate lib-src/rcs-checkin @ 22758:dbd9ecc9dbac

Added next-buffer/previous-buffer keybindings (bound to M-n/M-p). (crisp-unbury-buffer): New function. Fixed bogus XEmacs/Lucid string-match checking. Made modeline entry mouse2-able. (crisp-mode-map): Make this a sparse keymap parented from current-global-map. (crisp-mode-original-keymap): Don't copy the keymap. (crisp-last-last-command): Renamed from last-last-command. defvar it. (crisp-mode): Honor ARG. (crisp-kill-line, crisp-copy-line): When a region isn't highlighted, use the region from point to eol. Honor prefix argument. (crisp-submit-bug-report): New command, taken from cc-mode. Shortened the version numbering, removed the release-version tracking (crisp-version): New function. New keybindings `C-home', `C-end', `M-home', `M-end', `C-f', `M-l', `M-m'. (crisp-copy-line): No need to save point. Removed S-right and S-left bindings. Abstract the marking and selection interfaces so that we can be compatible with both Emacs and XEmacs. And try and make the behavior as close as possible under both environments so that there are no surprises.
author Karl Heuer <kwzh@gnu.org>
date Tue, 14 Jul 1998 22:17:35 +0000
parents da322c027bf0
children c8fb06423da0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12507
da322c027bf0 Replace `#!/bin/sh' with `#! /bin/sh', for benefit of systems
Paul Eggert <eggert@twinsun.com>
parents: 9611
diff changeset
1 #! /bin/sh
2273
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2
2275
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
3 # This script accepts any number of file arguments and checks them into RCS.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
4 #
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
5 # Arguments which are detectably either RCS masters (with names ending in ,v)
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
6 # or Emacs version files (with names of the form foo.~<number>~) are ignored.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
7 # For each file foo, the script looks for Emacs version files related to it.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
8 # These files are checked in as deltas, oldest first, so that the contents of
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
9 # the file itself becomes the latest revision in the master.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
10 #
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
11 # The first line of each file is used as its description text. The file itself
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
12 # is not deleted, as under VC with vc-keep-workfiles at its default of t, but
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
13 # all the version files are.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
14 #
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
15 # If an argument file is already version-controlled under RCS, any version
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
16 # files are added to the list of deltas and deleted, and then the workfile
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
17 # is checked in again as the latest version. This is probably not quite
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
18 # what was wanted, and is the main reason VC doesn't simply call this to
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
19 # do checkins.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
20 #
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
21 # This script is intended to be used to convert files with an old-Emacs-style
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
22 # version history for use with VC (the Emacs 19 version-control interface),
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
23 # which likes to use RCS as its back end. It was written by Paul Eggert
2689
dcbc46826515 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2275
diff changeset
24 # and revised/documented for use with VC by Eric S. Raymond, Mar 19 1993.
2275
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
25
2273
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
26 case $# in
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
27 0)
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
28 echo "rcs-checkin: usage: rcs-checkin file ..."
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
29 echo "rcs-checkin: function: checks file.~*~ and file into a new RCS file"
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
30 echo "rcs-checkin: function: uses the file's first line for the description"
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
31 esac
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
32
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
33 # expr pattern to extract owner from ls -l output
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
34 ls_owner_pattern='[^ ][^ ]* *[^ ][^ ]* *\([^ ][^ ]*\)'
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
35
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
36 for file
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
37 do
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
38 # Make it easier to say `rcs-checkin *'
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
39 # by ignoring file names that already contain `~', or end in `,v'.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
40 case $file in
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
41 *~* | *,v) continue
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
42 esac
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
43 # Ignore non-files too.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
44 test -f "$file" || continue
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
45
4343
aa19e3673b9f Don't check whether file is readable until we have decided not to ignore it.
Paul Eggert <eggert@twinsun.com>
parents: 2689
diff changeset
46 # Check that file is readable.
9611
9e5812a795da Use test -r instead of < to check readability, to avoid syntax error.
David J. MacKenzie <djm@gnu.org>
parents: 4343
diff changeset
47 test -r "$file" || exit
4343
aa19e3673b9f Don't check whether file is readable until we have decided not to ignore it.
Paul Eggert <eggert@twinsun.com>
parents: 2689
diff changeset
48
2273
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
49 # If the RCS file does not already exist,
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
50 # initialize it with a description from $file's first line.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
51 rlog -R "$file" >/dev/null 2>&1 ||
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
52 rcs -i -q -t-"`sed 1q $file`" "$file" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
53
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
54 # Get list of old files.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
55 oldfiles=`
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
56 ls $file.~[0-9]*~ 2>/dev/null |
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
57 sort -t~ -n +1
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
58 `
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
59
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
60 # Check that they are properly sorted by date.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
61 case $oldfiles in
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
62 ?*)
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
63 oldfiles_by_date=`ls -rt $file $oldfiles`
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
64 test " $oldfiles
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
65 $file" = " $oldfiles_by_date" || {
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
66 echo >&2 "rcs-checkin: skipping $file, because its mod times are out of order.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
67
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
68 Sorted by mod time:
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
69 $oldfiles_by_date
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
70
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
71 Sorted by name:
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
72 $oldfiles
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
73 $file"
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
74 continue
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
75 }
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
76 esac
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
77
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
78 echo >&2 rcs-checkin: checking in: $oldfiles $file
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
79
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
80 # Save $file as $file.~-~ temporarily.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
81 mv "$file" "$file.~-~" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
82
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
83 # Rename each old file to $file, and check it in.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
84 for oldfile in $oldfiles
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
85 do
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
86 mv "$oldfile" "$file" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
87 ls_l=`ls -l "$file"` || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
88 owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner=
2275
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
89 echo "Formerly ${oldfile}" | ci -d -l -q $owner "$file" || exit
2273
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
90 done
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
91
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
92 # Bring $file back from $file.~-~, and check it in.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
93 mv "$file.~-~" "$file" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
94 ls_l=`ls -l "$file"` || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
95 owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner=
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
96 ci -d -q -u $owner -m"entered into RCS" "$file" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
97 done
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
98