annotate lisp/international/iso-acc.el @ 14289:5ef14e01a330

(iso-accents-customize): Extract accent chars properly from iso-accents-list. (iso-languages): Rename "default" to "latin-1". Add a new element "latin-2" copied from iso02-acc.el.
author Karl Heuer <kwzh@gnu.org>
date Wed, 24 Jan 1996 23:27:59 +0000
parents 83f275dcd93a
children 55e1bf4d743a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
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
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14115
diff changeset
3 ;; Copyright (C) 1993, 1994 Free Software Foundation, Inc.
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 ;; Author: Johan Vromans <jv@mh.nl>
5040
34ce5cc32eb8 (iso-accents-list): Added /A for A-with-ring
Richard M. Stallman <rms@gnu.org>
parents: 4924
diff changeset
6 ;; Version: 1.7 (modified)
4921
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
7 ;; Maintainer: FSF
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
8 ;; Keywords: i18n
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; 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
14 ;; the Free Software Foundation; either version 2, or (at your option)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; any later version.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; GNU General Public License for more details.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; 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
23 ;; 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
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14115
diff changeset
25 ;; Boston, MA 02111-1307, USA.
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 ;;; Commentary:
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
29 ;; 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
30 ;; 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
31 ;; is to provide a simple means for inserting accented characters
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
32 ;; according to the ISO-8859-1 character set.
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 ;;
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
34 ;; 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
35 ;; introduce accented keys. The pseudo-accent characters are:
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;; ' (minute) -> grave accent
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;; ` (backtick) -> acute accent
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;; " (second) -> diaeresis
4921
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
40 ;; ^ (caret) -> circumflex
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
41 ;; ~ (tilde) -> tilde over the character
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
42 ;; / (slash) -> slash through the character.
5040
34ce5cc32eb8 (iso-accents-list): Added /A for A-with-ring
Richard M. Stallman <rms@gnu.org>
parents: 4924
diff changeset
43 ;; Also: /A is A-with-ring and /E is AE ligature.
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 ;; The action taken depends on the key that follows the pseudo accent.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 ;; In general:
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 ;; pseudo-accent + appropriate letter -> accented letter
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 ;; pseudo-accent + space -> pseudo-accent
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 ;; pseudo-accent + pseudo-accent -> accent (if available)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 ;; pseudo-accent + other -> pseudo-accent + other
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 ;; If the pseudo-accent is followed by anything else than a
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 ;; self-insert-command, the dead-key code is terminated, the
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 ;; 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
56 ;;
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
57 ;; 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
58 ;; minor mode, or disable it.
5101
c95efc1cf15b (iso-accents-enable): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 5060
diff changeset
59
c95efc1cf15b (iso-accents-enable): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 5060
diff changeset
60 ;; If you want only some of these characters to serve as accents,
13800
f32b410ed6ec Many doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13136
diff changeset
61 ;; add a language to iso-languages which specifies the accent characters
f32b410ed6ec Many doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13136
diff changeset
62 ;; that you want, then select the language with iso-accents-customize.
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 ;;; Code:
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 (provide 'iso-acc)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
68 (defvar iso-languages
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
69 '(("portuguese"
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
70 (?' ?` ?^ ?\" ?~)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
71 (((?' ?A) ?\301) ((?' ?E) ?\311) ((?' ?I) ?\315) ((?' ?O) ?\323)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
72 ((?' ?U) ?\332) ((?' ?C) ?\307) ((?' ?a) ?\341) ((?' ?e) ?\351)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
73 ((?' ?i) ?\355) ((?' ?o) ?\363) ((?' ?u) ?\372) ((?' ?c) ?\347)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
74 ((?' ? ) ?') ((?` ?A) ?\300) ((?` ?a) ?\340) ((?` ? ) ?`)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
75 ((?^ ?A) ?\302) ((?^ ?E) ?\312) ((?^ ?O) ?\324) ((?^ ?a) ?\342)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
76 ((?^ ?e) ?\352) ((?^ ?o) ?\364) ((?^ ? ) ?^) ((?\" ?U) ?\334)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
77 ((?\" ?u) ?\374) ((?\" ? ) ?\") ((?\~ ?A) ?\303) ((?\~ ?O) ?\325)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
78 ((?\~ ?a) ?\343) ((?\~ ?o) ?\365) ((?\~ ?\ ) ?\~)))
13820
8d33da3d3899 (iso-languages): Add entry for `irish'.
Richard M. Stallman <rms@gnu.org>
parents: 13800
diff changeset
79 ("irish"
8d33da3d3899 (iso-languages): Add entry for `irish'.
Richard M. Stallman <rms@gnu.org>
parents: 13800
diff changeset
80 (?')
8d33da3d3899 (iso-languages): Add entry for `irish'.
Richard M. Stallman <rms@gnu.org>
parents: 13800
diff changeset
81 (((?' ?A) ?\301) ((?' ?E) ?\311) ((?' ?I) ?\315) ((?' ?O) ?\323)
8d33da3d3899 (iso-languages): Add entry for `irish'.
Richard M. Stallman <rms@gnu.org>
parents: 13800
diff changeset
82 ((?' ?U) ?\332) ((?' ?a) ?\341) ((?' ?e) ?\351)
8d33da3d3899 (iso-languages): Add entry for `irish'.
Richard M. Stallman <rms@gnu.org>
parents: 13800
diff changeset
83 ((?' ?i) ?\355) ((?' ?o) ?\363) ((?' ?u) ?\372)
8d33da3d3899 (iso-languages): Add entry for `irish'.
Richard M. Stallman <rms@gnu.org>
parents: 13800
diff changeset
84 ((?' ? ) ?') ))
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
85 ("french"
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
86 (?' ?` ?^ ?\" ?~)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
87 (((?' ?A) ?\301) ((?' ?E) ?\311) ((?' ?I) ?\315) ((?' ?O) ?\323)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
88 ((?' ?U) ?\332) ((?' ?C) ?\307) ((?' ?a) ?\341) ((?' ?e) ?\351)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
89 ((?' ?i) ?\355) ((?' ?o) ?\363) ((?' ?u) ?\372) ((?' ?c) ?\347)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
90 ((?' ? ) ?') ((?` ?A) ?\300) ((?` ?E) ?\310) ((?` ?a) ?\340)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
91 ((?` ?e) ?\350) ((?` ? ) ?`) ((?^ ?A) ?\302) ((?^ ?E) ?\312)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
92 ((?^ ?I) ?\316) ((?^ ?O) ?\324) ((?^ ?U) ?\333) ((?^ ?a) ?\342)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
93 ((?^ ?e) ?\352) ((?^ ?i) ?\356) ((?^ ?o) ?\364) ((?^ ?u) ?\373)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
94 ((?^ ? ) ?^) ((?\" ?U) ?\334) ((?\" ?u) ?\374) ((?\" ? ) ?\")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
95 ((?\~ ?A) ?\303) ((?\~ ?O) ?\325) ((?\~ ?a) ?\343) ((?\~ ?o) ?\365)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
96 ((?\~ ?\ ) ?\~)))
14289
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
97 ("latin-2"
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
98 (?' ?` ?^ ?\" ?~)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
99 (((?' ?A) ?\301)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
100 ((?' ?C) ?\306)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
101 ((?' ?D) ?\320)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
102 ((?' ?E) ?\311)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
103 ((?' ?I) ?\315)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
104 ((?' ?L) ?\305)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
105 ((?' ?N) ?\321)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
106 ((?' ?O) ?\323)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
107 ((?' ?R) ?\300)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
108 ((?' ?S) ?\246)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
109 ((?' ?U) ?\332)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
110 ((?' ?Y) ?\335)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
111 ((?' ?Z) ?\254)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
112 ((?' ?a) ?\341)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
113 ((?' ?c) ?\346)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
114 ((?' ?d) ?\360)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
115 ((?' ?e) ?\351)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
116 ((?' ?i) ?\355)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
117 ((?' ?l) ?\345)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
118 ((?' ?n) ?\361)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
119 ((?' ?o) ?\363)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
120 ((?' ?r) ?\340)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
121 ((?' ?s) ?\266)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
122 ((?' ?u) ?\372)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
123 ((?' ?y) ?\375)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
124 ((?' ?z) ?\274)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
125 ((?' ?') ?\264)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
126 ((?' ? ) ?')
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
127 ((?` ?A) ?\241)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
128 ((?` ?C) ?\307)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
129 ((?` ?E) ?\312)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
130 ((?` ?L) ?\243)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
131 ((?` ?S) ?\252)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
132 ((?` ?T) ?\336)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
133 ((?` ?Z) ?\257)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
134 ((?` ?a) ?\261)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
135 ((?` ?l) ?\263)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
136 ((?` ?c) ?\347)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
137 ((?` ?e) ?\352)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
138 ((?` ?s) ?\272)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
139 ((?` ?t) ?\376)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
140 ((?` ?z) ?\277)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
141 ((?` ? ) ?`)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
142 ((?` ?`) ?\252)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
143 ((?` ?.) ?\377)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
144 ((?^ ?A) ?\302)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
145 ((?^ ?O) ?\324)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
146 ((?^ ?a) ?\342)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
147 ((?^ ?o) ?\364)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
148 ((?^ ? ) ?^)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
149 ((?^ ?^) ?^) ; no special code?
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
150 ((?\" ?A) ?\304)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
151 ((?\" ?E) ?\313)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
152 ((?\" ?O) ?\326)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
153 ((?\" ?U) ?\334)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
154 ((?\" ?a) ?\344)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
155 ((?\" ?e) ?\353)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
156 ((?\" ?o) ?\366)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
157 ((?\" ?s) ?\337)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
158 ((?\" ?u) ?\374)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
159 ((?\" ? ) ?\")
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
160 ((?\" ?\") ?\250)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
161 ((?\~ ?A) ?\303)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
162 ((?\~ ?C) ?\310)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
163 ((?\~ ?D) ?\317)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
164 ((?\~ ?L) ?\245)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
165 ((?\~ ?N) ?\322)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
166 ((?\~ ?O) ?\325)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
167 ((?\~ ?R) ?\330)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
168 ((?\~ ?S) ?\251)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
169 ((?\~ ?T) ?\253)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
170 ((?\~ ?U) ?\333)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
171 ((?\~ ?Z) ?\256)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
172 ((?\~ ?a) ?\323)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
173 ((?\~ ?c) ?\350)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
174 ((?\~ ?d) ?\357)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
175 ((?\~ ?l) ?\265)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
176 ((?\~ ?n) ?\362)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
177 ((?\~ ?o) ?\365)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
178 ((?\~ ?r) ?\370)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
179 ((?\~ ?s) ?\271)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
180 ((?\~ ?t) ?\273)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
181 ((?\~ ?u) ?\373)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
182 ((?\~ ?z) ?\276)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
183 ((?\~ ?\ ) ?\~)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
184 ((?\~ ?v) ?\242);; v accent
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
185 ((?\~ ?\~) ?\242);; v accent
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
186 ((?\~ ?\.) ?\270);; cedilla accent
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
187 ))
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
188 ("latin-1"
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
189 (?' ?` ?^ ?\" ?~ ?/)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
190 (((?' ?A) ?\301) ((?' ?E) ?\311) ((?' ?I) ?\315) ((?' ?O) ?\323)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
191 ((?' ?U) ?\332) ((?' ?Y) ?\335) ((?' ?a) ?\341) ((?' ?e) ?\351)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
192 ((?' ?i) ?\355) ((?' ?o) ?\363) ((?' ?u) ?\372) ((?' ?y) ?\375)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
193 ((?' ?') ?\264) ((?' ? ) ?') ((?` ?A) ?\300) ((?` ?E) ?\310)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
194 ((?` ?I) ?\314) ((?` ?O) ?\322) ((?` ?U) ?\331) ((?` ?a) ?\340)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
195 ((?` ?e) ?\350) ((?` ?i) ?\354) ((?` ?o) ?\362) ((?` ?u) ?\371)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
196 ((?` ? ) ?`) ((?` ?`) ?`) ((?^ ?A) ?\302) ((?^ ?E) ?\312)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
197 ((?^ ?I) ?\316) ((?^ ?O) ?\324) ((?^ ?U) ?\333) ((?^ ?a) ?\342)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
198 ((?^ ?e) ?\352) ((?^ ?i) ?\356) ((?^ ?o) ?\364) ((?^ ?u) ?\373)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
199 ((?^ ? ) ?^) ((?^ ?^) ?^) ((?\" ?A) ?\304) ((?\" ?E) ?\313)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
200 ((?\" ?I) ?\317) ((?\" ?O) ?\326) ((?\" ?U) ?\334) ((?\" ?a) ?\344)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
201 ((?\" ?e) ?\353) ((?\" ?i) ?\357) ((?\" ?o) ?\366) ((?\" ?s) ?\337)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
202 ((?\" ?u) ?\374) ((?\" ?y) ?\377) ((?\" ? ) ?\") ((?\" ?\") ?\250)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
203 ((?\~ ?A) ?\303) ((?\~ ?C) ?\307) ((?\~ ?D) ?\320) ((?\~ ?N) ?\321)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
204 ((?\~ ?O) ?\325) ((?\~ ?T) ?\336) ((?\~ ?a) ?\343) ((?\~ ?c) ?\347)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
205 ((?\~ ?d) ?\360) ((?\~ ?n) ?\361) ((?\~ ?o) ?\365) ((?\~ ?t) ?\376)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
206 ((?\~ ?>) ?\273) ((?\~ ?<) ?\253) ((?\~ ?\ ) ?\~) ((?\~ ?\~) ?\270)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
207 ((?\/ ?A) ?\305) ((?\/ ?E) ?\306) ((?\/ ?O) ?\330) ((?\/ ?a) ?\345)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
208 ((?\/ ?e) ?\346) ((?\/ ?o) ?\370) ((?\/ ?\ ) ?\/) ((?\/ ?\/) ?\260))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
209 "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
210
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
211 Each element of the list is of the form (LANGUAGE PREFIXES LIST).
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
212
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
213 LANGUAGE is a string naming the language.
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
214
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
215 PREFIXES is a list of characters that will be used as accent prefixes.
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
216 It is currently not used.
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
217
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
218 LIST is a list of accent translations. It will be the value of the
13800
f32b410ed6ec Many doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13136
diff changeset
219 `iso-accents-list' variable.")
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
220
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
221 (defvar iso-language nil
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
222 "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
223 Change it with the `iso-accents-customize' function.")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
224
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
225 (defvar iso-accents-list nil
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
226 "Association list for ISO accent combinations, for the chosen language.")
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
227
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
228 (defvar iso-accents-mode nil
4924
fb527936ca61 (iso-accents-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4922
diff changeset
229 "*Non-nil enables ISO Accents mode.
4733
4d378f483cf4 Set up keymap at load time.
Richard M. Stallman <rms@gnu.org>
parents: 4721
diff changeset
230 Setting this variable makes it local to the current buffer.
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
231 See the function `iso-accents-mode'.")
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
232 (make-variable-buffer-local 'iso-accents-mode)
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
233
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
234 (defvar iso-accents-enable '(?' ?` ?^ ?\" ?~ ?/)
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
235 "*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
236 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
237 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
238 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
239
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
240 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
241 that can also turn off certain prefixes (whichever ones are not needed in
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
242 the language you choose).")
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
243
4877
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
244 (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
245 "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
246 ;; 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
247 (if (and iso-accents-mode
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
248 (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
249 (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
250 (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
251
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
252 (defun iso-accents-compose-key (prompt)
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
253 "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
254 ;; Pick up the accent character.
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
255 (let ((combined (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
256 (if unread-command-events
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
257 (let ((unread unread-command-events))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
258 (setq unread-command-events nil)
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
259 (error "Characters %s and %s cannot be composed"
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
260 (single-key-description (aref combined 0))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
261 (single-key-description (car unread)))))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
262 combined))
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263
4877
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
264 (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
265 (let* ((first-char 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
266 ;; 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
267 (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
268 (not (eq (key-binding "a")
13136
b37ba01d6e27 Fix typo calling iso-accents-customize.
Richard M. Stallman <rms@gnu.org>
parents: 12728
diff changeset
269 'self-insert-command))
b37ba01d6e27 Fix typo calling iso-accents-customize.
Richard M. Stallman <rms@gnu.org>
parents: 12728
diff changeset
270 ;; Called from anything but the command loop.
b37ba01d6e27 Fix typo calling iso-accents-customize.
Richard M. Stallman <rms@gnu.org>
parents: 12728
diff changeset
271 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
272 (progn
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
273 (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
274 (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
275 first-char)
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
276 (read-event))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
277 (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
278 (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
279 (delete-region (1- (point)) (point)))))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
280 (entry (assoc (list first-char second-char) iso-accents-list)))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
281 (if entry
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
282 ;; Found it: delete the first character and insert the combination.
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
283 (concat (list (nth 1 entry)))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
284 ;; Otherwise, advance and schedule the second key for execution.
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
285 (setq unread-command-events (list second-char))
4c51d8a8b09f Define "dead keys" in key-translation-map, not in global-map.
Richard M. Stallman <rms@gnu.org>
parents: 4734
diff changeset
286 (vector first-char))))
4733
4d378f483cf4 Set up keymap at load time.
Richard M. Stallman <rms@gnu.org>
parents: 4721
diff changeset
287
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
288 ;; 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
289 ;; in the mode line...
4733
4d378f483cf4 Set up keymap at load time.
Richard M. Stallman <rms@gnu.org>
parents: 4721
diff changeset
290 ;; If so, uncomment the next four lines.
9740
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
291 ;; (or (assq 'iso-accents-mode minor-mode-map-alist)
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
292 ;; (setq minor-mode-alist
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
293 ;; (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
294 ;; '((iso-accents-mode " ISO-Acc")))))
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
295
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
296 ;;;###autoload
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
297 (defun iso-accents-mode (&optional arg)
4924
fb527936ca61 (iso-accents-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4922
diff changeset
298 "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
299 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
300 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
301 \(`, ', \", ^, / 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
302 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
303
13800
f32b410ed6ec Many doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13136
diff changeset
304 You can customize ISO Accents mode to a particular language
f32b410ed6ec Many doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13136
diff changeset
305 with the command `iso-accents-customize'.
5101
c95efc1cf15b (iso-accents-enable): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 5060
diff changeset
306
4921
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
307 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
308 ~d gives an Icelandic eth (d with dash).
bbf3a30a4d39 (iso-accents-list): Add Icelandic thorn.
Karl Heuer <kwzh@gnu.org>
parents: 9740
diff changeset
309 ~t gives an Icelandic thorn.
5060
0f70551a445a (iso-accents-list): Add "s.
Richard M. Stallman <rms@gnu.org>
parents: 5059
diff changeset
310 \"s gives German sharp s.
0f70551a445a (iso-accents-list): Add "s.
Richard M. Stallman <rms@gnu.org>
parents: 5059
diff changeset
311 /a gives a with ring.
0f70551a445a (iso-accents-list): Add "s.
Richard M. Stallman <rms@gnu.org>
parents: 5059
diff changeset
312 /e gives an a-e ligature.
13992
15305606a97a (iso-accents-mode): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 13865
diff changeset
313 ~< and ~> give guillemots.
11642
ffbb4fa31092 (iso-accents-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 11523
diff changeset
314 ~! gives an inverted exclamation mark.
ffbb4fa31092 (iso-accents-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 11523
diff changeset
315 ~? gives an inverted question mark.
4921
e96cc77d9a7c Support ~ and /. Support 'Y, 'y, "y.
Richard M. Stallman <rms@gnu.org>
parents: 4877
diff changeset
316
5101
c95efc1cf15b (iso-accents-enable): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 5060
diff changeset
317 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
318 and a negative argument disables it."
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
319
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
320 (interactive "P")
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
321
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
322 (if (if arg
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
323 ;; Negative arg means switch it off.
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
324 (<= (prefix-numeric-value arg) 0)
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
325 ;; 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
326 iso-accents-mode)
ba689bf126fb (iso-accents-mode): Variable renamed from iso-accents-minor-mode.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
327 (setq iso-accents-mode nil)
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
328
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
329 ;; 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
330 (setq iso-accents-mode t)))
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
331
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
332 (defun iso-accents-customize (language)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
333 "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
334 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
335 `iso-languages' variable."
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
336 (interactive (list (completing-read "Language: " iso-languages nil t)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
337 (let ((table (assoc language iso-languages))
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
338 all-accents tail)
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
339 (if (not table)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
340 (error "Unknown language")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
341 (setq iso-language language)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
342 (setq iso-accents-list (car (cdr (cdr table))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
343 (if key-translation-map
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
344 (substitute-key-definition
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
345 'iso-accents-accent-key nil key-translation-map)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
346 (setq key-translation-map (make-sparse-keymap)))
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
347 ;; Find all the characters that are used as accent prefixes
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
348 ;; in this language, and set up translation for them.
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
349 (setq tail iso-accents-list)
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
350 (while tail
14289
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
351 (let ((acc (car (car (car tail)))))
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
352 (or (memq acc all-accents)
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
353 (setq all-accents (cons acc all-accents))))
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
354 (setq tail (cdr tail)))
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
355 (setq tail all-accents)
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
356 (while tail
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
357 (define-key key-translation-map (char-to-string (car tail))
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
358 'iso-accents-accent-key)
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
359 (setq tail (cdr tail))))))
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
360
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
361 (defun iso-accentuate (start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
362 "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
363 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
364 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
365 (interactive "r")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
366 (save-excursion
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
367 (save-restriction
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
368 (narrow-to-region start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
369 (goto-char start)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
370 (forward-char 1)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
371 (let (entry)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
372 (while (< (point) end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
373 (if (and (memq (preceding-char) iso-accents-enable)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
374 (<= ?A (following-char))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
375 (<= (following-char) ?z)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
376 (setq entry (assoc (list (preceding-char) (following-char))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
377 iso-accents-list)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
378 (progn
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
379 (forward-char -1)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
380 (delete-char 2)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
381 (insert (car (cdr entry)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
382 (setq end (1- end)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
383 (forward-char 1)))))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
384
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
385 (defun iso-accent-rassoc-unit (value alist)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
386 (while (and alist
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
387 (not (eq (car (cdr (car alist))) value)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
388 (setq alist (cdr alist)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
389 (if alist
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
390 (car alist)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
391 nil))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
392
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
393 (defun iso-unaccentuate (start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
394 "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
395 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
396 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
397 (interactive "r")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
398 (save-excursion
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
399 (save-restriction
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
400 (narrow-to-region start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
401 (goto-char start)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
402 (let (entry)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
403 (while (< (point) end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
404 (if (and (> (following-char) 127)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
405 (setq entry (iso-accent-rassoc-unit (following-char)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
406 iso-accents-list)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
407 (progn
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
408 (delete-char 1)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
409 (insert (car (car entry)) (car (cdr (car entry))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
410 (setq end (1+ end)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
411 (forward-char 1)))))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
412
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
413 (defun iso-deaccentuate (start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
414 "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
415 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
416 (interactive "r")
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
417 (save-excursion
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
418 (save-restriction
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
419 (narrow-to-region start end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
420 (goto-char start)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
421 (let (entry)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
422 (while (< (point) end)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
423 (if (and (> (following-char) 127)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
424 (setq entry (iso-accent-rassoc-unit (following-char)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
425 iso-accents-list)))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
426 (progn
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
427 (delete-char 1)
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
428 (insert (car (cdr (car entry)))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
429 (forward-char 1)))))))
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
430
14115
bc30354daf1f (iso-accents-accent-key): Check iso-accents-enable here.
Karl Heuer <kwzh@gnu.org>
parents: 13992
diff changeset
431 ;; Set up the default settings.
14289
5ef14e01a330 (iso-accents-customize): Extract accent chars
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
432 (iso-accents-customize "latin-1")
12728
abe3fc783a45 Major additions by Gustavo Chaves.
Richard M. Stallman <rms@gnu.org>
parents: 11642
diff changeset
433
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
434 ;;; iso-acc.el ends here