annotate lisp/international/iso-acc.el @ 4721:d34c02ddea9f

Fix lots of doc strings. (iso-accents-mode): Positive arg means enable. No arg means toggle.
author Richard M. Stallman <rms@gnu.org>
date Tue, 14 Sep 1993 18:20:59 +0000
parents 797fe2b66800
children 4d378f483cf4
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
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2 ;;; Copyright (C) 1993 Free Software Foundation, Inc.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4 ;; Author: Johan Vromans <jv@mh.nl>
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 ;; Version: 1.4
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7 ;; This file is part of GNU Emacs.
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 ;; GNU Emacs is free software; you can redistribute it and/or modify
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; 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
11 ;; the Free Software Foundation; either version 2, or (at your option)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; any later version.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; GNU Emacs is distributed in the hope that it will be useful,
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; GNU General Public License for more details.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; You should have received a copy of the GNU General Public License
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; along with GNU Emacs; see the file COPYING. If not, write to
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 ;;; Commentary:
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25 ;; Function `iso-accents' activates a minor mode (`iso-accents-minor-mode')
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 ;; in which typewriter "dead keys" are emulated. The purpose of this
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 ;; emulation is to provide a simple means for inserting accented
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28 ;; characters according to the ISO-8859-1 character set.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;; In `iso-accents-minor-mode', pseudo accent characters are used to
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 ;; introduce accented keys. The pseudo-accent characterss are:
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 ;; ' (minute) -> grave accent
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 ;; ` (backtick) -> acute accent
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;; " (second) -> diaeresis
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;; ^ (caret) -> circonflexe
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;; The action taken depends on the key that follows the pseudo accent.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;; In general:
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 ;; pseudo-accent + appropriate letter -> accented letter
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 ;; pseudo-accent + space -> pseudo-accent
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 ;; pseudo-accent + pseudo-accent -> accent (if available)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ;; pseudo-accent + other -> pseudo-accent + other
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 ;;
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 ;; If the pseudo-accent is followed by anything else than a
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 ;; self-insert-command, the dead-key code is terminated, the
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 ;; 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
49 ;;
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
50 ;; 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
51 ;; minor mode, or disable it.
4720
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 ;;; Code:
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 (provide 'iso-acc)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 (defvar iso-accents-list
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 '(((?' ?A) ?\301)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 ((?' ?E) ?\311)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 ((?' ?I) ?\315)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 ((?' ?O) ?\323)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 ((?' ?U) ?\332)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 ((?' ?a) ?\341)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 ((?' ?e) ?\351)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 ((?' ?i) ?\355)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 ((?' ?o) ?\363)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 ((?' ?u) ?\372)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 ((?' ?') ?\264)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 ((?' ? ) ?')
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 ((?` ?A) ?\300)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 ((?` ?E) ?\310)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 ((?` ?I) ?\314)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 ((?` ?O) ?\322)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 ((?` ?U) ?\331)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 ((?` ?a) ?\340)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76 ((?` ?e) ?\350)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
77 ((?` ?i) ?\354)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78 ((?` ?o) ?\362)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
79 ((?` ?u) ?\371)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80 ((?` ? ) ?`)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
81 ((?` ?`) ?`) ; no special code?
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
82 ((?` ?A) ?\302)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83 ((?^ ?E) ?\312)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84 ((?^ ?I) ?\316)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85 ((?^ ?O) ?\324)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86 ((?^ ?U) ?\333)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87 ((?^ ?a) ?\342)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 ((?^ ?e) ?\352)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89 ((?^ ?i) ?\356)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 ((?^ ?o) ?\364)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 ((?^ ?u) ?\373)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
92 ((?^ ? ) ?^)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 ((?^ ?^) ?^) ; no special code?
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94 ((?\" ?A) ?\304)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95 ((?\" ?E) ?\313)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96 ((?\" ?I) ?\317)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
97 ((?\" ?O) ?\326)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98 ((?\" ?U) ?\334)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99 ((?\" ?a) ?\344)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 ((?\" ?e) ?\353)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 ((?\" ?i) ?\357)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
102 ((?\" ?o) ?\366)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103 ((?\" ?u) ?\374)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 ((?\" ? ) ?\")
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105 ((?\" ?\") ?\250)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106 )
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
107 "Association list for ISO accent combinations.")
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
108
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 (defun iso-accents-dead-key ()
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
110 "Modify the following character by adding an accent to it."
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111 (interactive)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
112
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
113 ;; Pick up the dead-key.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
114 (let ((first-char last-command-char))
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
115
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116 ;; Display it and backup.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
117 (insert first-char)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 (backward-char 1)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120 ;; Wait for the second key and look up the combination in the list.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
121 (let* ((second-char (read-event))
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
122 (entry (assoc (list first-char second-char) iso-accents-list)))
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123 (if entry
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
124 ;; Found it: delete the first character and insert the combination.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 (progn
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126 (delete-char 1)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127 (insert (car (cdr entry))))
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
128
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
129 ;; Otherwise, advance and schedule the second key for execution.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130 (forward-char 1)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 (setq unread-command-events (list second-char))
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 ;; If it is not a self-insert-command, ring the terminal bell.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 (or (eq (key-binding (make-vector 1 second-char)) 'self-insert-command)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 (beep 1))))))
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137 (defvar iso-accents-minor-mode nil
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
138 "*Non-nil enables ISO-accents mode.
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
139 See `iso-accents-mode'."
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141 (defvar iso-accents-prefix-map nil
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
142 "Keymap for ISO-accents minor mode.")
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
143
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
144 ;; 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
145 ;; in the mode line...
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
146 ;; If so, uncomment the next three lines.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
147 ;; (or (assq 'iso-accents-minor-mode minor-mode-map-alist)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
148 ;; (setq minor-mode-alist
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
149 ;; (append minor-mode-alist
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
150 ;; '((iso-accents-minor-mode " ISO-Acc")))))
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
151
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
152 ;;;###autoload
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
153 (defun iso-accents-mode (&optional arg)
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
154 "Toggle a minor mode in which accent modify the following letter.
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
155 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
156 When Iso-accents mode is enabled, accent character keys
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
157 \(', \", ^ and ~) do not self-insert; instead, they modify the following
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
158 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
159
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
160 With an argument, a positive argument enables ISO-accents mode,
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
161 and a negative argument disables it."
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
162 ;; When called, a buffer local variable iso-accents-minor-mode is created
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
163 ;; to record iso-accents-minor-mode status.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
164 ;; A minor mode map `iso-accents-prefix-map' is used to activate the dead
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 ;; key handling dependend on the value of iso-accents-minor-mode.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
166
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167 (interactive "P")
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
168
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
169 ;; Create buffer local variable iso-accents-minor-mode.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
170 (make-local-variable 'iso-accents-minor-mode)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
171
4721
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
172 (if (if arg
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
173 ;; Negative arg means switch it off.
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
174 (<= (prefix-numeric-value arg) 0)
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
175 ;; No arg means toggle.
d34c02ddea9f Fix lots of doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 4720
diff changeset
176 iso-accents-minor-mode)
4720
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
177 (setq iso-accents-minor-mode nil)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
178
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
179 ;; Enable electric accents.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 (setq iso-accents-minor-mode t)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
181
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
182 ;; Create the minor-mode keymap, if needed.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
183 (or iso-accents-prefix-map
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
184 (progn
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
185 (setq iso-accents-prefix-map (make-sparse-keymap))
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
186 (define-key iso-accents-prefix-map "'" 'iso-accents-dead-key)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
187 (define-key iso-accents-prefix-map "`" 'iso-accents-dead-key)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
188 (define-key iso-accents-prefix-map "^" 'iso-accents-dead-key)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
189 (define-key iso-accents-prefix-map "\"" 'iso-accents-dead-key)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
190
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
191 ;; Add the dead key minor mode map to the minor mode maps.
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
192 (or (assq 'iso-accents-minor-mode minor-mode-map-alist)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
193 (setq minor-mode-map-alist
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
194 (cons (cons 'iso-accents-minor-mode iso-accents-prefix-map)
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
195 minor-mode-map-alist)))))))
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
196
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197 ;;; iso-acc.el ends here
797fe2b66800 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198