annotate src/casefiddle.c @ 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 ac7375e60931
children ef7d4117c601
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* GNU Emacs case conversion functions.
7307
cd81dba38a49 Update copyright.
Karl Heuer <kwzh@gnu.org>
parents: 6221
diff changeset
2 Copyright (C) 1985, 1994 Free Software Foundation, Inc.
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
12244
ac7375e60931 Update GPL to version 2.
Karl Heuer <kwzh@gnu.org>
parents: 12089
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
4696
1fc792473491 Include <config.h> instead of "config.h".
Roland McGrath <roland@gnu.org>
parents: 2822
diff changeset
21 #include <config.h>
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 #include "lisp.h"
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 #include "buffer.h"
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 #include "commands.h"
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25 #include "syntax.h"
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 enum case_action {CASE_UP, CASE_DOWN, CASE_CAPITALIZE, CASE_CAPITALIZE_UP};
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29 Lisp_Object
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30 casify_object (flag, obj)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31 enum case_action flag;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 Lisp_Object obj;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 register int i, c, len;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35 register int inword = flag == CASE_DOWN;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 while (1)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 {
9137
412e94c1dbf2 (casify_object): Use type test macros.
Karl Heuer <kwzh@gnu.org>
parents: 9053
diff changeset
39 if (INTEGERP (obj))
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 c = XINT (obj);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 if (c >= 0 && c <= 0400)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 if (inword)
9299
e8c880f2723e (casify_object, operate_on_word, Fupcase_word, Fdowncase_word,
Karl Heuer <kwzh@gnu.org>
parents: 9137
diff changeset
45 XSETFASTINT (obj, DOWNCASE (c));
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 else if (!UPPERCASEP (c))
9299
e8c880f2723e (casify_object, operate_on_word, Fupcase_word, Fdowncase_word,
Karl Heuer <kwzh@gnu.org>
parents: 9137
diff changeset
47 XSETFASTINT (obj, UPCASE1 (c));
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 return obj;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 }
9137
412e94c1dbf2 (casify_object): Use type test macros.
Karl Heuer <kwzh@gnu.org>
parents: 9053
diff changeset
51 if (STRINGP (obj))
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 obj = Fcopy_sequence (obj);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 len = XSTRING (obj)->size;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 for (i = 0; i < len; i++)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57 c = XSTRING (obj)->data[i];
9052
6de22822cf72 (upcase_initials): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
58 if (inword && flag != CASE_CAPITALIZE_UP)
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59 c = DOWNCASE (c);
9052
6de22822cf72 (upcase_initials): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
60 else if (!UPPERCASEP (c)
6de22822cf72 (upcase_initials): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
61 && (!inword || flag != CASE_CAPITALIZE_UP))
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 c = UPCASE1 (c);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 XSTRING (obj)->data[i] = c;
9052
6de22822cf72 (upcase_initials): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
64 if ((int) flag >= (int) CASE_CAPITALIZE)
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65 inword = SYNTAX (c) == Sword;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 return obj;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 }
1926
952f2a18f83d * callint.c (Fcall_interactively): Pass the correct number of
Jim Blandy <jimb@redhat.com>
parents: 1505
diff changeset
69 obj = wrong_type_argument (Qchar_or_string_p, obj);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 DEFUN ("upcase", Fupcase, Supcase, 1, 1, 0,
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 "Convert argument to upper case and return that.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75 The argument may be a character or string. The result has the same type.\n\
9053
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
76 The argument object is not altered--the value is a copy.\n\
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
77 See also `capitalize', `downcase' and `upcase-initials'.")
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78 (obj)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79 Lisp_Object obj;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81 return casify_object (CASE_UP, obj);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 DEFUN ("downcase", Fdowncase, Sdowncase, 1, 1, 0,
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85 "Convert argument to lower case and return that.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 The argument may be a character or string. The result has the same type.\n\
9053
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
87 The argument object is not altered--the value is a copy.")
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 (obj)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 Lisp_Object obj;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91 return casify_object (CASE_DOWN, obj);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
94 DEFUN ("capitalize", Fcapitalize, Scapitalize, 1, 1, 0,
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
95 "Convert argument to capitalized form and return that.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96 This means that each word's first character is upper case\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 and the rest is lower case.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 The argument may be a character or string. The result has the same type.\n\
9053
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
99 The argument object is not altered--the value is a copy.")
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 (obj)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 Lisp_Object obj;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103 return casify_object (CASE_CAPITALIZE, obj);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104 }
9052
6de22822cf72 (upcase_initials): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
105
12089
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
106 /* Like Fcapitalize but change only the initials. */
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
107
9053
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
108 DEFUN ("upcase-initials", Fupcase_initials, Supcase_initials, 1, 1, 0,
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
109 "Convert the initial of each word in the argument to upper case.\n\
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
110 Do not change the other letters of each word.\n\
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
111 The argument may be a character or string. The result has the same type.\n\
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
112 The argument object is not altered--the value is a copy.")
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
113 (obj)
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
114 Lisp_Object obj;
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
115 {
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
116 return casify_object (CASE_CAPITALIZE_UP, obj);
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
117 }
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119 /* flag is CASE_UP, CASE_DOWN or CASE_CAPITALIZE or CASE_CAPITALIZE_UP.
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
120 b and e specify range of buffer to operate on. */
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
121
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
122 casify_region (flag, b, e)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123 enum case_action flag;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 Lisp_Object b, e;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126 register int i;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
127 register int c;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
128 register int inword = flag == CASE_DOWN;
12089
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
129 int start, end;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
130
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
131 if (EQ (b, e))
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
132 /* Not modifying because nothing marked */
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
133 return;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
134
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
135 validate_region (&b, &e);
12089
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
136 start = XFASTINT (b);
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
137 end = XFASTINT (e);
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
138 modify_region (current_buffer, start, end);
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
139 record_change (start, end - start);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
140
12089
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
141 for (i = start; i < end; i++)
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
142 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
143 c = FETCH_CHAR (i);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
144 if (inword && flag != CASE_CAPITALIZE_UP)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
145 c = DOWNCASE (c);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
146 else if (!UPPERCASEP (c)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
147 && (!inword || flag != CASE_CAPITALIZE_UP))
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
148 c = UPCASE1 (c);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
149 FETCH_CHAR (i) = c;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
150 if ((int) flag >= (int) CASE_CAPITALIZE)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151 inword = SYNTAX (c) == Sword;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
152 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
153
12089
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
154 signal_after_change (start, end - start, end - start);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
155 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
156
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
157 DEFUN ("upcase-region", Fupcase_region, Supcase_region, 2, 2, "r",
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
158 "Convert the region to upper case. In programs, wants two arguments.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
159 These arguments specify the starting and ending character numbers of\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160 the region to operate on. When used as a command, the text between\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
161 point and the mark is operated on.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
162 See also `capitalize-region'.")
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
163 (b, e)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
164 Lisp_Object b, e;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
165 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
166 casify_region (CASE_UP, b, e);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
167 return Qnil;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
168 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
170 DEFUN ("downcase-region", Fdowncase_region, Sdowncase_region, 2, 2, "r",
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
171 "Convert the region to lower case. In programs, wants two arguments.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
172 These arguments specify the starting and ending character numbers of\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
173 the region to operate on. When used as a command, the text between\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
174 point and the mark is operated on.")
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
175 (b, e)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
176 Lisp_Object b, e;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
178 casify_region (CASE_DOWN, b, e);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
179 return Qnil;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
180 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182 DEFUN ("capitalize-region", Fcapitalize_region, Scapitalize_region, 2, 2, "r",
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
183 "Convert the region to capitalized form.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184 Capitalized form means each word's first character is upper case\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
185 and the rest of it is lower case.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
186 In programs, give two arguments, the starting and ending\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
187 character positions to operate on.")
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188 (b, e)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
189 Lisp_Object b, e;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
190 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
191 casify_region (CASE_CAPITALIZE, b, e);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
192 return Qnil;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
193 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
194
12089
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
195 /* Like Fcapitalize_region but change only the initials. */
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
196
9053
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
197 DEFUN ("upcase-initials-region", Fupcase_initials_region,
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
198 Supcase_initials_region, 2, 2, "r",
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
199 "Upcase the initial of each word in the region.\n\
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
200 Subsequent letters of each word are not changed.\n\
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
201 In programs, give two arguments, the starting and ending\n\
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
202 character positions to operate on.")
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
203 (b, e)
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
204 Lisp_Object b, e;
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
205 {
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
206 casify_region (CASE_CAPITALIZE_UP, b, e);
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
207 return Qnil;
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
208 }
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
209
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
210 Lisp_Object
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
211 operate_on_word (arg, newpoint)
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
212 Lisp_Object arg;
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
213 int *newpoint;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
214 {
1505
4f138b03e5ab * casefiddle.c (operate_on_word): Declare end to be an int, not a
Jim Blandy <jimb@redhat.com>
parents: 484
diff changeset
215 Lisp_Object val;
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
216 int farend;
12089
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
217 int iarg;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
218
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
219 CHECK_NUMBER (arg, 0);
12089
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
220 iarg = XINT (arg);
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
221 farend = scan_words (point, iarg);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
222 if (!farend)
12089
f7cb17ca1815 (casify_region): Use explicit local vars for start
Karl Heuer <kwzh@gnu.org>
parents: 9299
diff changeset
223 farend = iarg > 0 ? ZV : BEGV;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
224
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
225 *newpoint = point > farend ? point : farend;
9299
e8c880f2723e (casify_object, operate_on_word, Fupcase_word, Fdowncase_word,
Karl Heuer <kwzh@gnu.org>
parents: 9137
diff changeset
226 XSETFASTINT (val, farend);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
227
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
228 return val;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
229 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
230
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
231 DEFUN ("upcase-word", Fupcase_word, Supcase_word, 1, 1, "p",
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
232 "Convert following word (or ARG words) to upper case, moving over.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
233 With negative argument, convert previous words but do not move.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
234 See also `capitalize-word'.")
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
235 (arg)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
236 Lisp_Object arg;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
237 {
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
238 Lisp_Object beg, end;
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
239 int newpoint;
9299
e8c880f2723e (casify_object, operate_on_word, Fupcase_word, Fdowncase_word,
Karl Heuer <kwzh@gnu.org>
parents: 9137
diff changeset
240 XSETFASTINT (beg, point);
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
241 end = operate_on_word (arg, &newpoint);
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
242 casify_region (CASE_UP, beg, end);
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
243 SET_PT (newpoint);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
244 return Qnil;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
245 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
246
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
247 DEFUN ("downcase-word", Fdowncase_word, Sdowncase_word, 1, 1, "p",
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
248 "Convert following word (or ARG words) to lower case, moving over.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
249 With negative argument, convert previous words but do not move.")
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
250 (arg)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
251 Lisp_Object arg;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
252 {
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
253 Lisp_Object beg, end;
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
254 int newpoint;
9299
e8c880f2723e (casify_object, operate_on_word, Fupcase_word, Fdowncase_word,
Karl Heuer <kwzh@gnu.org>
parents: 9137
diff changeset
255 XSETFASTINT (beg, point);
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
256 end = operate_on_word (arg, &newpoint);
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
257 casify_region (CASE_DOWN, beg, end);
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
258 SET_PT (newpoint);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
259 return Qnil;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
260 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
261
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
262 DEFUN ("capitalize-word", Fcapitalize_word, Scapitalize_word, 1, 1, "p",
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
263 "Capitalize the following word (or ARG words), moving over.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
264 This gives the word(s) a first character in upper case\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
265 and the rest lower case.\n\
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
266 With negative argument, capitalize previous words but do not move.")
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
267 (arg)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
268 Lisp_Object arg;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
269 {
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
270 Lisp_Object beg, end;
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
271 int newpoint;
9299
e8c880f2723e (casify_object, operate_on_word, Fupcase_word, Fdowncase_word,
Karl Heuer <kwzh@gnu.org>
parents: 9137
diff changeset
272 XSETFASTINT (beg, point);
6221
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
273 end = operate_on_word (arg, &newpoint);
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
274 casify_region (CASE_CAPITALIZE, beg, end);
c2d29681d218 (operate_on_word): Don't move point; store in *NEWPOINT.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
275 SET_PT (newpoint);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
276 return Qnil;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
277 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
278
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
279 syms_of_casefiddle ()
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
280 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
281 defsubr (&Supcase);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
282 defsubr (&Sdowncase);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
283 defsubr (&Scapitalize);
9053
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
284 defsubr (&Supcase_initials);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
285 defsubr (&Supcase_region);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
286 defsubr (&Sdowncase_region);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
287 defsubr (&Scapitalize_region);
9053
4887fc1a2dda (Fupcase_initials_region): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9052
diff changeset
288 defsubr (&Supcase_initials_region);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
289 defsubr (&Supcase_word);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
290 defsubr (&Sdowncase_word);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
291 defsubr (&Scapitalize_word);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
292 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
293
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
294 keys_of_casefiddle ()
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
295 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
296 initial_define_key (control_x_map, Ctl('U'), "upcase-region");
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 118
diff changeset
297 Fput (intern ("upcase-region"), Qdisabled, Qt);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
298 initial_define_key (control_x_map, Ctl('L'), "downcase-region");
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 118
diff changeset
299 Fput (intern ("downcase-region"), Qdisabled, Qt);
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 118
diff changeset
300
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
301 initial_define_key (meta_map, 'u', "upcase-word");
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
302 initial_define_key (meta_map, 'l', "downcase-word");
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
303 initial_define_key (meta_map, 'c', "capitalize-word");
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
304 }