annotate lib-src/rcs-checkin @ 4451:e214ff9f9507

Use char-tables, not vectors, to instantiate the display table specifiers. 2007-07-21 Aidan Kehoe <kehoea@parhasard.net> * mule/cyril-util.el: * mule/cyril-util.el (cyrillic-encode-koi8-r-char): Removed. * mule/cyril-util.el (cyrillic-encode-alternativnyj-char): Removed. No-one uses these functions in google.com/codesearch, GNU have a comment doubting their utility, and their implementation is trivial. * mule/cyril-util.el (cyrillic-language-alist): Reformatted. * mule/cyril-util.el (standard-display-table)): Removed. It wasn't used anyway. * mule/cyril-util.el (standard-display-cyrillic-translit): Rewrite it to work with character tables as display tables, and not to abort with an error. 2007-07-21 Aidan Kehoe <kehoea@parhasard.net> * disp-table.el: * disp-table.el (make-display-table): Moved earlier in the file in a weak attempt at making syncing with GNU easier. * disp-table.el (frob-display-table): Autoload it, accept TAG-SET, for editing specifiers. * disp-table.el (describe-display-table): Have it handle character sets. * disp-table.el (standard-display-8bit-1): * disp-table.el (standard-display-8bit): * disp-table.el (standard-display-default-1): * disp-table.el (standard-display-ascii): * disp-table.el (standard-display-g1): * disp-table.el (standard-display-graphic): * disp-table.el (standard-display-underline): * disp-table.el (standard-display-european): Rework them all to use put-char-table, remove-char-table instead of aset. Limit standard-display-g1, standard-display-graphic to TTYs; have standard-display-underline work on X11 too. * font.el (font-caps-display-table): Use put-char-table instead of aset when editing a display table. * x-init.el: * x-init.el (tab): Create the initial display table as a char-table, not a vector.
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 24 Dec 2007 20:22:08 +0100
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