annotate lisp/case-table.el @ 13883:a4eef7470b6b

(ls-lisp-support-shell-wildcards): New variable. (insert-directory): Convert the filename wildcard to an equivalent Emacs regexp, when `ls-lisp-support-shell-wildcards' is non-nil. Handle file patterns like "/foo*/" as if it were "/foo*", like the shell would. Print zero total for files whose total size is exactly zero (in particular, for no files at all). Say "No match" when no files match the given wildcard. (ls-lisp-format): Make directory listing format more like POSIX ls.
author Richard M. Stallman <rms@gnu.org>
date Thu, 28 Dec 1995 23:36:50 +0000
parents 0731fc07cd8b
children 83f275dcd93a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2229
bd3c525fa6fc Added standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 860
diff changeset
1 ;;; case-table.el --- code to extend the character set and support case tables.
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 696
diff changeset
2
7300
cc7cd83ccf3f Update copyright.
Karl Heuer <kwzh@gnu.org>
parents: 7156
diff changeset
3 ;; Copyright (C) 1988, 1994 Free Software Foundation, Inc.
846
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
4
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 696
diff changeset
5 ;; Author: Howard Gayle
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 696
diff changeset
6 ;; Maintainer: FSF
3012
d4b85bbedee8 Change "i14n" keyword to "i18n".
Jim Blandy <jimb@redhat.com>
parents: 2386
diff changeset
7 ;; Keywords: i18n
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
8
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
10
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
11 ;; GNU Emacs is free software; you can redistribute it and/or modify
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 696
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
14 ;; any later version.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
15
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
20
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
22 ;; along with GNU Emacs; see the file COPYING. If not, write to
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
23 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
24
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 696
diff changeset
25 ;;; Commentary:
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
26
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
27 ;; Written by:
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
28 ;; TN/ETX/TX/UMG Howard Gayle UUCP : seismo!enea!erix!howard
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
29 ;; Telefonaktiebolaget L M Ericsson Phone: +46 8 719 55 65
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
30 ;; Ericsson Telecom Telex: 14910 ERIC S
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
31 ;; S-126 25 Stockholm FAX : +46 8 719 64 82
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
32 ;; Sweden
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
33
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 696
diff changeset
34 ;;; Code:
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 696
diff changeset
35
2385
416abb820252 Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 2229
diff changeset
36 ;;;###autoload
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
37 (defun describe-buffer-case-table ()
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
38 "Describe the case table of the current buffer."
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
39 (interactive)
13269
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
40 (let ((description (make-char-table 'case-table)))
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
41 (map-char-table
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
42 (function (lambda (key value)
13516
0731fc07cd8b (describe-buffer-case-table): Use set-char-table-range.
Richard M. Stallman <rms@gnu.org>
parents: 13269
diff changeset
43 (set-char-table-range
13269
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
44 description key
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
45 (cond ((null key)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
46 "case-invariant")
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
47 ((/= key (downcase key))
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
48 (concat "uppercase, matches "
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
49 (char-to-string (downcase key))))
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
50 ((/= key (upcase key))
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
51 (concat "lowercase, matches "
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
52 (char-to-string (upcase key))))
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
53 (t "case-invariant")))))
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
54 (current-case-table))
3550
0d8c66f2e25e (describe-buffer-case-table): Merge locals i and ch.
Richard M. Stallman <rms@gnu.org>
parents: 3012
diff changeset
55 (save-excursion
0d8c66f2e25e (describe-buffer-case-table): Merge locals i and ch.
Richard M. Stallman <rms@gnu.org>
parents: 3012
diff changeset
56 (with-output-to-temp-buffer "*Help*"
0d8c66f2e25e (describe-buffer-case-table): Merge locals i and ch.
Richard M. Stallman <rms@gnu.org>
parents: 3012
diff changeset
57 (set-buffer standard-output)
13269
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
58 (describe-vector description)
9858
0e4831555b2c (describe-buffer-case-table): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents: 7300
diff changeset
59 (help-mode)))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
60
2385
416abb820252 Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 2229
diff changeset
61 ;;;###autoload
13269
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
62 (defun copy-case-table (case-table)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
63 (let ((copy (copy-sequence case-table)))
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
64 ;; Clear out the extra slots so that they will be
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
65 ;; recomputed from the main (downcase) table.
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
66 (set-char-table-extra-slot copy 0 nil)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
67 (set-char-table-extra-slot copy 1 nil)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
68 (set-char-table-extra-slot copy 2 nil)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
69 copy))
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
70
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
71 ;;;###autoload
2386
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
72 (defun set-case-syntax-delims (l r table)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
73 "Make characters L and R a matching pair of non-case-converting delimiters.
2386
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
74 This sets the entries for L and R in TABLE, which is a string
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
75 that will be used as the downcase part of a case table.
7156
4d86978056b1 (describe-buffer-case-table): Don't use text-char-description.
Richard M. Stallman <rms@gnu.org>
parents: 3550
diff changeset
76 It also modifies `standard-syntax-table' to
696
904853a03d9a *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 662
diff changeset
77 indicate left and right delimiters."
2386
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
78 (aset table l l)
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
79 (aset table r r)
13269
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
80 ;; Clear out the extra slots so that they will be
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
81 ;; recomputed from the main (downcase) table.
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
82 (set-char-table-extra-slot table 0 nil)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
83 (set-char-table-extra-slot table 1 nil)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
84 (set-char-table-extra-slot table 2 nil)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
85 (modify-syntax-entry l (concat "(" (char-to-string r) " ")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
86 (standard-syntax-table))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
87 (modify-syntax-entry r (concat ")" (char-to-string l) " ")
7156
4d86978056b1 (describe-buffer-case-table): Don't use text-char-description.
Richard M. Stallman <rms@gnu.org>
parents: 3550
diff changeset
88 (standard-syntax-table)))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
89
2385
416abb820252 Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 2229
diff changeset
90 ;;;###autoload
2386
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
91 (defun set-case-syntax-pair (uc lc table)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
92 "Make characters UC and LC a pair of inter-case-converting letters.
2386
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
93 This sets the entries for characters UC and LC in TABLE, which is a string
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
94 that will be used as the downcase part of a case table.
7156
4d86978056b1 (describe-buffer-case-table): Don't use text-char-description.
Richard M. Stallman <rms@gnu.org>
parents: 3550
diff changeset
95 It also modifies `standard-syntax-table' to give them the syntax of
4d86978056b1 (describe-buffer-case-table): Don't use text-char-description.
Richard M. Stallman <rms@gnu.org>
parents: 3550
diff changeset
96 word constituents."
2386
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
97 (aset table uc lc)
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
98 (aset table lc lc)
13269
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
99 (set-char-table-extra-slot table 0 nil)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
100 (set-char-table-extra-slot table 1 nil)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
101 (set-char-table-extra-slot table 2 nil)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
102 (modify-syntax-entry lc "w " (standard-syntax-table))
7156
4d86978056b1 (describe-buffer-case-table): Don't use text-char-description.
Richard M. Stallman <rms@gnu.org>
parents: 3550
diff changeset
103 (modify-syntax-entry uc "w " (standard-syntax-table)))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
104
2385
416abb820252 Add autoloads.
Richard M. Stallman <rms@gnu.org>
parents: 2229
diff changeset
105 ;;;###autoload
2386
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
106 (defun set-case-syntax (c syntax table)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
107 "Make characters C case-invariant with syntax SYNTAX.
2386
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
108 This sets the entries for character C in TABLE, which is a string
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
109 that will be used as the downcase part of a case table.
7156
4d86978056b1 (describe-buffer-case-table): Don't use text-char-description.
Richard M. Stallman <rms@gnu.org>
parents: 3550
diff changeset
110 It also modifies `standard-syntax-table'.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
111 SYNTAX should be \" \", \"w\", \".\" or \"_\"."
2386
ded35864afbe (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
Richard M. Stallman <rms@gnu.org>
parents: 2385
diff changeset
112 (aset table c c)
13269
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
113 (set-char-table-extra-slot table 0 nil)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
114 (set-char-table-extra-slot table 1 nil)
5db7fb75222a (copy-case-table): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9858
diff changeset
115 (set-char-table-extra-slot table 2 nil)
7156
4d86978056b1 (describe-buffer-case-table): Don't use text-char-description.
Richard M. Stallman <rms@gnu.org>
parents: 3550
diff changeset
116 (modify-syntax-entry c syntax (standard-syntax-table)))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
117
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
118 (provide 'case-table)
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 584
diff changeset
119
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 584
diff changeset
120 ;;; case-table.el ends here