Initial Commit
[packages] / xemacs-packages / text-modes / iso-insert.el
1 ;;; iso-insert.el --- insert functions for ISO 8859/1.
2
3 ;; Copyright (C) 1987, 1994 Free Software Foundation, Inc.
4
5 ;; Author: Howard Gayle
6 ;; Maintainer: FSF
7 ;; Keywords: i18n
8
9 ;; This file is part of XEmacs.
10
11 ;; XEmacs is free software; you can redistribute it and/or modify
12 ;; it under the terms of the GNU General Public License as published by
13 ;; the Free Software Foundation; either version 2, or (at your option)
14 ;; any later version.
15
16 ;; XEmacs is distributed in the hope that it will be useful,
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 ;; GNU General Public License for more details.
20
21 ;; You should have received a copy of the GNU General Public License
22 ;; along with XEmacs; see the file COPYING.  If not, write to the
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 ;; Boston, MA 02111-1307, USA.
25
26 ;;; Synched up with: FSF 19.34.
27
28 ;;; Commentary:
29
30 ;; Written by Howard Gayle.  See case-table.el for details.
31
32 ;;; #### I think there may be some functionality overlap between this file
33 ;;; and x-compose.el.  Should think about integrating.
34
35 ;;; Code:
36
37 (defun insert-no-break-space ()
38    (interactive "*")
39    (insert 160)
40 )
41
42 (defun insert-inverted-exclamation-mark ()
43    (interactive "*")
44    (insert 161)
45 )
46
47 (defun insert-cent-sign ()
48    (interactive "*")
49    (insert 162)
50 )
51
52 (defun insert-pound-sign ()
53    (interactive "*")
54    (insert 163)
55 )
56
57 (defun insert-general-currency-sign ()
58    (interactive "*")
59    (insert 164)
60 )
61
62 (defun insert-yen-sign ()
63    (interactive "*")
64    (insert 165)
65 )
66
67 (defun insert-broken-vertical-line ()
68    (interactive "*")
69    (insert 166)
70 )
71
72 (defun insert-section-sign ()
73    (interactive "*")
74    (insert 167)
75 )
76
77 (defun insert-diaeresis ()
78    (interactive "*")
79    (insert 168)
80 )
81
82 (defun insert-copyright-sign ()
83    (interactive "*")
84    (insert 169)
85 )
86
87 (defun insert-ordinal-indicator-feminine ()
88    (interactive "*")
89    (insert 170)
90 )
91
92 (defun insert-angle-quotation-mark-left ()
93    (interactive "*")
94    (insert 171)
95 )
96
97 (defun insert-not-sign ()
98    (interactive "*")
99    (insert 172)
100 )
101
102 (defun insert-soft-hyphen ()
103    (interactive "*")
104    (insert 173)
105 )
106
107 (defun insert-registered-sign ()
108    (interactive "*")
109    (insert 174)
110 )
111
112 (defun insert-macron ()
113    (interactive "*")
114    (insert 175)
115 )
116
117 (defun insert-degree-sign ()
118    (interactive "*")
119    (insert 176)
120 )
121
122 (defun insert-plus-or-minus-sign ()
123    (interactive "*")
124    (insert 177)
125 )
126
127 (defun insert-superscript-two ()
128    (interactive "*")
129    (insert 178)
130 )
131
132 (defun insert-superscript-three ()
133    (interactive "*")
134    (insert 179)
135 )
136
137 (defun insert-acute-accent ()
138    (interactive "*")
139    (insert 180)
140 )
141
142 (defun insert-micro-sign ()
143    (interactive "*")
144    (insert 181)
145 )
146
147 (defun insert-pilcrow ()
148    (interactive "*")
149    (insert 182)
150 )
151
152 (defun insert-middle-dot ()
153    (interactive "*")
154    (insert 183)
155 )
156
157 (defun insert-cedilla ()
158    (interactive "*")
159    (insert 184)
160 )
161
162 (defun insert-superscript-one ()
163    (interactive "*")
164    (insert 185)
165 )
166
167 (defun insert-ordinal-indicator-masculine ()
168    (interactive "*")
169    (insert 186)
170 )
171
172 (defun insert-angle-quotation-mark-right ()
173    (interactive "*")
174    (insert 187)
175 )
176
177 (defun insert-fraction-one-quarter ()
178    (interactive "*")
179    (insert 188)
180 )
181
182 (defun insert-fraction-one-half ()
183    (interactive "*")
184    (insert 189)
185 )
186
187 (defun insert-fraction-three-quarters ()
188    (interactive "*")
189    (insert 190)
190 )
191
192 (defun insert-inverted-question-mark ()
193    (interactive "*")
194    (insert 191)
195 )
196
197 (defun insert-A-grave ()
198    (interactive "*")
199    (insert 192)
200 )
201
202 (defun insert-A-acute ()
203    (interactive "*")
204    (insert 193)
205 )
206
207 (defun insert-A-circumflex ()
208    (interactive "*")
209    (insert 194)
210 )
211
212 (defun insert-A-tilde ()
213    (interactive "*")
214    (insert 195)
215 )
216
217 (defun insert-A-umlaut ()
218    (interactive "*")
219    (insert 196)
220 )
221
222 (defun insert-A-ring ()
223    (interactive "*")
224    (insert 197)
225 )
226
227 (defun insert-AE ()
228    (interactive "*")
229    (insert 198)
230 )
231
232 (defun insert-C-cedilla ()
233    (interactive "*")
234    (insert 199)
235 )
236
237 (defun insert-E-grave ()
238    (interactive "*")
239    (insert 200)
240 )
241
242 (defun insert-E-acute ()
243    (interactive "*")
244    (insert 201)
245 )
246
247 (defun insert-E-circumflex ()
248    (interactive "*")
249    (insert 202)
250 )
251
252 (defun insert-E-umlaut ()
253    (interactive "*")
254    (insert 203)
255 )
256
257 (defun insert-I-grave ()
258    (interactive "*")
259    (insert 204)
260 )
261
262 (defun insert-I-acute ()
263    (interactive "*")
264    (insert 205)
265 )
266
267 (defun insert-I-circumflex ()
268    (interactive "*")
269    (insert 206)
270 )
271
272 (defun insert-I-umlaut ()
273    (interactive "*")
274    (insert 207)
275 )
276
277 (defun insert-D-stroke ()
278    (interactive "*")
279    (insert 208)
280 )
281
282 (defun insert-N-tilde ()
283    (interactive "*")
284    (insert 209)
285 )
286
287 (defun insert-O-grave ()
288    (interactive "*")
289    (insert 210)
290 )
291
292 (defun insert-O-acute ()
293    (interactive "*")
294    (insert 211)
295 )
296
297 (defun insert-O-circumflex ()
298    (interactive "*")
299    (insert 212)
300 )
301
302 (defun insert-O-tilde ()
303    (interactive "*")
304    (insert 213)
305 )
306
307 (defun insert-O-umlaut ()
308    (interactive "*")
309    (insert 214)
310 )
311
312 (defun insert-multiplication-sign ()
313    (interactive "*")
314    (insert 215)
315 )
316
317 (defun insert-O-slash ()
318    (interactive "*")
319    (insert 216)
320 )
321
322 (defun insert-U-grave ()
323    (interactive "*")
324    (insert 217)
325 )
326
327 (defun insert-U-acute ()
328    (interactive "*")
329    (insert 218)
330 )
331
332 (defun insert-U-circumflex ()
333    (interactive "*")
334    (insert 219)
335 )
336
337 (defun insert-U-umlaut ()
338    (interactive "*")
339    (insert 220)
340 )
341
342 (defun insert-Y-acute ()
343    (interactive "*")
344    (insert 221)
345 )
346
347 (defun insert-THORN ()
348    (interactive "*")
349    (insert 222)
350 )
351
352 (defun insert-ss ()
353    (interactive "*")
354    (insert 223)
355 )
356
357 (defun insert-a-grave ()
358    (interactive "*")
359    (insert 224)
360 )
361
362 (defun insert-a-acute ()
363    (interactive "*")
364    (insert 225)
365 )
366
367 (defun insert-a-circumflex ()
368    (interactive "*")
369    (insert 226)
370 )
371
372 (defun insert-a-tilde ()
373    (interactive "*")
374    (insert 227)
375 )
376
377 (defun insert-a-umlaut ()
378    (interactive "*")
379    (insert 228)
380 )
381
382 (defun insert-a-ring ()
383    (interactive "*")
384    (insert 229)
385 )
386
387 (defun insert-ae ()
388    (interactive "*")
389    (insert 230)
390 )
391
392 (defun insert-c-cedilla ()
393    (interactive "*")
394    (insert 231)
395 )
396
397 (defun insert-e-grave ()
398    (interactive "*")
399    (insert 232)
400 )
401
402 (defun insert-e-acute ()
403    (interactive "*")
404    (insert 233)
405 )
406
407 (defun insert-e-circumflex ()
408    (interactive "*")
409    (insert 234)
410 )
411
412 (defun insert-e-umlaut ()
413    (interactive "*")
414    (insert 235)
415 )
416
417 (defun insert-i-grave ()
418    (interactive "*")
419    (insert 236)
420 )
421
422 (defun insert-i-acute ()
423    (interactive "*")
424    (insert 237)
425 )
426
427 (defun insert-i-circumflex ()
428    (interactive "*")
429    (insert 238)
430 )
431
432 (defun insert-i-umlaut ()
433    (interactive "*")
434    (insert 239)
435 )
436
437 (defun insert-d-stroke ()
438    (interactive "*")
439    (insert 240)
440 )
441
442 (defun insert-n-tilde ()
443    (interactive "*")
444    (insert 241)
445 )
446
447 (defun insert-o-grave ()
448    (interactive "*")
449    (insert 242)
450 )
451
452 (defun insert-o-acute ()
453    (interactive "*")
454    (insert 243)
455 )
456
457 (defun insert-o-circumflex ()
458    (interactive "*")
459    (insert 244)
460 )
461
462 (defun insert-o-tilde ()
463    (interactive "*")
464    (insert 245)
465 )
466
467 (defun insert-o-umlaut ()
468    (interactive "*")
469    (insert 246)
470 )
471
472 (defun insert-division-sign ()
473    (interactive "*")
474    (insert 247)
475 )
476
477 (defun insert-o-slash ()
478    (interactive "*")
479    (insert 248)
480 )
481
482 (defun insert-u-grave ()
483    (interactive "*")
484    (insert 249)
485 )
486
487 (defun insert-u-acute ()
488    (interactive "*")
489    (insert 250)
490 )
491
492 (defun insert-u-circumflex ()
493    (interactive "*")
494    (insert 251)
495 )
496
497 (defun insert-u-umlaut ()
498    (interactive "*")
499    (insert 252)
500 )
501
502 (defun insert-y-acute ()
503    (interactive "*")
504    (insert 253)
505 )
506
507 (defun insert-thorn ()
508    (interactive "*")
509    (insert 254)
510 )
511
512 (defun insert-y-umlaut ()
513    (interactive "*")
514    (insert 255)
515 )
516
517 (defvar 8859-1-map nil "Keymap for ISO 8859/1 character insertion.")
518 (if 8859-1-map nil
519    (setq 8859-1-map (make-keymap))
520    (define-key 8859-1-map " "    'insert-no-break-space)
521    (define-key 8859-1-map "!"    'insert-inverted-exclamation-mark)
522    (define-key 8859-1-map "\""   (make-sparse-keymap))
523    (define-key 8859-1-map "\"\"" 'insert-diaeresis)
524    (define-key 8859-1-map "\"A"  'insert-A-umlaut)
525    (define-key 8859-1-map "\"E"  'insert-E-umlaut)
526    (define-key 8859-1-map "\"I"  'insert-I-umlaut)
527    (define-key 8859-1-map "\"O"  'insert-O-umlaut)
528    (define-key 8859-1-map "\"U"  'insert-U-umlaut)
529    (define-key 8859-1-map "\"a"  'insert-a-umlaut)
530    (define-key 8859-1-map "\"e"  'insert-e-umlaut)
531    (define-key 8859-1-map "\"i"  'insert-i-umlaut)
532    (define-key 8859-1-map "\"o"  'insert-o-umlaut)
533    (define-key 8859-1-map "\"u"  'insert-u-umlaut)
534    (define-key 8859-1-map "\"y"  'insert-y-umlaut)
535    (define-key 8859-1-map "'"    (make-sparse-keymap))
536    (define-key 8859-1-map "''"   'insert-acute-accent)
537    (define-key 8859-1-map "'A"   'insert-A-acute)
538    (define-key 8859-1-map "'E"   'insert-E-acute)
539    (define-key 8859-1-map "'I"   'insert-I-acute)
540    (define-key 8859-1-map "'O"   'insert-O-acute)
541    (define-key 8859-1-map "'U"   'insert-U-acute)
542    (define-key 8859-1-map "'Y"   'insert-Y-acute)
543    (define-key 8859-1-map "'a"   'insert-a-acute)
544    (define-key 8859-1-map "'e"   'insert-e-acute)
545    (define-key 8859-1-map "'i"   'insert-i-acute)
546    (define-key 8859-1-map "'o"   'insert-o-acute)
547    (define-key 8859-1-map "'u"   'insert-u-acute)
548    (define-key 8859-1-map "'y"   'insert-y-acute)
549    (define-key 8859-1-map "$"    'insert-general-currency-sign)
550    (define-key 8859-1-map "+"    'insert-plus-or-minus-sign)
551    (define-key 8859-1-map ","    (make-sparse-keymap))
552    (define-key 8859-1-map ",,"   'insert-cedilla)
553    (define-key 8859-1-map ",C"   'insert-C-cedilla)
554    (define-key 8859-1-map ",c"   'insert-c-cedilla)
555    (define-key 8859-1-map "-"    'insert-soft-hyphen)
556    (define-key 8859-1-map "."    'insert-middle-dot)
557    (define-key 8859-1-map "/"    (make-sparse-keymap))
558    (define-key 8859-1-map "//"   'insert-division-sign)
559    (define-key 8859-1-map "/O"   'insert-O-slash)
560    (define-key 8859-1-map "/o"   'insert-o-slash)
561    (define-key 8859-1-map "1"    (make-sparse-keymap))
562    (define-key 8859-1-map "1/"   (make-sparse-keymap))
563    (define-key 8859-1-map "1/2"  'insert-fraction-one-half)
564    (define-key 8859-1-map "1/4"  'insert-fraction-one-quarter)
565    (define-key 8859-1-map "3"    (make-sparse-keymap))
566    (define-key 8859-1-map "3/"   (make-sparse-keymap))
567    (define-key 8859-1-map "3/4"  'insert-fraction-three-quarters)
568    (define-key 8859-1-map "<"    'insert-angle-quotation-mark-left)
569    (define-key 8859-1-map "="    'insert-macron)
570    (define-key 8859-1-map ">"    'insert-angle-quotation-mark-right)
571    (define-key 8859-1-map "?"    'insert-inverted-question-mark)
572    (define-key 8859-1-map "A"    'insert-A-ring)
573    (define-key 8859-1-map "E"    'insert-AE)
574    (define-key 8859-1-map "C"    'insert-copyright-sign)
575    (define-key 8859-1-map "D"    'insert-D-stroke)
576    (define-key 8859-1-map "L"    'insert-pound-sign)
577    (define-key 8859-1-map "P"    'insert-pilcrow)
578    (define-key 8859-1-map "R"    'insert-registered-sign)
579    (define-key 8859-1-map "S"    'insert-section-sign)
580    (define-key 8859-1-map "T"    'insert-THORN)
581    (define-key 8859-1-map "Y"    'insert-yen-sign)
582    (define-key 8859-1-map "^"    (make-sparse-keymap))
583    (define-key 8859-1-map "^1"   'insert-superscript-one)
584    (define-key 8859-1-map "^2"   'insert-superscript-two)
585    (define-key 8859-1-map "^3"   'insert-superscript-three)
586    (define-key 8859-1-map "^A"   'insert-A-circumflex)
587    (define-key 8859-1-map "^E"   'insert-E-circumflex)
588    (define-key 8859-1-map "^I"   'insert-I-circumflex)
589    (define-key 8859-1-map "^O"   'insert-O-circumflex)
590    (define-key 8859-1-map "^U"   'insert-U-circumflex)
591    (define-key 8859-1-map "^a"   'insert-a-circumflex)
592    (define-key 8859-1-map "^e"   'insert-e-circumflex)
593    (define-key 8859-1-map "^i"   'insert-i-circumflex)
594    (define-key 8859-1-map "^o"   'insert-o-circumflex)
595    (define-key 8859-1-map "^u"   'insert-u-circumflex)
596    (define-key 8859-1-map "_"    (make-sparse-keymap))
597    (define-key 8859-1-map "_a"   'insert-ordinal-indicator-feminine)
598    (define-key 8859-1-map "_o"   'insert-ordinal-indicator-masculine)
599    (define-key 8859-1-map "`"    (make-sparse-keymap))
600    (define-key 8859-1-map "`A"   'insert-A-grave)
601    (define-key 8859-1-map "`E"   'insert-E-grave)
602    (define-key 8859-1-map "`I"   'insert-I-grave)
603    (define-key 8859-1-map "`O"   'insert-O-grave)
604    (define-key 8859-1-map "`U"   'insert-U-grave)
605    (define-key 8859-1-map "`a"   'insert-a-grave)
606    (define-key 8859-1-map "`e"   'insert-e-grave)
607    (define-key 8859-1-map "`i"   'insert-i-grave)
608    (define-key 8859-1-map "`o"   'insert-o-grave)
609    (define-key 8859-1-map "`u"   'insert-u-grave)
610    (define-key 8859-1-map "a"    'insert-a-ring)
611    (define-key 8859-1-map "e"    'insert-ae)
612    (define-key 8859-1-map "c"    'insert-cent-sign)
613    (define-key 8859-1-map "d"    'insert-d-stroke)
614    (define-key 8859-1-map "o"    'insert-degree-sign)
615    (define-key 8859-1-map "s"    'insert-ss)
616    (define-key 8859-1-map "t"    'insert-thorn)
617    (define-key 8859-1-map "u"    'insert-micro-sign)
618    (define-key 8859-1-map "x"    'insert-multiplication-sign)
619    (define-key 8859-1-map "|"    'insert-broken-vertical-line)
620    (define-key 8859-1-map "~"    (make-sparse-keymap))
621    (define-key 8859-1-map "~A"   'insert-A-tilde)
622    (define-key 8859-1-map "~N"   'insert-N-tilde)
623    (define-key 8859-1-map "~O"   'insert-O-tilde)
624    (define-key 8859-1-map "~a"   'insert-a-tilde)
625    (define-key 8859-1-map "~n"   'insert-n-tilde)
626    (define-key 8859-1-map "~o"   'insert-o-tilde)
627    (define-key 8859-1-map "~~"   'insert-not-sign)
628    (if (not (lookup-key global-map "\C-x8"))
629       (define-key global-map "\C-x8" 8859-1-map))
630 )
631
632 (provide 'iso-insert)
633
634 ;;; iso-insert.el ends here