annotate lisp/international/iso-acc.el @ 23323:0800a4f84757

(underlying_strftime): Set the buffer to a nonzero value before calling strftime, and check to see whether strftime has set the buffer to zero. This lets us distinguish between an empty buffer and an error. I'm installing this patch by hand now; it will be superseded whenever the glibc sources are propagated back to fsf.org.
author Paul Eggert <eggert@twinsun.com>
date Fri, 25 Sep 1998 21:40:23 +0000
parents 40670d13dd48
children 212a00c75674
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15261
bd56cdc4d07b Fixed up initial line
Erik Naggum <erik@naggum.no>
parents: 15167
diff changeset
1 ;;; iso-acc.el --- minor mode providing electric accent keys
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14115
diff changeset
2
14734
20f4c4a078b2 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 14720
diff changeset
3 ;; Copyright (C) 1993, 1994, 1996 Free Software Foundation, Inc.
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
15840
1d300843f03c Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 15838
diff changeset
5 ;; Author: Johan Vromans
4921
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
6 ;; Maintainer: FSF
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
7 ;; Keywords: i18n
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ;; GNU Emacs is free software; you can redistribute it and/or modify
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; any later version.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14115
diff changeset
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14115
diff changeset
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14115
diff changeset
24 ;; Boston, MA 02111-1307, USA.
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 ;;; Commentary:
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
28 ;; Function `iso-accents-mode' activates a minor mode in which
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
29 ;; typewriter "dead keys" are emulated. The purpose of this emulation
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
30 ;; is to provide a simple means for inserting accented characters
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
31 ;; according to the ISO-8859-1...3 character sets.
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;;
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
33 ;; In `iso-accents-mode', pseudo accent characters are used to
10599
bbf3a30a4d39 (iso-accents-list): Add Icelandic thorn.
Karl Heuer <kwzh@gnu.org>
parents: 9740
diff changeset
34 ;; introduce accented keys. The pseudo-accent characters are:
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;; ' (minute) -> grave accent
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;; ` (backtick) -> acute accent
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;; " (second) -> diaeresis
4921
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
39 ;; ^ (caret) -> circumflex
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
40 ;; ~ (tilde) -> tilde over the character
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
41 ;; / (slash) -> slash through the character.
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
42 ;; Also: /A is A-with-ring and /E is AE ligature.
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
43 ;; These two are enabled only if you set iso-accents-enable
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
44 ;; to include them:
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
45 ;; . (period) -> dot over the character (some languages only)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
46 ;; , (cedilla) -> cedilla under the character (some languages only)
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 ;; The action taken depends on the key that follows the pseudo accent.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 ;; In general:
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 ;; pseudo-accent + appropriate letter -> accented letter
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
52 ;; pseudo-accent + space -> pseudo-accent (except comma and period)
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 ;; pseudo-accent + pseudo-accent -> accent (if available)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 ;; pseudo-accent + other -> pseudo-accent + other
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 ;; If the pseudo-accent is followed by anything else than a
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 ;; self-insert-command, the dead-key code is terminated, the
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 ;; pseudo-accent inserted 'as is' and the bell is rung to signal this.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 ;;
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
60 ;; Function `iso-accents-mode' can be used to enable the iso accents
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
61 ;; minor mode, or disable it.
5101
c95efc1cf15b (iso-accents-enable): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 5060
diff changeset
62
c95efc1cf15b (iso-accents-enable): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 5060
diff changeset
63 ;; If you want only some of these characters to serve as accents,
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
64 ;; add a language to `iso-languages' which specifies the accent characters
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
65 ;; that you want, then select the language with `iso-accents-customize'.
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 ;;; Code:
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 (provide 'iso-acc)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70
21645
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
71 (defgroup iso-acc nil
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
72 "Minor mode providing electric accent keys."
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
73 :prefix "iso-accents-"
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
74 :group 'i18n)
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
75
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
76 (defcustom iso-accents-insert-offset nonascii-insert-offset
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
77 "*Offset added by ISO Accents mode to character codes 0200 and above."
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
78 :type 'integer
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
79 :group 'iso-acc)
17715
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
80
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
81 (defvar iso-languages
16459
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
82 '(("catalan"
16778
e08944e83eb7 (iso-languages): For Catalan, delete 'C and 'c;
Richard M. Stallman <rms@gnu.org>
parents: 16719
diff changeset
83 ;; Note this includes some extra characters used in Spanish,
e08944e83eb7 (iso-languages): For Catalan, delete 'C and 'c;
Richard M. Stallman <rms@gnu.org>
parents: 16719
diff changeset
84 ;; on the idea that someone who uses Catalan is likely to use Spanish
e08944e83eb7 (iso-languages): For Catalan, delete 'C and 'c;
Richard M. Stallman <rms@gnu.org>
parents: 16719
diff changeset
85 ;; as well.
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
86 (?' (?A . ?\301) (?E . ?\311) (?I . ?\315) (?O . ?\323) (?U . ?\332)
16778
e08944e83eb7 (iso-languages): For Catalan, delete 'C and 'c;
Richard M. Stallman <rms@gnu.org>
parents: 16719
diff changeset
87 (?a . ?\341) (?e . ?\351) (?i . ?\355) (?o . ?\363) (?u . ?\372)
e08944e83eb7 (iso-languages): For Catalan, delete 'C and 'c;
Richard M. Stallman <rms@gnu.org>
parents: 16719
diff changeset
88 (?\ . ?'))
e08944e83eb7 (iso-languages): For Catalan, delete 'C and 'c;
Richard M. Stallman <rms@gnu.org>
parents: 16719
diff changeset
89 (?` (?A . ?\300) (?E . ?\310) (?O . ?\322)
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
90 (?a . ?\340) (?e . ?\350) (?o . ?\362)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
91 (?\ . ?`))
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
92 (?\" (?I . ?\317) (?U . ?\334) (?i . ?\357) (?u . ?\374)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
93 (?\ . ?\"))
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
94 (?~ (?C . ?\307) (?N . ?\321) (?c . ?\347) (?n . ?\361)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
95 (?> . ?\273) (?< . ?\253) (?! . ?\241) (?? . ?\277)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
96 (?\ . ?\~)))
16459
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
97
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
98 ("esperanto"
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
99 (?^ (?H . ?\246) (?J . ?\254) (?h . ?\266) (?j . ?\274) (?C . ?\306)
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
100 (?G . ?\330) (?S . ?\336) (?c . ?\346) (?g . ?\370) (?s . ?\376)
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
101 (?^ . ?^) (?\ . ?^))
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
102 (?~ (?U . ?\335) (?u . ?\375) (?\ . ?~)))
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
103
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
104 ("french"
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
105 (?' (?E . ?\311) (?C . ?\307) (?e . ?\351) (?c . ?\347)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
106 (?\ . ?'))
15838
8c89a87a6341 (iso-languages, french): Remove non-French combinations.
Richard M. Stallman <rms@gnu.org>
parents: 15261
diff changeset
107 (?` (?A . ?\300) (?E . ?\310) (?U . ?\331)
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
108 (?a . ?\340) (?e . ?\350) (?u . ?\371)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
109 (?\ . ?`))
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
110 (?^ (?A . ?\302) (?E . ?\312) (?I . ?\316) (?O . ?\324) (?U . ?\333)
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
111 (?a . ?\342) (?e . ?\352) (?i . ?\356) (?o . ?\364) (?u . ?\373)
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
112 (?\ . ?^))
15838
8c89a87a6341 (iso-languages, french): Remove non-French combinations.
Richard M. Stallman <rms@gnu.org>
parents: 15261
diff changeset
113 (?\" (?E . ?\313) (?I . ?\317)
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
114 (?e . ?\353) (?i . ?\357)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
115 (?\ . ?\"))
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
116 (?~ (?< . ?\253) (?> . ?\273) (?C . ?\307) (?c . ?\347)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
117 (?, . ?,))
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
118 (?, (?C . ?\307) (?c . ?\347) (?\ . ?\~)))
16459
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
119
16719
0bbc2e3d4bd7 (iso-languages): Add "german" entry.
Richard M. Stallman <rms@gnu.org>
parents: 16459
diff changeset
120 ("german"
0bbc2e3d4bd7 (iso-languages): Add "german" entry.
Richard M. Stallman <rms@gnu.org>
parents: 16459
diff changeset
121 (?\" (?A . ?\304) (?O . ?\326) (?U . ?\334)
0bbc2e3d4bd7 (iso-languages): Add "german" entry.
Richard M. Stallman <rms@gnu.org>
parents: 16459
diff changeset
122 (?a . ?\344) (?o . ?\366) (?u . ?\374) (?s . ?\337) (?\ . ?\")))
0bbc2e3d4bd7 (iso-languages): Add "german" entry.
Richard M. Stallman <rms@gnu.org>
parents: 16459
diff changeset
123
16459
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
124 ("irish"
16303
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
125 (?' (?A . ?\301) (?E . ?\311) (?I . ?\315) (?O . ?\323) (?U . ?\332)
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
126 (?a . ?\341) (?e . ?\351) (?i . ?\355) (?o . ?\363) (?u . ?\372)
16459
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
127 (?\ . ?')))
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
128
18021
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
129 ("portuguese"
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
130 (?' (?A . ?\301) (?E . ?\311) (?I . ?\315) (?O . ?\323) (?U . ?\332)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
131 (?C . ?\307) (?a . ?\341) (?e . ?\351) (?i . ?\355) (?o . ?\363)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
132 (?u . ?\372) (?c . ?\347)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
133 (?\ . ?'))
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
134 (?` (?A . ?\300) (?a . ?\340)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
135 (?\ . ?`))
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
136 (?^ (?A . ?\302) (?E . ?\312) (?O . ?\324)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
137 (?a . ?\342) (?e . ?\352) (?o . ?\364)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
138 (?\ . ?^))
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
139 (?\" (?U . ?\334) (?u . ?\374)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
140 (?\ . ?\"))
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
141 (?~ (?A . ?\303) (?O . ?\325) (?a . ?\343) (?o . ?\365)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
142 (?\ . ?~))
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
143 (?, (?c . ?\347) (?C . ?\307) (?, . ?,)))
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
144
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
145 ("spanish"
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
146 (?' (?A . ?\301) (?E . ?\311) (?I . ?\315) (?O . ?\323) (?U . ?\332)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
147 (?a . ?\341) (?e . ?\351) (?i . ?\355) (?o . ?\363) (?u . ?\372)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
148 (?\ . ?'))
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
149 (?\" (?U . ?\334) (?u . ?\374) (?\ . ?\"))
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
150 (?\~ (?N . ?\321) (?n . ?\361) (?> . ?\273) (?< . ?\253) (?! . ?\241)
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
151 (?? . ?\277) (?\ . ?\~)))
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
152
16459
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
153 ("latin-1"
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
154 (?' (?A . ?\301) (?E . ?\311) (?I . ?\315) (?O . ?\323) (?U . ?\332)
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
155 (?Y . ?\335) (?a . ?\341) (?e . ?\351) (?i . ?\355) (?o . ?\363)
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
156 (?u . ?\372) (?y . ?\375) (?' . ?\264)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
157 (?\ . ?'))
16303
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
158 (?` (?A . ?\300) (?E . ?\310) (?I . ?\314) (?O . ?\322) (?U . ?\331)
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
159 (?a . ?\340) (?e . ?\350) (?i . ?\354) (?o . ?\362) (?u . ?\371)
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
160 (?` . ?`) (?\ . ?`))
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
161 (?^ (?A . ?\302) (?E . ?\312) (?I . ?\316) (?O . ?\324) (?U . ?\333)
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
162 (?a . ?\342) (?e . ?\352) (?i . ?\356) (?o . ?\364) (?u . ?\373)
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
163 (?^ . ?^) (?\ . ?^))
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
164 (?\" (?A . ?\304) (?E . ?\313) (?I . ?\317) (?O . ?\326) (?U . ?\334)
b65af4967b38 (iso-languages): Add element for latin-3.
Richard M. Stallman <rms@gnu.org>
parents: 15920
diff changeset
165 (?a . ?\344) (?e . ?\353) (?i . ?\357) (?o . ?\366) (?s . ?\337)
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
166 (?u . ?\374) (?y . ?\377)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
167 (?\" . ?\250) (?\ . ?\"))
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
168 (?~ (?A . ?\303) (?C . ?\307) (?D . ?\320) (?N . ?\321) (?O . ?\325)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
169 (?T . ?\336) (?a . ?\343) (?c . ?\347) (?d . ?\360) (?n . ?\361)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
170 (?o . ?\365) (?t . ?\376)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
171 (?> . ?\273) (?< . ?\253) (?! . ?\241) (?? . ?\277)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
172 (?\~ . ?\270) (?\ . ?~))
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
173 (?/ (?A . ?\305) (?E . ?\306) (?O . ?\330) (?a . ?\345) (?e . ?\346)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
174 (?o . ?\370)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
175 (?/ . ?\260) (?\ . ?/)))
16459
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
176
17715
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
177 ("latin-2" latin-iso8859-2
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
178 (?' (?A . ?\301) (?C . ?\306) (?D . ?\320) (?E . ?\311) (?I . ?\315)
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
179 (?L . ?\305) (?N . ?\321) (?O . ?\323) (?R . ?\300) (?S . ?\246)
17716
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
180 (?U . ?\332) (?Y . ?\335) (?Z . ?\254)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
181 (?a . ?\341) (?c . ?\346) (?d . ?\360) (?e . ?\351) (?i . ?\355)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
182 (?l . ?\345) (?n . ?\361) (?o . ?\363) (?r . ?\340) (?s . ?\266)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
183 (?u . ?\372) (?y . ?\375) (?z . ?\274)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
184 (?' . ?\264) (?\ . ?'))
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
185 (?` (?A . ?\241) (?C . ?\307) (?E . ?\312) (?L . ?\243) (?S . ?\252)
17716
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
186 (?T . ?\336) (?Z . ?\257)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
187 (?a . ?\261) (?l . ?\263) (?c . ?\347) (?e . ?\352) (?s . ?\272)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
188 (?t . ?\376) (?z . ?\277)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
189 (?` . ?\252)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
190 (?. . ?\377) (?\ . ?`))
17716
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
191 (?^ (?A . ?\302) (?I . ?\316) (?O . ?\324)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
192 (?a . ?\342) (?i . ?\356) (?o . ?\364)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
193 (?^ . ?^) ; no special code?
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
194 (?\ . ?^))
17716
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
195 (?\" (?A . ?\304) (?E . ?\313) (?O . ?\326) (?U . ?\334)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
196 (?a . ?\344) (?e . ?\353) (?o . ?\366) (?s . ?\337) (?u . ?\374)
bef751068f42 (iso-languages): For Latin-2, add ^I and ^i. Fix ~a.
Richard M. Stallman <rms@gnu.org>
parents: 17715
diff changeset
197 (?\" . ?\250)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
198 (?\ . ?\"))
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
199 (?~ (?A . ?\303) (?C . ?\310) (?D . ?\317) (?L . ?\245) (?N . ?\322)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
200 (?O . ?\325) (?R . ?\330) (?S . ?\251) (?T . ?\253) (?U . ?\333)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
201 (?Z . ?\256)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
202 (?a . ?\343) (?c . ?\350) (?d . ?\357) (?l . ?\265) (?n . ?\362)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
203 (?o . ?\365) (?r . ?\370) (?s . ?\271) (?t . ?\273) (?u . ?\373)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
204 (?z . ?\276)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
205 (?v . ?\242) ; v accent
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
206 (?\~ . ?\242) ; v accent
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
207 (?\. . ?\270) ; cedilla accent
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
208 (?\ . ?~)))
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
209
17715
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
210 ("latin-3" latin-iso8859-3
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
211 (?' (?A . ?\301) (?E . ?\311) (?I . ?\315) (?O . ?\323) (?U . ?\332)
16459
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
212 (?a . ?\341) (?e . ?\351) (?i . ?\355) (?o . ?\363) (?u . ?\372)
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
213 (?' . ?\264) (?\ . ?'))
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
214 (?` (?A . ?\300) (?E . ?\310) (?I . ?\314) (?O . ?\322) (?U . ?\331)
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
215 (?a . ?\340) (?e . ?\350) (?i . ?\354) (?o . ?\362) (?u . ?\371)
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
216 (?` . ?`) (?\ . ?`))
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
217 (?^ (?A . ?\302) (?C . ?\306) (?E . ?\312) (?G . ?\330) (?H . ?\246)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
218 (?I . ?\316) (?J . ?\254) (?O . ?\324) (?S . ?\336) (?U . ?\333)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
219 (?a . ?\342) (?c . ?\346) (?e . ?\352) (?g . ?\370) (?h . ?\266)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
220 (?i . ?\356) (?j . ?\274) (?o . ?\364) (?s . ?\376) (?u . ?\373)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
221 (?^ . ?^) (?\ . ?^))
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
222 (?\" (?A . ?\304) (?E . ?\313) (?I . ?\317) (?O . ?\326) (?U . ?\334)
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
223 (?a . ?\344) (?e . ?\353) (?i . ?\357) (?o . ?\366) (?u . ?\374)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
224 (?s . ?\337)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
225 (?\" . ?\250) (?\ . ?\"))
16459
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
226 (?~ (?A . ?\303) (?C . ?\307) (?D . ?\320) (?N . ?\321) (?O . ?\325)
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
227 (?a . ?\343) (?c . ?\347) (?d . ?\360) (?n . ?\361) (?o . ?\365)
10b2ea857cac (iso-langauges): Alphabetize list.
Karl Heuer <kwzh@gnu.org>
parents: 16303
diff changeset
228 (?$ . ?\245) (?S . ?\252) (?s . ?\272) (?G . ?\253) (?g . ?\273)
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
229 (?U . ?\335) (?u . ?\375) (?` . ?\242)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
230 (?~ . ?\270) (?\ . ?~))
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
231 (?/ (?C . ?\305) (?G . ?\325) (?H . ?\241) (?I . ?\251) (?Z . ?\257)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
232 (?c . ?\345) (?g . ?\365) (?h . ?\261) (?i . ?\271) (?z . ?\277)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
233 (?r . ?\256)
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
234 (?. . ?\377) (?# . ?\243) (?$ . ?\244)
18020
26bfd2bf2830 Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 18019
diff changeset
235 (?/ . ?\260) (?\ . ?/))
18019
b5e19f3496e7 (iso-languages): For French and Portuguese,
Richard M. Stallman <rms@gnu.org>
parents: 17848
diff changeset
236 (?. (?C . ?\305) (?G . ?\325) (?I . ?\251) (?Z . ?\257)
18021
6f4f7470572b Move the latin-* to last.
Richard M. Stallman <rms@gnu.org>
parents: 18020
diff changeset
237 (?c . ?\345) (?g . ?\365) (?z . ?\277))))
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
238 "List of language-specific customizations for the ISO Accents mode.
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
239
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
240 Each element of the list is of the form
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
241
17715
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
242 (LANGUAGE [CHARSET]
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
243 (PSEUDO-ACCENT MAPPINGS)
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
244 (PSEUDO-ACCENT MAPPINGS)
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
245 ...)
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
246
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
247 LANGUAGE is a string naming the language.
17715
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
248 CHARSET (which may be omitted) is the symbol name
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
249 of the character set used in this language.
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
250 If CHARSET is omitted, latin-iso8859-1 is the default.
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
251 PSEUDO-ACCENT is a char specifying an accent key.
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
252 MAPPINGS are cons cells of the form (CHAR . ISO-CHAR).
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
253
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
254 The net effect is that the key sequence PSEUDO-ACCENT CHAR is mapped
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
255 to ISO-CHAR on input.")
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
256
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
257 (defvar iso-language nil
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
258 "Language for which ISO Accents mode is currently customized.
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
259 Change it with the `iso-accents-customize' function.")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
260
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
261 (defvar iso-accents-list nil
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
262 "Association list for ISO accent combinations, for the chosen language.")
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263
21645
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
264 (defcustom iso-accents-mode nil
4924
fb527936ca61 (iso-accents-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4922
diff changeset
265 "*Non-nil enables ISO Accents mode.
4733
4d378f483cf4 Set up keymap at load time.
Richard M. Stallman <rms@gnu.org>
parents: 4721
diff changeset
266 Setting this variable makes it local to the current buffer.
21645
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
267 See the function `iso-accents-mode'."
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
268 :type 'boolean
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
269 :group 'iso-acc)
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
270 (make-variable-buffer-local 'iso-accents-mode)
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
271
21645
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
272 (defcustom iso-accents-enable '(?' ?` ?^ ?\" ?~ ?/)
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
273 "*List of accent keys that become prefixes in ISO Accents mode.
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
274 The default is (?' ?` ?^ ?\" ?~ ?/), which contains all the supported
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
275 accent keys. If you set this variable to a list in which some of those
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
276 characters are missing, the missing ones do not act as accents.
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
277
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
278 Note that if you specify a language with `iso-accents-customize',
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
279 that can also turn off certain prefixes (whichever ones are not needed in
21645
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
280 the language you choose)."
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
281 :type '(repeat character)
40670d13dd48 Customize.
Stephen Eglen <stephen@gnu.org>
parents: 18021
diff changeset
282 :group 'iso-acc)
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
283
4877
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
284 (defun iso-accents-accent-key (prompt)
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
285 "Modify the following character by adding an accent to it."
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
286 ;; Pick up the accent character.
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
287 (if (and iso-accents-mode
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
288 (memq last-input-char iso-accents-enable))
4877
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
289 (iso-accents-compose prompt)
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
290 (char-to-string last-input-char)))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
291
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
292 (defun iso-accents-compose (prompt)
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
293 (let* ((first-char last-input-char)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
294 (list (assq first-char iso-accents-list))
4877
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
295 ;; Wait for the second key and look up the combination.
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
296 (second-char (if (or prompt
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
297 (not (eq (key-binding "a")
13136
b37ba01d6e27 Fix typo calling iso-accents-customize.
Richard M. Stallman <rms@gnu.org>
parents: 12728
diff changeset
298 'self-insert-command))
15167
d9e712c9cc68 (iso-accents-compose): Don't insert in the buffer
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
299 ;; Not at start of a key sequence.
d9e712c9cc68 (iso-accents-compose): Don't insert in the buffer
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
300 (> (length (this-single-command-keys)) 1)
13136
b37ba01d6e27 Fix typo calling iso-accents-customize.
Richard M. Stallman <rms@gnu.org>
parents: 12728
diff changeset
301 ;; Called from anything but the command loop.
b37ba01d6e27 Fix typo calling iso-accents-customize.
Richard M. Stallman <rms@gnu.org>
parents: 12728
diff changeset
302 this-command)
4877
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
303 (progn
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
304 (message "%s%c"
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
305 (or prompt "Compose with ")
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
306 first-char)
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
307 (read-event))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
308 (insert first-char)
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
309 (prog1 (read-event)
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
310 (delete-region (1- (point)) (point)))))
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
311 (entry (cdr (assq second-char list))))
4877
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
312 (if entry
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
313 ;; Found it: return the mapped char
17782
4522860df0cf (iso-accents-compose): Return composed character directly for execution.
Richard M. Stallman <rms@gnu.org>
parents: 17716
diff changeset
314 (vector
4522860df0cf (iso-accents-compose): Return composed character directly for execution.
Richard M. Stallman <rms@gnu.org>
parents: 17716
diff changeset
315 (if (and enable-multibyte-characters
4522860df0cf (iso-accents-compose): Return composed character directly for execution.
Richard M. Stallman <rms@gnu.org>
parents: 17716
diff changeset
316 (>= entry ?\200))
4522860df0cf (iso-accents-compose): Return composed character directly for execution.
Richard M. Stallman <rms@gnu.org>
parents: 17716
diff changeset
317 (+ iso-accents-insert-offset entry)
4522860df0cf (iso-accents-compose): Return composed character directly for execution.
Richard M. Stallman <rms@gnu.org>
parents: 17716
diff changeset
318 entry))
4877
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
319 ;; Otherwise, advance and schedule the second key for execution.
17701
1240e27fbb13 (iso-accents-compose):
Richard M. Stallman <rms@gnu.org>
parents: 16778
diff changeset
320 (setq unread-command-events
1240e27fbb13 (iso-accents-compose):
Richard M. Stallman <rms@gnu.org>
parents: 16778
diff changeset
321 (cons (list second-char) unread-command-events))
4877
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
322 (vector first-char))))
4733
4d378f483cf4 Set up keymap at load time.
Richard M. Stallman <rms@gnu.org>
parents: 4721
diff changeset
323
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
324 ;; It is a matter of taste if you want the minor mode indicated
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
325 ;; in the mode line...
4733
4d378f483cf4 Set up keymap at load time.
Richard M. Stallman <rms@gnu.org>
parents: 4721
diff changeset
326 ;; If so, uncomment the next four lines.
17701
1240e27fbb13 (iso-accents-compose):
Richard M. Stallman <rms@gnu.org>
parents: 16778
diff changeset
327 ;; (or (assq 'iso-accents-mode minor-mode-alist)
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
328 ;; (setq minor-mode-alist
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
329 ;; (append minor-mode-alist
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
330 ;; '((iso-accents-mode " ISO-Acc")))))
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
331
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
332 ;;;###autoload
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
333 (defun iso-accents-mode (&optional arg)
4924
fb527936ca61 (iso-accents-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4922
diff changeset
334 "Toggle ISO Accents mode, in which accents modify the following letter.
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
335 This permits easy insertion of accented characters according to ISO-8859-1.
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
336 When Iso-accents mode is enabled, accent character keys
4921
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
337 \(`, ', \", ^, / and ~) do not self-insert; instead, they modify the following
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
338 letter key so that it inserts an ISO accented letter.
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
339
13800
f32b410ed6ec Many doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13136
diff changeset
340 You can customize ISO Accents mode to a particular language
f32b410ed6ec Many doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13136
diff changeset
341 with the command `iso-accents-customize'.
5101
c95efc1cf15b (iso-accents-enable): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 5060
diff changeset
342
4921
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
343 Special combinations: ~c gives a c with cedilla,
10599
bbf3a30a4d39 (iso-accents-list): Add Icelandic thorn.
Karl Heuer <kwzh@gnu.org>
parents: 9740
diff changeset
344 ~d gives an Icelandic eth (d with dash).
bbf3a30a4d39 (iso-accents-list): Add Icelandic thorn.
Karl Heuer <kwzh@gnu.org>
parents: 9740
diff changeset
345 ~t gives an Icelandic thorn.
5060
0f70551a445a (iso-accents-list): Add "s.
Richard M. Stallman <rms@gnu.org>
parents: 5059
diff changeset
346 \"s gives German sharp s.
0f70551a445a (iso-accents-list): Add "s.
Richard M. Stallman <rms@gnu.org>
parents: 5059
diff changeset
347 /a gives a with ring.
0f70551a445a (iso-accents-list): Add "s.
Richard M. Stallman <rms@gnu.org>
parents: 5059
diff changeset
348 /e gives an a-e ligature.
13992
15305606a97a (iso-accents-mode): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 13865
diff changeset
349 ~< and ~> give guillemots.
11642
ffbb4fa31092 (iso-accents-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 11523
diff changeset
350 ~! gives an inverted exclamation mark.
ffbb4fa31092 (iso-accents-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 11523
diff changeset
351 ~? gives an inverted question mark.
4921
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
352
5101
c95efc1cf15b (iso-accents-enable): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 5060
diff changeset
353 With an argument, a positive argument enables ISO Accents mode,
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
354 and a negative argument disables it."
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
355
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
356 (interactive "P")
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
357
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
358 (if (if arg
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
359 ;; Negative arg means switch it off.
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
360 (<= (prefix-numeric-value arg) 0)
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
361 ;; No arg means toggle.
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
362 iso-accents-mode)
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
363 (setq iso-accents-mode nil)
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
364
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365 ;; Enable electric accents.
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
366 (setq iso-accents-mode t)))
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
367
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
368 (defun iso-accents-customize (language)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
369 "Customize the ISO accents machinery for a particular language.
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
370 It selects the customization based on the specifications in the
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
371 `iso-languages' variable."
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
372 (interactive (list (completing-read "Language: " iso-languages nil t)))
17715
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
373 (let ((table (cdr (assoc language iso-languages)))
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
374 all-accents tail)
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
375 (if (not table)
17715
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
376 (error "Unknown language `%s'" language)
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
377 (setq iso-accents-insert-offset (- (make-char (if (symbolp (car table))
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
378 (car table)
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
379 'latin-iso8859-1))
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
380 128))
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
381 (if (symbolp (car table))
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
382 (setq table (cdr table)))
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
383 (setq iso-language language
17715
599ab8f1aa84 (iso-languages): Add charset spec to some elements.
Richard M. Stallman <rms@gnu.org>
parents: 17701
diff changeset
384 iso-accents-list table)
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
385 (if key-translation-map
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
386 (substitute-key-definition
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
387 'iso-accents-accent-key nil key-translation-map)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
388 (setq key-translation-map (make-sparse-keymap)))
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
389 ;; Set up translations for all the characters that are used as
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
390 ;; accent prefixes in this language.
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
391 (setq tail iso-accents-list)
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
392 (while tail
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
393 (define-key key-translation-map (vector (car (car tail)))
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
394 'iso-accents-accent-key)
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
395 (setq tail (cdr tail))))))
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
396
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
397 (defun iso-accentuate (start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
398 "Convert two-character sequences in region into accented characters.
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
399 Noninteractively, this operates on text from START to END.
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
400 This uses the same conversion that ISO Accents mode uses for type-in."
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
401 (interactive "r")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
402 (save-excursion
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
403 (save-restriction
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
404 (narrow-to-region start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
405 (goto-char start)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
406 (forward-char 1)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
407 (let (entry)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
408 (while (< (point) end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
409 (if (and (memq (preceding-char) iso-accents-enable)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
410 (setq entry (cdr (assq (following-char) (assq (preceding-char) iso-accents-list)))))
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
411 (progn
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
412 (forward-char -1)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
413 (delete-char 2)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
414 (insert entry)
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
415 (setq end (1- end)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
416 (forward-char 1)))))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
417
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
418 (defun iso-accent-rassoc-unit (value alist)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
419 (let (elt acc)
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
420 (while (and alist (not elt))
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
421 (setq acc (car (car alist))
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
422 elt (car (rassq value (cdr (car alist))))
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
423 alist (cdr alist)))
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
424 (if elt
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
425 (cons acc elt))))
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
426
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
427 (defun iso-unaccentuate (start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
428 "Convert accented characters in the region into two-character sequences.
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
429 Noninteractively, this operates on text from START to END.
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
430 This uses the opposite of the conversion done by ISO Accents mode for type-in."
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
431 (interactive "r")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
432 (save-excursion
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
433 (save-restriction
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
434 (narrow-to-region start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
435 (goto-char start)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
436 (let (entry)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
437 (while (< (point) end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
438 (if (and (> (following-char) 127)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
439 (setq entry (iso-accent-rassoc-unit (following-char)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
440 iso-accents-list)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
441 (progn
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
442 (delete-char 1)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
443 (insert (car entry) (cdr entry))
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
444 (setq end (1+ end)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
445 (forward-char 1)))))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
446
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
447 (defun iso-deaccentuate (start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
448 "Convert accented characters in the region into unaccented characters.
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
449 Noninteractively, this operates on text from START to END."
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
450 (interactive "r")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
451 (save-excursion
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
452 (save-restriction
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
453 (narrow-to-region start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
454 (goto-char start)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
455 (let (entry)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
456 (while (< (point) end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
457 (if (and (> (following-char) 127)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
458 (setq entry (iso-accent-rassoc-unit (following-char)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
459 iso-accents-list)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
460 (progn
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
461 (delete-char 1)
14358
55e1bf4d743a (iso-languages): Restructure the list to remove
Richard M. Stallman <rms@gnu.org>
parents: 14289
diff changeset
462 (insert (cdr entry)))
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
463 (forward-char 1)))))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
464
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
465 ;; Set up the default settings.
14289
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
466 (iso-accents-customize "latin-1")
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
467
14720
52a6ccf7c0a8 (iso-languages): Add ~? and ~!.
Richard M. Stallman <rms@gnu.org>
parents: 14358
diff changeset
468 ;; Use Iso-Accents mode in the minibuffer
52a6ccf7c0a8 (iso-languages): Add ~? and ~!.
Richard M. Stallman <rms@gnu.org>
parents: 14358
diff changeset
469 ;; if it was in use in the previous buffer.
52a6ccf7c0a8 (iso-languages): Add ~? and ~!.
Richard M. Stallman <rms@gnu.org>
parents: 14358
diff changeset
470 (defun iso-acc-minibuf-setup ()
52a6ccf7c0a8 (iso-languages): Add ~? and ~!.
Richard M. Stallman <rms@gnu.org>
parents: 14358
diff changeset
471 (setq iso-accents-mode
52a6ccf7c0a8 (iso-languages): Add ~? and ~!.
Richard M. Stallman <rms@gnu.org>
parents: 14358
diff changeset
472 (save-excursion
52a6ccf7c0a8 (iso-languages): Add ~? and ~!.
Richard M. Stallman <rms@gnu.org>
parents: 14358
diff changeset
473 (set-buffer (window-buffer minibuffer-scroll-window))
52a6ccf7c0a8 (iso-languages): Add ~? and ~!.
Richard M. Stallman <rms@gnu.org>
parents: 14358
diff changeset
474 iso-accents-mode)))
52a6ccf7c0a8 (iso-languages): Add ~? and ~!.
Richard M. Stallman <rms@gnu.org>
parents: 14358
diff changeset
475
15920
e67d0c1ec11c (minibuffer-setup-hook): Fix misspelling of hook name.
Richard M. Stallman <rms@gnu.org>
parents: 15840
diff changeset
476 (add-hook 'minibuffer-setup-hook 'iso-acc-minibuf-setup)
14720
52a6ccf7c0a8 (iso-languages): Add ~? and ~!.
Richard M. Stallman <rms@gnu.org>
parents: 14358
diff changeset
477
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
478 ;;; iso-acc.el ends here