annotate src/casetab.c @ 99501:e3acb52d33e1

2008-11-12 Carsten Dominik <carsten.dominik@gmail.com> * org.el (org-yank): Make any prefix force normal yanking. Suppress folding if text would be swallowed into a folded subtree. (org-yank-folded-subtrees, org-yank): Docstring updates. * org-agenda.el (org-agenda-compare-effort): Treat no effort defined as 0. * org-exp.el (org-export-language-setup): Add Catalan and Esperanto language entries. 2008-11-12 Carsten Dominik <carsten.dominik@gmail.com> * org.el (org-refile): Allow refiling of entire regions. * org-clock.el (org-clock-time%): New function. * org.el (org-entry-get, org-entry-delete): Use safer regexps to retrieve property values. 2008-11-12 Carsten Dominik <carsten.dominik@gmail.com> * org-agenda.el (org-agenda-list): Handle the value `only' of org-agenda-show-log'. (org-agenda-log-mode): Interpret a double prefix arg. 2008-11-12 Carsten Dominik <carsten.dominik@gmail.com> * org-exp.el (org-export-html-footnotes-section): New variable. (org-export-as-html): Use `org-export-html-footnotes-section' to insert the footnotes. (org-export-language-setup): Add "Footnotes" to language words. 2008-11-12 Carsten Dominik <carsten.dominik@gmail.com> * org.el (org-yank): Fix bug when not inserting a subtree. 2008-11-12 Carsten Dominik <carsten.dominik@gmail.com> * org-vm.el (org-vm-follow-link): Call `vm-preview-current-message' instead of `vm-beginning-of-message'. * org.el (org-make-link-regexps): Make sure that links to gnus can contain brackets. 2008-11-12 Carsten Dominik <carsten.dominik@gmail.com> * org-attach.el (org-attach-dir): Remove duplicate ID creation code. * org-id.el (org-id-new): Use `org-trim' to extract the uuid from shell output. * org.el (org-link-abbrev-alist): Improve customization type. * org-attach.el (org-attach-expand-link, org-attach-expand): New functions. * org-agenda.el (org-agenda-get-progress): Renamed from `org-get-closed'. Implement searching for state changes as well. (org-agenda-log-mode-items): New option. (org-agenda-log-mode): New option prefix argument, interpreted as request to show all possible progress info. (org-agenda-get-day-entries): Call `org-get-progress' instead of `org-get-closed'. (org-agenda-set-mode-name): Handle the more complex log mode settings. (org-get-closed): New alias, pointing to `org-get-progress'. 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org.el (org-file-apps-defaults-gnu) (org-file-apps-defaults-macosx) (org-file-apps-defaults-windowsnt): Add an entry defining the system command. (org-file-apps): Allow `system' as key and value. (org-open-at-point): Explain the effect of a double prefix arg. (org-open-file): If the argument `in-emacs' is (16), i.e. corresponding to a double prefix argument, try to open the file externally. 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org.el (org-insert-link): Abbreviate absolute files names in links. Also, fix a bug in which the double C-u prefix would not be honored. 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org.el (org-insert-heading): If buffer does not end with a newline, add one if necessary to insert headline correctly. * org-exp.el (org-export-as-html): Make sure that <hr/> is between paragraphs, not inside. * org.el (org-todo): Quote `org-agenda-headline-snapshot-before-repeat'. * org-exp.el (org-export-as-html): Fully process link descriptions. (org-export-html-format-desc): New function. (org-export-as-html): Collect footnotes into the correct basket. (org-html-protect): No longer protect quotations marks here, this goes wrong. * org-agenda.el (org-agenda-remove-marked-text): Bind variable BEG. * org-compat.el (org-fit-window-to-buffer): New function (not really, a preliminary and incomplete version was present earlier, but not used). * org.el (org-fast-todo-selection, org-fast-tag-selection): Use `org-fit-window-to-buffer'. * org-exp.el (org-export): Use `org-fit-window-to-buffer'. * org-agenda.el (org-agenda-get-restriction-and-command) (org-fit-agenda-window, org-agenda-convert-date): Use `org-fit-window-to-buffer'. * org-exp.el (org-export-as-html): Process href links through `org-export-html-format-href'. (org-export-html-format-href): New function. * org-agenda.el (org-agenda-todo): Update only the current headline if this is a repeated TODO, marked done for today. (org-agenda-change-all-lines): New argument JUST-THIS, to change only the current line. * org.el (org-todo): Take a snapshot of the headline if the repeater might change it. 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org-publish.el (org-publish-find-title): Remove buffers visited only for extracting the title. * org-exp.el (org-export-html-style) (org-export-html-style-default): Mark style definitions as unparsed CDATA. * org-publish.el (org-publish-validate-link): Function re-introduced. 2008-11-12 Charles Sebold <csebold@gmail.com> * org-plot.el (org-plot/add-options-to-plist): Supports timefmt property. (org-plot-quote-timestamp-field): New function. (org-plot-quote-tsv-field): Call timestamp field function when necessary rather than just quoting as a string. (org-plot/gnuplot-to-data): Pass in timefmt property. (org-plot/gnuplot-script): Supports timefmt property. (org-plot/gnuplot): Checks for timestamp column before checking for text index column. 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org.el (org-insert-heading): Improve behavior with hidden subtrees. * org-publish.el (org-publish-org-index): Create a section in the index file. (org-publish-org-index): Stop linking to directories. * org.el (org-emphasis-alist): Use span instead of <u> to underline text. * org-exp.el (org-export-as-html): Make sure <p> is closed before <pre> sections. 2008-11-12 Sebastian Rose <sebastian_rose@gmx.de> * org-jsinfo.el (org-infojs-template): Remove language attribute from script tag. 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org-agenda.el (org-agenda-remove-marked-text): New function. (org-agenda-mark-filtered-text) (org-agenda-unmark-filtered-text): New functions. (org-write-agenda): Remove fltered text. * org.el (org-make-tags-matcher): Give access to TODO "property" without speed penalty. 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org.el (org-link-frame-setup): Add `org-gnus-no-new-news' as an option. (org-store-link-props): Make sure adding to the plist works correctly. * org-gnus.el (org-gnus-no-new-news): New function. (org-gnus-follow-link): Allow the article ID to be a message-id, in addition to allowing article numbers. Message IDs make much more roubust links. (org-gnus-store-link): Use message-id to create link. 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org.el (org-emphasize): Reverse the selection array. (org-emphasis-alist): Set <code> tags for the verbatim environment. * org-remember.el (org-remember-handler): Fix bug with prefix-related changing of the note storage target. * org-exp.el (org-print-icalendar-entries): Make the exported priorities compatible with RFC 2445. * org-clock.el (org-clock-save): Insert time stamp without dependence on time-stamp.el. 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org.el ("saveplace"): If saveplace puts point into an invisible location, make it visible. (org-make-tags-matcher): Allow inactive time stamps in time comparisons. (org-yank-adjusted-subtrees): New option. (org-yank): Incorporate adjusting trees. (org-paste-subtree): New argument FOR-YANK which will cause insertion at point without backing up over white lines, and leave point at the end of the inserted text. Also if the cursor is at the beginning of a headline, use the same level or the inserted tree. * org-publish.el (org-publish-get-base-files-1): Deal correctly with broken symlinks 2008-11-12 Carsten Dominik <dominik@science.uva.nl> * org-exp.el (org-export-select-tags, org-get-current-options): Fix typo.
author Carsten Dominik <dominik@science.uva.nl>
date Wed, 12 Nov 2008 08:01:06 +0000
parents 8971ddf55736
children e038c1a8307c
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 routines to deal with case tables.
75227
e90d04cd455a Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 72729
diff changeset
2 Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
79759
fc2bcd2a8aad Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 78501
diff changeset
3 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5 This file is part of GNU Emacs.
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
94963
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 91327
diff changeset
7 GNU Emacs is free software: you can redistribute it and/or modify
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
94963
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 91327
diff changeset
9 the Free Software Foundation, either version 3 of the License, or
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 91327
diff changeset
10 (at your option) any later version.
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 GNU General Public License for more details.
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
94963
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 91327
diff changeset
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
59779
e99095db1a09 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
20 /* Written by Howard Gayle. */
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
4696
1fc792473491 Include <config.h> instead of "config.h".
Roland McGrath <roland@gnu.org>
parents: 3069
diff changeset
22 #include <config.h>
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 #include "lisp.h"
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 #include "buffer.h"
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
25 #include "character.h"
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
27 Lisp_Object Qcase_table_p, Qcase_table;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 Lisp_Object Vascii_downcase_table, Vascii_upcase_table;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29 Lisp_Object Vascii_canon_table, Vascii_eqv_table;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
31 /* Used as a temporary in DOWNCASE and other macros in lisp.h. No
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
32 need to mark it, since it is used only very temporarily. */
18613
614b916ff5bf Fix bugs with inappropriate mixing of Lisp_Object with int.
Richard M. Stallman <rms@gnu.org>
parents: 18004
diff changeset
33 int case_temp1;
614b916ff5bf Fix bugs with inappropriate mixing of Lisp_Object with int.
Richard M. Stallman <rms@gnu.org>
parents: 18004
diff changeset
34 Lisp_Object case_temp2;
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
35
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
36 static void set_canon ();
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
37 static void set_identity ();
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
38 static void shuffle ();
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 DEFUN ("case-table-p", Fcase_table_p, Scase_table_p, 1, 1, 0,
78501
1677cf1c2509 Replace `iff' in comments.
Glenn Morris <rgm@gnu.org>
parents: 78260
diff changeset
41 doc: /* Return t if OBJECT is a case table.
40103
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
42 See `set-case-table' for more information on these data structures. */)
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
43 (object)
14064
d090a0a25ac8 (Fcase_table_p): Harmonize arguments with documentation.
Erik Naggum <erik@naggum.no>
parents: 13321
diff changeset
44 Lisp_Object object;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 {
13276
a09ec2a2f6dd (Fcase_table_p, Fcurrent_case_table): Delete unused local variables.
Erik Naggum <erik@naggum.no>
parents: 13242
diff changeset
46 Lisp_Object up, canon, eqv;
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
47
14064
d090a0a25ac8 (Fcase_table_p): Harmonize arguments with documentation.
Erik Naggum <erik@naggum.no>
parents: 13321
diff changeset
48 if (! CHAR_TABLE_P (object))
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
49 return Qnil;
14064
d090a0a25ac8 (Fcase_table_p): Harmonize arguments with documentation.
Erik Naggum <erik@naggum.no>
parents: 13321
diff changeset
50 if (! EQ (XCHAR_TABLE (object)->purpose, Qcase_table))
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
51 return Qnil;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52
14064
d090a0a25ac8 (Fcase_table_p): Harmonize arguments with documentation.
Erik Naggum <erik@naggum.no>
parents: 13321
diff changeset
53 up = XCHAR_TABLE (object)->extras[0];
d090a0a25ac8 (Fcase_table_p): Harmonize arguments with documentation.
Erik Naggum <erik@naggum.no>
parents: 13321
diff changeset
54 canon = XCHAR_TABLE (object)->extras[1];
d090a0a25ac8 (Fcase_table_p): Harmonize arguments with documentation.
Erik Naggum <erik@naggum.no>
parents: 13321
diff changeset
55 eqv = XCHAR_TABLE (object)->extras[2];
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
57 return ((NILP (up) || CHAR_TABLE_P (up))
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 118
diff changeset
58 && ((NILP (canon) && NILP (eqv))
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
59 || (CHAR_TABLE_P (canon)
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
60 && (NILP (eqv) || CHAR_TABLE_P (eqv))))
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 ? Qt : Qnil);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 static Lisp_Object
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65 check_case_table (obj)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 Lisp_Object obj;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 {
71828
10b94d33e0d8 * casetab.c (check_case_table): Use CHECK_TYPE.
Kim F. Storm <storm@cua.dk>
parents: 68651
diff changeset
68 CHECK_TYPE (!NILP (Fcase_table_p (obj)), Qcase_table_p, obj);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 return (obj);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47292
diff changeset
70 }
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 DEFUN ("current-case-table", Fcurrent_case_table, Scurrent_case_table, 0, 0, 0,
40103
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
73 doc: /* Return the case table of the current buffer. */)
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
74 ()
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75 {
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
76 return current_buffer->downcase_table;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78
3069
93ff3c50bd1d * casetab.c: Fix formatting, so as not to confuse etags.
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
79 DEFUN ("standard-case-table", Fstandard_case_table, Sstandard_case_table, 0, 0, 0,
40103
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
80 doc: /* Return the standard case table.
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
81 This is the one used for new buffers. */)
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
82 ()
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83 {
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
84 return Vascii_downcase_table;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86
1506
5fe52748a72c * casetab.c (set_case_table): Declare this to be static, and
Jim Blandy <jimb@redhat.com>
parents: 484
diff changeset
87 static Lisp_Object set_case_table ();
5fe52748a72c * casetab.c (set_case_table): Declare this to be static, and
Jim Blandy <jimb@redhat.com>
parents: 484
diff changeset
88
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 DEFUN ("set-case-table", Fset_case_table, Sset_case_table, 1, 1, 0,
40103
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
90 doc: /* Select a new case table for the current buffer.
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
91 A case table is a char-table which maps characters
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
92 to their lower-case equivalents. It also has three \"extra\" slots
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
93 which may be additional char-tables or nil.
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
94 These slots are called UPCASE, CANONICALIZE and EQUIVALENCES.
66334
1bd74e01cf90 (Fset_case_table): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 64770
diff changeset
95 UPCASE maps each non-upper-case character to its upper-case equivalent.
1bd74e01cf90 (Fset_case_table): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 64770
diff changeset
96 (The value in UPCASE for an upper-case character is never used.)
1bd74e01cf90 (Fset_case_table): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 64770
diff changeset
97 If lower and upper case characters are in 1-1 correspondence,
40103
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
98 you may use nil and the upcase table will be deduced from DOWNCASE.
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
99 CANONICALIZE maps each character to a canonical equivalent;
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
100 any two characters that are related by case-conversion have the same
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
101 canonical equivalent character; it may be nil, in which case it is
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
102 deduced from DOWNCASE and UPCASE.
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
103 EQUIVALENCES is a map that cyclicly permutes each equivalence class
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
104 (of characters with the same canonical equivalent); it may be nil,
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
105 in which case it is deduced from CANONICALIZE. */)
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
106 (table)
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 Lisp_Object table;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
108 {
1506
5fe52748a72c * casetab.c (set_case_table): Declare this to be static, and
Jim Blandy <jimb@redhat.com>
parents: 484
diff changeset
109 return set_case_table (table, 0);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
111
3069
93ff3c50bd1d * casetab.c: Fix formatting, so as not to confuse etags.
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
112 DEFUN ("set-standard-case-table", Fset_standard_case_table, Sset_standard_case_table, 1, 1, 0,
40103
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
113 doc: /* Select a new standard case table for new buffers.
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
114 See `set-case-table' for more info on case tables. */)
6b389fb978bc Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 21514
diff changeset
115 (table)
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116 Lisp_Object table;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117 {
1506
5fe52748a72c * casetab.c (set_case_table): Declare this to be static, and
Jim Blandy <jimb@redhat.com>
parents: 484
diff changeset
118 return set_case_table (table, 1);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
120
1506
5fe52748a72c * casetab.c (set_case_table): Declare this to be static, and
Jim Blandy <jimb@redhat.com>
parents: 484
diff changeset
121 static Lisp_Object
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
122 set_case_table (table, standard)
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123 Lisp_Object table;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 int standard;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 {
13276
a09ec2a2f6dd (Fcase_table_p, Fcurrent_case_table): Delete unused local variables.
Erik Naggum <erik@naggum.no>
parents: 13242
diff changeset
126 Lisp_Object up, canon, eqv;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
127
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
128 check_case_table (table);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
129
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
130 up = XCHAR_TABLE (table)->extras[0];
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
131 canon = XCHAR_TABLE (table)->extras[1];
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
132 eqv = XCHAR_TABLE (table)->extras[2];
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
133
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 118
diff changeset
134 if (NILP (up))
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
135 {
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
136 up = Fmake_char_table (Qcase_table, Qnil);
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
137 map_char_table (set_identity, Qnil, table, up);
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
138 map_char_table (shuffle, Qnil, table, up);
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
139 XCHAR_TABLE (table)->extras[0] = up;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
140 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
141
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 118
diff changeset
142 if (NILP (canon))
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
143 {
13276
a09ec2a2f6dd (Fcase_table_p, Fcurrent_case_table): Delete unused local variables.
Erik Naggum <erik@naggum.no>
parents: 13242
diff changeset
144 canon = Fmake_char_table (Qcase_table, Qnil);
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
145 XCHAR_TABLE (table)->extras[1] = canon;
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
146 map_char_table (set_canon, Qnil, table, table);
6937
c5a85ac1d292 (set_case_table): Handle nil for EQV with non-nil CANON.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
147 }
c5a85ac1d292 (set_case_table): Handle nil for EQV with non-nil CANON.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
148
c5a85ac1d292 (set_case_table): Handle nil for EQV with non-nil CANON.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
149 if (NILP (eqv))
c5a85ac1d292 (set_case_table): Handle nil for EQV with non-nil CANON.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
150 {
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
151 eqv = Fmake_char_table (Qcase_table, Qnil);
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
152 map_char_table (set_identity, Qnil, canon, eqv);
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
153 map_char_table (shuffle, Qnil, canon, eqv);
13276
a09ec2a2f6dd (Fcase_table_p, Fcurrent_case_table): Delete unused local variables.
Erik Naggum <erik@naggum.no>
parents: 13242
diff changeset
154 XCHAR_TABLE (table)->extras[2] = eqv;
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
47292
644bd031ece8 (set_case_table): Make canon table point to eqv table.
Richard M. Stallman <rms@gnu.org>
parents: 40103
diff changeset
157 /* This is so set_image_of_range_1 in regex.c can find the EQV table. */
644bd031ece8 (set_case_table): Make canon table point to eqv table.
Richard M. Stallman <rms@gnu.org>
parents: 40103
diff changeset
158 XCHAR_TABLE (canon)->extras[2] = eqv;
644bd031ece8 (set_case_table): Make canon table point to eqv table.
Richard M. Stallman <rms@gnu.org>
parents: 40103
diff changeset
159
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160 if (standard)
61188
a96e8bdd2b37 (set_case_table): If standard is nonzero, setup
Kenichi Handa <handa@m17n.org>
parents: 59779
diff changeset
161 {
a96e8bdd2b37 (set_case_table): If standard is nonzero, setup
Kenichi Handa <handa@m17n.org>
parents: 59779
diff changeset
162 Vascii_downcase_table = table;
a96e8bdd2b37 (set_case_table): If standard is nonzero, setup
Kenichi Handa <handa@m17n.org>
parents: 59779
diff changeset
163 Vascii_upcase_table = up;
a96e8bdd2b37 (set_case_table): If standard is nonzero, setup
Kenichi Handa <handa@m17n.org>
parents: 59779
diff changeset
164 Vascii_canon_table = canon;
a96e8bdd2b37 (set_case_table): If standard is nonzero, setup
Kenichi Handa <handa@m17n.org>
parents: 59779
diff changeset
165 Vascii_eqv_table = eqv;
a96e8bdd2b37 (set_case_table): If standard is nonzero, setup
Kenichi Handa <handa@m17n.org>
parents: 59779
diff changeset
166 }
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
167 else
15171
36c329b45867 (set_case_table): Set upcase_table, case_canon_table
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
168 {
36c329b45867 (set_case_table): Set upcase_table, case_canon_table
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
169 current_buffer->downcase_table = table;
36c329b45867 (set_case_table): Set upcase_table, case_canon_table
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
170 current_buffer->upcase_table = up;
36c329b45867 (set_case_table): Set upcase_table, case_canon_table
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
171 current_buffer->case_canon_table = canon;
36c329b45867 (set_case_table): Set upcase_table, case_canon_table
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
172 current_buffer->case_eqv_table = eqv;
36c329b45867 (set_case_table): Set upcase_table, case_canon_table
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
173 }
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
174
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
175 return table;
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
176 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
178 /* The following functions are called in map_char_table. */
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
179
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
180 /* Set CANON char-table element for characters in RANGE to a
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
181 translated ELT by UP and DOWN char-tables. This is done only when
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
182 ELT is a character. The char-tables CANON, UP, and DOWN are in
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
183 CASE_TABLE. */
17815
c407a3aca56f (compute_trt_identity, compute_trt_shuffle): Add comments.
Karl Heuer <kwzh@gnu.org>
parents: 17807
diff changeset
184
17804
5977a67b9356 Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 17340
diff changeset
185 static void
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
186 set_canon (case_table, range, elt)
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
187 Lisp_Object case_table, range, elt;
17804
5977a67b9356 Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 17340
diff changeset
188 {
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
189 Lisp_Object up = XCHAR_TABLE (case_table)->extras[0];
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
190 Lisp_Object canon = XCHAR_TABLE (case_table)->extras[1];
17804
5977a67b9356 Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 17340
diff changeset
191
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
192 if (NATNUMP (elt))
89031
5fd1f8a7e007 (set_canon, set_identity, shuffle): Simplified.
Kenichi Handa <handa@m17n.org>
parents: 88851
diff changeset
193 Fset_char_table_range (canon, range, Faref (case_table, Faref (up, elt)));
17804
5977a67b9356 Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 17340
diff changeset
194 }
5977a67b9356 Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 17340
diff changeset
195
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
196 /* Set elements of char-table TABLE for C to C itself. C may be a
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
197 cons specifying a character range. In that case, set characters in
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
198 that range to themselves. This is done only when ELT is a
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
199 character. This is called in map_char_table. */
17815
c407a3aca56f (compute_trt_identity, compute_trt_shuffle): Add comments.
Karl Heuer <kwzh@gnu.org>
parents: 17807
diff changeset
200
17804
5977a67b9356 Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 17340
diff changeset
201 static void
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
202 set_identity (table, c, elt)
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
203 Lisp_Object table, c, elt;
17804
5977a67b9356 Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 17340
diff changeset
204 {
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
205 if (NATNUMP (elt))
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
206 {
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
207 int from, to;
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
208
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
209 if (CONSP (c))
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
210 {
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
211 from = XINT (XCAR (c));
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
212 to = XINT (XCDR (c));
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
213 }
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
214 else
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
215 from = to = XINT (c);
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
216 for (; from <= to; from++)
89031
5fd1f8a7e007 (set_canon, set_identity, shuffle): Simplified.
Kenichi Handa <handa@m17n.org>
parents: 88851
diff changeset
217 CHAR_TABLE_SET (table, from, make_number (from));
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
218 }
17804
5977a67b9356 Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 17340
diff changeset
219 }
5977a67b9356 Include charset.h.
Karl Heuer <kwzh@gnu.org>
parents: 17340
diff changeset
220
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
221 /* Permute the elements of TABLE (which is initially an identity
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
222 mapping) so that it has one cycle for each equivalence class
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
223 induced by the translation table on which map_char_table is
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
224 operated. */
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
225
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
226 static void
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
227 shuffle (table, c, elt)
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
228 Lisp_Object table, c, elt;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
229 {
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
230 if (NATNUMP (elt))
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
231 {
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
232 Lisp_Object tem = Faref (table, elt);
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
233 int from, to;
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
234
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
235 if (CONSP (c))
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
236 {
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
237 from = XINT (XCAR (c));
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
238 to = XINT (XCDR (c));
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
239 }
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
240 else
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
241 from = to = XINT (c);
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
242
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
243 for (; from <= to; from++)
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
244 if (from != XINT (elt))
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
245 {
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
246 Faset (table, elt, make_number (from));
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
247 Faset (table, make_number (from), tem);
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
248 }
18004
40ce43a92060 (case_temp1, case_temp2): New variables temporarily
Kenichi Handa <handa@m17n.org>
parents: 17815
diff changeset
249 }
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
250 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
251
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 18613
diff changeset
252 void
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
253 init_casetab_once ()
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
254 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
255 register int i;
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
256 Lisp_Object down, up;
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
257 Qcase_table = intern ("case-table");
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
258 staticpro (&Qcase_table);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
259
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
260 /* Intern this now in case it isn't already done.
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
261 Setting this variable twice is harmless.
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
262 But don't staticpro it here--that is done in alloc.c. */
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
263 Qchar_table_extra_slots = intern ("char-table-extra-slots");
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
264
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
265 /* Now we are ready to set up this property, so we can
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
266 create char tables. */
13276
a09ec2a2f6dd (Fcase_table_p, Fcurrent_case_table): Delete unused local variables.
Erik Naggum <erik@naggum.no>
parents: 13242
diff changeset
267 Fput (Qcase_table, Qchar_table_extra_slots, make_number (3));
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
268
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
269 down = Fmake_char_table (Qcase_table, Qnil);
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
270 Vascii_downcase_table = down;
17340
64722b193f14 (init_casetab_once): Initialize the purpose slot.
Richard M. Stallman <rms@gnu.org>
parents: 16224
diff changeset
271 XCHAR_TABLE (down)->purpose = Qcase_table;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
272
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
273 for (i = 0; i < 128; i++)
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
274 {
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
275 int c = (i >= 'A' && i <= 'Z') ? i + ('a' - 'A') : i;
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
276 CHAR_TABLE_SET (down, i, make_number (c));
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
277 }
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
278
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
279 XCHAR_TABLE (down)->extras[1] = Fcopy_sequence (down);
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
280
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
281 up = Fmake_char_table (Qcase_table, Qnil);
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
282 XCHAR_TABLE (down)->extras[0] = up;
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
283
88357
1cf6a8acec39 Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents: 40103
diff changeset
284 for (i = 0; i < 128; i++)
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
285 {
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
286 int c = ((i >= 'A' && i <= 'Z') ? i + ('a' - 'A')
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
287 : ((i >= 'a' && i <= 'z') ? i + ('A' - 'a')
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
288 : i));;
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
289 CHAR_TABLE_SET (up, i, make_number (c));
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89031
diff changeset
290 }
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
291
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
292 XCHAR_TABLE (down)->extras[2] = Fcopy_sequence (up);
72729
b18e79090a7a (init_casetab_once): Call set_case_table.
Richard M. Stallman <rms@gnu.org>
parents: 71828
diff changeset
293
b18e79090a7a (init_casetab_once): Call set_case_table.
Richard M. Stallman <rms@gnu.org>
parents: 71828
diff changeset
294 /* Fill in what isn't filled in. */
b18e79090a7a (init_casetab_once): Call set_case_table.
Richard M. Stallman <rms@gnu.org>
parents: 71828
diff changeset
295 set_case_table (down, 1);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
296 }
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
297
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 18613
diff changeset
298 void
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
299 syms_of_casetab ()
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
300 {
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
301 Qcase_table_p = intern ("case-table-p");
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
302 staticpro (&Qcase_table_p);
13242
3a8c500b97c3 Case tables are now char-tables,
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
303
16224
d4c102d5ac70 (syms_of_casetab): staticpro Vascii_canontable, Vascii_eqv_table, and
Erik Naggum <erik@naggum.no>
parents: 15171
diff changeset
304 staticpro (&Vascii_canon_table);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
305 staticpro (&Vascii_downcase_table);
16224
d4c102d5ac70 (syms_of_casetab): staticpro Vascii_canontable, Vascii_eqv_table, and
Erik Naggum <erik@naggum.no>
parents: 15171
diff changeset
306 staticpro (&Vascii_eqv_table);
d4c102d5ac70 (syms_of_casetab): staticpro Vascii_canontable, Vascii_eqv_table, and
Erik Naggum <erik@naggum.no>
parents: 15171
diff changeset
307 staticpro (&Vascii_upcase_table);
118
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
308
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
309 defsubr (&Scase_table_p);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
310 defsubr (&Scurrent_case_table);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
311 defsubr (&Sstandard_case_table);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
312 defsubr (&Sset_case_table);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
313 defsubr (&Sset_standard_case_table);
49342840ba00 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
314 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51031
diff changeset
315
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51031
diff changeset
316 /* arch-tag: e06388ad-99fe-40ec-ba67-9d010fcc4916
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51031
diff changeset
317 (do not change this comment) */