Mercurial > emacs
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 |
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 | 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 | 8 |
9 ;; This file is part of GNU Emacs. | |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
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 | 14 ;; any later version. |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
22 ;; along with GNU Emacs; see the file COPYING. If not, write to | |
23 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
24 | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
696
diff
changeset
|
25 ;;; Commentary: |
36 | 26 |
27 ;; Written by: | |
28 ;; TN/ETX/TX/UMG Howard Gayle UUCP : seismo!enea!erix!howard | |
29 ;; Telefonaktiebolaget L M Ericsson Phone: +46 8 719 55 65 | |
30 ;; Ericsson Telecom Telex: 14910 ERIC S | |
31 ;; S-126 25 Stockholm FAX : +46 8 719 64 82 | |
32 ;; Sweden | |
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 | 36 ;;;###autoload |
36 | 37 (defun describe-buffer-case-table () |
38 "Describe the case table of the current buffer." | |
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 | 60 |
2385 | 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 | 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 | 85 (modify-syntax-entry l (concat "(" (char-to-string r) " ") |
86 (standard-syntax-table)) | |
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 | 89 |
2385 | 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 | 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 | 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 | 104 |
2385 | 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 | 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 | 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 | 117 |
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 |