Article View: gnu.emacs.help
Article #2045ISO input (Was: Re: 8-Bit Clean Mode for Gnu Emacs)
From: Johan Vromans
Date: Sun, 15 Sep 1991 09:39
Date: Sun, 15 Sep 1991 09:39
640 lines
30388 bytes
30388 bytes
In article <MATTHIEU.91Sep14183642@corto.laas.fr> matthieu@laas.fr (Matthieu Herrb) writes:
> You also need a way to input 8 bits char. I have written a minor mode,
> called iso-latin-1 that use the following convention for inputting
> accented letters: type the letter, followed by its accent. This mode
> is also available from laas.laas.fr in pub/emacs/is-latin-1.el.
I can offer another ISO-latin1 minor mode with the following
characteristics:
- Characters insert themselves (as usual).
- A compose sequence is introduced with M-Space, and can be followed
by any combination of characters that logically lead to a composed
character. E.g. M-Space e' leads to the same result as M-Space 'e .
M-Space =Y produces a 'Yen' symbol, M-Space << a 'Guillemotleft' etc.
The characters are composed according to the DEC VT320 guide.
- A variable 'electric-accents' makes it possible to produce
accented characters using typewriter 'dead' keys, e.g. 'e produces
an accented-e.
- ISO minor mode assumes you have the patch installed that was
mentioned in the original article: it sets ctl-arrow to obtain
display of ISO extended characters. However, a variable
ISO-capable controls whether the terminal if physically able to
display the glyphs. This variable can be set by the term/$TERM.el
files.
---- Cut Here and feed the following to sh ----
#!/bin/sh
# This is a shell archive (produced by shar 3.49)
# To extract the files from this archive, save it to a file, remove
# everything above the "!/bin/sh" line above, and type "sh file_name".
#
# made 09/15/1991 09:36 UTC by jv@pronto
# Source directory /u1/users/jv
#
# existing files will NOT be overwritten unless -c is specified
#
# This shar contains:
# length mode name
# ------ ---------- ------------------------------------------
# 21959 -r--r--r-- iso.el
# 3580 -rw-r--r-- el-accents.el
#
# ============= iso.el ==============
if test -f 'iso.el' -a X"$1" != X"-c"; then
echo 'x - skipping iso.el (File already exists)'
else
echo 'x - extracting iso.el (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'iso.el' &&
X;; iso.el -- implement ISO extension chracters
X;; SCCS Status : @(#)@ iso.el 1.5
X;; Author : Johan Vromans
X;; Created On : Mon Nov 26 15:52:42 1990
X;; Last Modified By: Johan Vromans
X;; Last Modified On: Wed Sep 11 15:31:34 1991
X;; Update Count : 25
X;; Status : OK
X
X;; This module defines the following functions
X;;
X;; (ISO-build-ext-map) creates and fills ISO-key-map
X;; (ISO-text-mode off) to switch ISO text mode
X;;
X;; Calling ISO-text-mode usially suffices, since this creates the keymap (once)
X;; and sets the mode accordingly.
X;;
X;; >>> The keymap is now created upon loading. This is faster <<<
X
X(require 'backquote)
X(load "el-accents" t t nil)
X
X(defvar ISO-text-mode nil)
X(defvar ISO-capable nil
X "*T means this terminal can display ISO characters.") ; will be set by scame-keydefs
X
X(defun ISO-text-mode (&optional off)
X "Enables (with ARG: disables) ISO text mode for the current buffer."
X (interactive "P")
X (make-local-variable 'ISO-text-mode)
X (if off
X (progn
X (setq ISO-text-mode nil)
X (setq ctl-arrow nil)
X (local-set-key "\e " nil))
X (if ISO-capable
X (progn
X (setq ctl-arrow 1)
X (setq ISO-text-mode t)))
X (or (boundp 'ISO-ext-map)
X (ISO--build-ext-map))
X (local-set-key "\e " ISO-ext-map)
X))
X
X;(defun ISO--build-ext-map ()
X; "Builds the ISO extension keymap."
X; (message "Building ISO-extension keymap... ")
X; (setq ISO-ext-map (make-keymap))
X; (mapcar
X; '(lambda (x)
X; (define-key ISO-ext-map (car x)
X; (`(lambda (n) (interactive "p") (insert-char (,(cdr x)) n)))))
X; '(
X; ;; The following info is dereived from the DEC VT320 User Guide
X; (" " . ? )
X; ("!!" . ?\241)
X; ("!P" . ?\266)
X; ("''" . ?\264)
X; ("'A" . ?\301)
X; ("'E" . ?\311)
X; ("'I" . ?\315)
X; ("'O" . ?\323)
X; ("'U" . ?\332)
X; ("'a" . ?\341)
X; ("'e" . ?\351)
X; ("'i" . ?\355)
X; ("'o" . ?\363)
X; ("'u" . ?\372)
X; ("'y" . ?\375)
X; ("((" . ?[)
X; ("(-" . ?{)
X; ("))" . ?])
X; ("*A" . ?\305)
X; ("*a" . ?\345)
X; ("++" . ?#)
X; ("+-" . ?\261)
X; (",C" . ?\307)
X; (",c" . ?\347)
X; ("-(" . ?{)
X; ("-+" . ?\261)
X; ("-," . ?\254)
X; ("--" . ?\255)
X; ("-:" . ?\367)
X; ("-L" . ?\243)
X; ("-Y" . ?\245)
X; (".^" . ?\267)
X; ("//" . ?\\)
X; ("/<" . ?\\)
X; ("/C" . ?\242)
X; ("/O" . ?\330)
X; ("/U" . ?\265)
X; ("/^" . ?|)
X; ("/o" . ?\370)
X; ("0A" . ?\305)
X; ("0X" . ?\244)
X; ("0X" . ?\244)
X; ("0^" . ?\260)
X; ("0a" . ?\345)
X; ("12" . ?\275)
X; ("14" . ?\274)
X; ("1^" . ?\271)
X; ("2^" . ?\262)
X; ("34" . ?\276)
X; ("3^" . ?\263)
X; (":-" . ?\367)
X; ("<<" . ?\253)
X; ("=L" . ?\243)
X; ("=Y" . ?\245)
X; (">>" . ?\273)
X; ("??" . ?\277)
X; ("A'" . ?\301)
X; ("A*" . ?\305)
X; ("A0" . ?\305)
X; ("AA" . ?@)
X; ("AE" . ?\306)
X; ("A\"" . ?\304)
X; ("A^" . ?\302)
X; ("A_" . ?\252)
X; ("A`" . ?\300)
X; ("A~" . ?\303)
X; ("C," . ?\307)
X; ("C/" . ?\242)
X; ("CO" . ?\251)
X; ("C|" . ?\242)
X; ("E'" . ?\311)
X; ("E\"" . ?\313)
X; ("E^" . ?\312)
X; ("E`" . ?\310)
X; ("I'" . ?\315)
X; ("I\"" . ?\317)
X; ("I^" . ?\316)
X; ("I`" . ?\314)
X; ("L-" . ?\243)
X; ("L=" . ?\243)
X; ("N~" . ?\321)
X; ("O'" . ?\323)
X; ("O/" . ?\330)
X; ("OC" . ?\251)
X; ("OR" . ?\256)
X; ("O\"" . ?\326)
X; ("O^" . ?\324)
X; ("O_" . ?\272)
X; ("O`" . ?\322)
X; ("O~" . ?\325)
X; ("P!" . ?\266)
X; ("RO" . ?\256)
X; ("S!" . ?\247)
X; ("S0" . ?\247)
X; ("SO" . ?\247)
X; ("U'" . ?\332)
X; ("U/" . ?\265)
X; ("U\"" . ?\334)
X; ("U^" . ?\333)
X; ("U`" . ?\331)
X; ("X0" . ?\244)
X; ("XO" . ?\244)
X; ("Y-" . ?\245)
X; ("Y=" . ?\245)
X; ("\"A" . ?\304)
X; ("\"E" . ?\313)
X; ("\"I" . ?\317)
X; ("\"O" . ?\326)
X; ("\"U" . ?\334)
X; ("\"\"" . ?\250)
X; ("\"a" . ?\344)
X; ("\"e" . ?\353)
X; ("\"i" . ?\357)
X; ("\"o" . ?\366)
X; ("\"u" . ?\374)
X; ("\"y" . ?\377)
X; ("^." . ?\267)
X; ("^/" . ?|)
X; ("^0" . ?\260)
X; ("^1" . ?\271)
X; ("^2" . ?\262)
X; ("^3" . ?\263)
X; ("^A" . ?\302)
X; ("^E" . ?\312)
X; ("^I" . ?\316)
X; ("^O" . ?\324)
X; ("^U" . ?\333)
X; ("^_" . ?\257)
X; ("^a" . ?\342)
X; ("^e" . ?\352)
X; ("^i" . ?\356)
X; ("^o" . ?\364)
X; ("^u" . ?\373)
X; ("_A" . ?\252)
X; ("_O" . ?\272)
X; ("_^" . ?\257)
X; ("`A" . ?\300)
X; ("`E" . ?\310)
X; ("`I" . ?\314)
X; ("`O" . ?\322)
X; ("`U" . ?\331)
X; ("`a" . ?\340)
X; ("`e" . ?\350)
X; ("`i" . ?\354)
X; ("`o" . ?\362)
X; ("`u" . ?\371)
X; ("`y" . ?\335)
X; ("a'" . ?\341)
X; ("a*" . ?\345)
X; ("a0" . ?\345)
X; ("a\"" . ?\344)
X; ("a^" . ?\342)
X; ("a`" . ?\340)
X; ("ae" . ?\346)
X; ("a~" . ?\343)
X; ("c," . ?\347)
X; ("e'" . ?\351)
X; ("e\"" . ?\353)
X; ("e^" . ?\352)
X; ("e`" . ?\350)
X; ("i'" . ?\355)
X; ("i\"" . ?\357)
X; ("i^" . ?\356)
X; ("i`" . ?\354)
X; ("n~" . ?\361)
X; ("o'" . ?\363)
X; ("o/" . ?\330)
X; ("o/" . ?\370)
X; ("o\"" . ?\366)
X; ("o^" . ?\364)
X; ("o`" . ?\362)
X; ("ox" . ?\244)
X; ("o~" . ?\365)
X; ("ss" . ?\337)
X; ("u'" . ?\372)
X; ("u\"" . ?\374)
X; ("u^" . ?\373)
X; ("u`" . ?\371)
X; ("xo" . ?\244)
X; ("y'" . ?\375)
X; ("y\"" . ?\377)
X; ("y`" . ?\335)
X; ("|C" . ?\242)
X; ("|c" . ?\242)
X; ("||" . ?\246)
X; ("~A" . ?\303)
X; ("~N" . ?\321)
X; ("~O" . ?\325)
X; ("~a" . ?\343)
X; ("~n" . ?\361)
X; ("~o" . ?\365)
X;; ("^ " . ?\...)
X;; ("` " . ?\...)
X; ))
X; (setq minor-mode-alist (append minor-mode-alist '((ISO-text-mode " ISO" ))))
X; (message "Building ISO-extension keymap... done.")
X;)
X
X;; The following is the result from executing the above mapcar...
X(setq ISO-ext-map (make-keymap))
X(setq minor-mode-alist (append minor-mode-alist '((ISO-text-mode " ISO" ))))
X(define-key ISO-ext-map " " '(lambda (n) (interactive "p") (insert-char 32 n)))
X(define-key ISO-ext-map "!!" '(lambda (n) (interactive "p") (insert-char 161 n)))
X(define-key ISO-ext-map "!P" '(lambda (n) (interactive "p") (insert-char 182 n)))
X(define-key ISO-ext-map "''" '(lambda (n) (interactive "p") (insert-char 180 n)))
X(define-key ISO-ext-map "'A" '(lambda (n) (interactive "p") (insert-char 193 n)))
X(define-key ISO-ext-map "'E" '(lambda (n) (interactive "p") (insert-char 201 n)))
X(define-key ISO-ext-map "'I" '(lambda (n) (interactive "p") (insert-char 205 n)))
X(define-key ISO-ext-map "'O" '(lambda (n) (interactive "p") (insert-char 211 n)))
X(define-key ISO-ext-map "'U" '(lambda (n) (interactive "p") (insert-char 218 n)))
X(define-key ISO-ext-map "'a" '(lambda (n) (interactive "p") (insert-char 225 n)))
X(define-key ISO-ext-map "'e" '(lambda (n) (interactive "p") (insert-char 233 n)))
X(define-key ISO-ext-map "'i" '(lambda (n) (interactive "p") (insert-char 237 n)))
X(define-key ISO-ext-map "'o" '(lambda (n) (interactive "p") (insert-char 243 n)))
X(define-key ISO-ext-map "'u" '(lambda (n) (interactive "p") (insert-char 250 n)))
X(define-key ISO-ext-map "'y" '(lambda (n) (interactive "p") (insert-char 253 n)))
X(define-key ISO-ext-map "((" '(lambda (n) (interactive "p") (insert-char 91 n)))
X(define-key ISO-ext-map "(-" '(lambda (n) (interactive "p") (insert-char 123 n)))
X(define-key ISO-ext-map "))" '(lambda (n) (interactive "p") (insert-char 93 n)))
X(define-key ISO-ext-map "*A" '(lambda (n) (interactive "p") (insert-char 197 n)))
X(define-key ISO-ext-map "*a" '(lambda (n) (interactive "p") (insert-char 229 n)))
X(define-key ISO-ext-map "++" '(lambda (n) (interactive "p") (insert-char 35 n)))
X(define-key ISO-ext-map "+-" '(lambda (n) (interactive "p") (insert-char 177 n)))
X(define-key ISO-ext-map ",C" '(lambda (n) (interactive "p") (insert-char 199 n)))
X(define-key ISO-ext-map ",c" '(lambda (n) (interactive "p") (insert-char 231 n)))
X(define-key ISO-ext-map "-(" '(lambda (n) (interactive "p") (insert-char 123 n)))
X(define-key ISO-ext-map "-+" '(lambda (n) (interactive "p") (insert-char 177 n)))
X(define-key ISO-ext-map "-," '(lambda (n) (interactive "p") (insert-char 172 n)))
X(define-key ISO-ext-map "--" '(lambda (n) (interactive "p") (insert-char 173 n)))
X(define-key ISO-ext-map "-:" '(lambda (n) (interactive "p") (insert-char 247 n)))
X(define-key ISO-ext-map "-L" '(lambda (n) (interactive "p") (insert-char 163 n)))
X(define-key ISO-ext-map "-Y" '(lambda (n) (interactive "p") (insert-char 165 n)))
X(define-key ISO-ext-map ".^" '(lambda (n) (interactive "p") (insert-char 183 n)))
X(define-key ISO-ext-map "//" '(lambda (n) (interactive "p") (insert-char 92 n)))
X(define-key ISO-ext-map "/<" '(lambda (n) (interactive "p") (insert-char 92 n)))
X(define-key ISO-ext-map "/C" '(lambda (n) (interactive "p") (insert-char 162 n)))
X(define-key ISO-ext-map "/O" '(lambda (n) (interactive "p") (insert-char 216 n)))
X(define-key ISO-ext-map "/U" '(lambda (n) (interactive "p") (insert-char 181 n)))
X(define-key ISO-ext-map "/^" '(lambda (n) (interactive "p") (insert-char 124 n)))
X(define-key ISO-ext-map "/o" '(lambda (n) (interactive "p") (insert-char 248 n)))
X(define-key ISO-ext-map "0A" '(lambda (n) (interactive "p") (insert-char 197 n)))
X(define-key ISO-ext-map "0X" '(lambda (n) (interactive "p") (insert-char 164 n)))
X(define-key ISO-ext-map "0X" '(lambda (n) (interactive "p") (insert-char 164 n)))
X(define-key ISO-ext-map "0^" '(lambda (n) (interactive "p") (insert-char 176 n)))
X(define-key ISO-ext-map "0a" '(lambda (n) (interactive "p") (insert-char 229 n)))
X(define-key ISO-ext-map "12" '(lambda (n) (interactive "p") (insert-char 189 n)))
X(define-key ISO-ext-map "14" '(lambda (n) (interactive "p") (insert-char 188 n)))
X(define-key ISO-ext-map "1^" '(lambda (n) (interactive "p") (insert-char 185 n)))
X(define-key ISO-ext-map "2^" '(lambda (n) (interactive "p") (insert-char 178 n)))
X(define-key ISO-ext-map "34" '(lambda (n) (interactive "p") (insert-char 190 n)))
X(define-key ISO-ext-map "3^" '(lambda (n) (interactive "p") (insert-char 179 n)))
X(define-key ISO-ext-map ":-" '(lambda (n) (interactive "p") (insert-char 247 n)))
X(define-key ISO-ext-map "<<" '(lambda (n) (interactive "p") (insert-char 171 n)))
X(define-key ISO-ext-map "=L" '(lambda (n) (interactive "p") (insert-char 163 n)))
X(define-key ISO-ext-map "=Y" '(lambda (n) (interactive "p") (insert-char 165 n)))
X(define-key ISO-ext-map ">>" '(lambda (n) (interactive "p") (insert-char 187 n)))
X(define-key ISO-ext-map "??" '(lambda (n) (interactive "p") (insert-char 191 n)))
X(define-key ISO-ext-map "A'" '(lambda (n) (interactive "p") (insert-char 193 n)))
X(define-key ISO-ext-map "A*" '(lambda (n) (interactive "p") (insert-char 197 n)))
X(define-key ISO-ext-map "A0" '(lambda (n) (interactive "p") (insert-char 197 n)))
X(define-key ISO-ext-map "AA" '(lambda (n) (interactive "p") (insert-char 64 n)))
X(define-key ISO-ext-map "AE" '(lambda (n) (interactive "p") (insert-char 198 n)))
X(define-key ISO-ext-map "A\"" '(lambda (n) (interactive "p") (insert-char 196 n)))
X(define-key ISO-ext-map "A^" '(lambda (n) (interactive "p") (insert-char 194 n)))
X(define-key ISO-ext-map "A_" '(lambda (n) (interactive "p") (insert-char 170 n)))
X(define-key ISO-ext-map "A`" '(lambda (n) (interactive "p") (insert-char 192 n)))
X(define-key ISO-ext-map "A~" '(lambda (n) (interactive "p") (insert-char 195 n)))
X(define-key ISO-ext-map "C," '(lambda (n) (interactive "p") (insert-char 199 n)))
X(define-key ISO-ext-map "C/" '(lambda (n) (interactive "p") (insert-char 162 n)))
X(define-key ISO-ext-map "CO" '(lambda (n) (interactive "p") (insert-char 169 n)))
X(define-key ISO-ext-map "C|" '(lambda (n) (interactive "p") (insert-char 162 n)))
X(define-key ISO-ext-map "E'" '(lambda (n) (interactive "p") (insert-char 201 n)))
X(define-key ISO-ext-map "E\"" '(lambda (n) (interactive "p") (insert-char 203 n)))
X(define-key ISO-ext-map "E^" '(lambda (n) (interactive "p") (insert-char 202 n)))
X(define-key ISO-ext-map "E`" '(lambda (n) (interactive "p") (insert-char 200 n)))
X(define-key ISO-ext-map "I'" '(lambda (n) (interactive "p") (insert-char 205 n)))
X(define-key ISO-ext-map "I\"" '(lambda (n) (interactive "p") (insert-char 207 n)))
X(define-key ISO-ext-map "I^" '(lambda (n) (interactive "p") (insert-char 206 n)))
X(define-key ISO-ext-map "I`" '(lambda (n) (interactive "p") (insert-char 204 n)))
X(define-key ISO-ext-map "L-" '(lambda (n) (interactive "p") (insert-char 163 n)))
X(define-key ISO-ext-map "L=" '(lambda (n) (interactive "p") (insert-char 163 n)))
X(define-key ISO-ext-map "N~" '(lambda (n) (interactive "p") (insert-char 209 n)))
X(define-key ISO-ext-map "O'" '(lambda (n) (interactive "p") (insert-char 211 n)))
X(define-key ISO-ext-map "O/" '(lambda (n) (interactive "p") (insert-char 216 n)))
X(define-key ISO-ext-map "OC" '(lambda (n) (interactive "p") (insert-char 169 n)))
X(define-key ISO-ext-map "OR" '(lambda (n) (interactive "p") (insert-char 174 n)))
X(define-key ISO-ext-map "O\"" '(lambda (n) (interactive "p") (insert-char 214 n)))
X(define-key ISO-ext-map "O^" '(lambda (n) (interactive "p") (insert-char 212 n)))
X(define-key ISO-ext-map "O_" '(lambda (n) (interactive "p") (insert-char 186 n)))
X(define-key ISO-ext-map "O`" '(lambda (n) (interactive "p") (insert-char 210 n)))
X(define-key ISO-ext-map "O~" '(lambda (n) (interactive "p") (insert-char 213 n)))
X(define-key ISO-ext-map "P!" '(lambda (n) (interactive "p") (insert-char 182 n)))
X(define-key ISO-ext-map "RO" '(lambda (n) (interactive "p") (insert-char 174 n)))
X(define-key ISO-ext-map "S!" '(lambda (n) (interactive "p") (insert-char 167 n)))
X(define-key ISO-ext-map "S0" '(lambda (n) (interactive "p") (insert-char 167 n)))
X(define-key ISO-ext-map "SO" '(lambda (n) (interactive "p") (insert-char 167 n)))
X(define-key ISO-ext-map "U'" '(lambda (n) (interactive "p") (insert-char 218 n)))
X(define-key ISO-ext-map "U/" '(lambda (n) (interactive "p") (insert-char 181 n)))
X(define-key ISO-ext-map "U\"" '(lambda (n) (interactive "p") (insert-char 220 n)))
X(define-key ISO-ext-map "U^" '(lambda (n) (interactive "p") (insert-char 219 n)))
X(define-key ISO-ext-map "U`" '(lambda (n) (interactive "p") (insert-char 217 n)))
X(define-key ISO-ext-map "X0" '(lambda (n) (interactive "p") (insert-char 164 n)))
X(define-key ISO-ext-map "XO" '(lambda (n) (interactive "p") (insert-char 164 n)))
X(define-key ISO-ext-map "Y-" '(lambda (n) (interactive "p") (insert-char 165 n)))
X(define-key ISO-ext-map "Y=" '(lambda (n) (interactive "p") (insert-char 165 n)))
X(define-key ISO-ext-map "\"A" '(lambda (n) (interactive "p") (insert-char 196 n)))
X(define-key ISO-ext-map "\"E" '(lambda (n) (interactive "p") (insert-char 203 n)))
X(define-key ISO-ext-map "\"I" '(lambda (n) (interactive "p") (insert-char 207 n)))
X(define-key ISO-ext-map "\"O" '(lambda (n) (interactive "p") (insert-char 214 n)))
X(define-key ISO-ext-map "\"U" '(lambda (n) (interactive "p") (insert-char 220 n)))
X(define-key ISO-ext-map "\"\"" '(lambda (n) (interactive "p") (insert-char 168 n)))
X(define-key ISO-ext-map "\"a" '(lambda (n) (interactive "p") (insert-char 228 n)))
X(define-key ISO-ext-map "\"e" '(lambda (n) (interactive "p") (insert-char 235 n)))
X(define-key ISO-ext-map "\"i" '(lambda (n) (interactive "p") (insert-char 239 n)))
X(define-key ISO-ext-map "\"o" '(lambda (n) (interactive "p") (insert-char 246 n)))
X(define-key ISO-ext-map "\"u" '(lambda (n) (interactive "p") (insert-char 252 n)))
X(define-key ISO-ext-map "\"y" '(lambda (n) (interactive "p") (insert-char 255 n)))
X(define-key ISO-ext-map "^." '(lambda (n) (interactive "p") (insert-char 183 n)))
X(define-key ISO-ext-map "^/" '(lambda (n) (interactive "p") (insert-char 124 n)))
X(define-key ISO-ext-map "^0" '(lambda (n) (interactive "p") (insert-char 176 n)))
X(define-key ISO-ext-map "^1" '(lambda (n) (interactive "p") (insert-char 185 n)))
X(define-key ISO-ext-map "^2" '(lambda (n) (interactive "p") (insert-char 178 n)))
X(define-key ISO-ext-map "^3" '(lambda (n) (interactive "p") (insert-char 179 n)))
X(define-key ISO-ext-map "^A" '(lambda (n) (interactive "p") (insert-char 194 n)))
X(define-key ISO-ext-map "^E" '(lambda (n) (interactive "p") (insert-char 202 n)))
X(define-key ISO-ext-map "^I" '(lambda (n) (interactive "p") (insert-char 206 n)))
X(define-key ISO-ext-map "^O" '(lambda (n) (interactive "p") (insert-char 212 n)))
X(define-key ISO-ext-map "^U" '(lambda (n) (interactive "p") (insert-char 219 n)))
X(define-key ISO-ext-map "^_" '(lambda (n) (interactive "p") (insert-char 175 n)))
X(define-key ISO-ext-map "^a" '(lambda (n) (interactive "p") (insert-char 226 n)))
X(define-key ISO-ext-map "^e" '(lambda (n) (interactive "p") (insert-char 234 n)))
X(define-key ISO-ext-map "^i" '(lambda (n) (interactive "p") (insert-char 238 n)))
X(define-key ISO-ext-map "^o" '(lambda (n) (interactive "p") (insert-char 244 n)))
X(define-key ISO-ext-map "^u" '(lambda (n) (interactive "p") (insert-char 251 n)))
X(define-key ISO-ext-map "_A" '(lambda (n) (interactive "p") (insert-char 170 n)))
X(define-key ISO-ext-map "_O" '(lambda (n) (interactive "p") (insert-char 186 n)))
X(define-key ISO-ext-map "_^" '(lambda (n) (interactive "p") (insert-char 175 n)))
X(define-key ISO-ext-map "`A" '(lambda (n) (interactive "p") (insert-char 192 n)))
X(define-key ISO-ext-map "`E" '(lambda (n) (interactive "p") (insert-char 200 n)))
X(define-key ISO-ext-map "`I" '(lambda (n) (interactive "p") (insert-char 204 n)))
X(define-key ISO-ext-map "`O" '(lambda (n) (interactive "p") (insert-char 210 n)))
X(define-key ISO-ext-map "`U" '(lambda (n) (interactive "p") (insert-char 217 n)))
X(define-key ISO-ext-map "`a" '(lambda (n) (interactive "p") (insert-char 224 n)))
X(define-key ISO-ext-map "`e" '(lambda (n) (interactive "p") (insert-char 232 n)))
X(define-key ISO-ext-map "`i" '(lambda (n) (interactive "p") (insert-char 236 n)))
X(define-key ISO-ext-map "`o" '(lambda (n) (interactive "p") (insert-char 242 n)))
X(define-key ISO-ext-map "`u" '(lambda (n) (interactive "p") (insert-char 249 n)))
X(define-key ISO-ext-map "`y" '(lambda (n) (interactive "p") (insert-char 221 n)))
X(define-key ISO-ext-map "a'" '(lambda (n) (interactive "p") (insert-char 225 n)))
X(define-key ISO-ext-map "a*" '(lambda (n) (interactive "p") (insert-char 229 n)))
X(define-key ISO-ext-map "a0" '(lambda (n) (interactive "p") (insert-char 229 n)))
X(define-key ISO-ext-map "a\"" '(lambda (n) (interactive "p") (insert-char 228 n)))
X(define-key ISO-ext-map "a^" '(lambda (n) (interactive "p") (insert-char 226 n)))
X(define-key ISO-ext-map "a`" '(lambda (n) (interactive "p") (insert-char 224 n)))
X(define-key ISO-ext-map "ae" '(lambda (n) (interactive "p") (insert-char 230 n)))
X(define-key ISO-ext-map "a~" '(lambda (n) (interactive "p") (insert-char 227 n)))
X(define-key ISO-ext-map "c," '(lambda (n) (interactive "p") (insert-char 231 n)))
X(define-key ISO-ext-map "e'" '(lambda (n) (interactive "p") (insert-char 233 n)))
X(define-key ISO-ext-map "e\"" '(lambda (n) (interactive "p") (insert-char 235 n)))
X(define-key ISO-ext-map "e^" '(lambda (n) (interactive "p") (insert-char 234 n)))
X(define-key ISO-ext-map "e`" '(lambda (n) (interactive "p") (insert-char 232 n)))
X(define-key ISO-ext-map "i'" '(lambda (n) (interactive "p") (insert-char 237 n)))
X(define-key ISO-ext-map "i\"" '(lambda (n) (interactive "p") (insert-char 239 n)))
X(define-key ISO-ext-map "i^" '(lambda (n) (interactive "p") (insert-char 238 n)))
X(define-key ISO-ext-map "i`" '(lambda (n) (interactive "p") (insert-char 236 n)))
X(define-key ISO-ext-map "n~" '(lambda (n) (interactive "p") (insert-char 241 n)))
X(define-key ISO-ext-map "o'" '(lambda (n) (interactive "p") (insert-char 243 n)))
X(define-key ISO-ext-map "o/" '(lambda (n) (interactive "p") (insert-char 216 n)))
X(define-key ISO-ext-map "o/" '(lambda (n) (interactive "p") (insert-char 248 n)))
X(define-key ISO-ext-map "o\"" '(lambda (n) (interactive "p") (insert-char 246 n)))
X(define-key ISO-ext-map "o^" '(lambda (n) (interactive "p") (insert-char 244 n)))
X(define-key ISO-ext-map "o`" '(lambda (n) (interactive "p") (insert-char 242 n)))
X(define-key ISO-ext-map "ox" '(lambda (n) (interactive "p") (insert-char 164 n)))
X(define-key ISO-ext-map "o~" '(lambda (n) (interactive "p") (insert-char 245 n)))
X(define-key ISO-ext-map "ss" '(lambda (n) (interactive "p") (insert-char 223 n)))
X(define-key ISO-ext-map "u'" '(lambda (n) (interactive "p") (insert-char 250 n)))
X(define-key ISO-ext-map "u\"" '(lambda (n) (interactive "p") (insert-char 252 n)))
X(define-key ISO-ext-map "u^" '(lambda (n) (interactive "p") (insert-char 251 n)))
X(define-key ISO-ext-map "u`" '(lambda (n) (interactive "p") (insert-char 249 n)))
X(define-key ISO-ext-map "xo" '(lambda (n) (interactive "p") (insert-char 164 n)))
X(define-key ISO-ext-map "y'" '(lambda (n) (interactive "p") (insert-char 253 n)))
X(define-key ISO-ext-map "y\"" '(lambda (n) (interactive "p") (insert-char 255 n)))
X(define-key ISO-ext-map "y`" '(lambda (n) (interactive "p") (insert-char 221 n)))
X(define-key ISO-ext-map "|C" '(lambda (n) (interactive "p") (insert-char 162 n)))
X(define-key ISO-ext-map "|c" '(lambda (n) (interactive "p") (insert-char 162 n)))
X(define-key ISO-ext-map "||" '(lambda (n) (interactive "p") (insert-char 166 n)))
X(define-key ISO-ext-map "~A" '(lambda (n) (interactive "p") (insert-char 195 n)))
X(define-key ISO-ext-map "~N" '(lambda (n) (interactive "p") (insert-char 209 n)))
X(define-key ISO-ext-map "~O" '(lambda (n) (interactive "p") (insert-char 213 n)))
X(define-key ISO-ext-map "~a" '(lambda (n) (interactive "p") (insert-char 227 n)))
X(define-key ISO-ext-map "~n" '(lambda (n) (interactive "p") (insert-char 241 n)))
X(define-key ISO-ext-map "~o" '(lambda (n) (interactive "p") (insert-char 245 n)))
X(define-key ISO-ext-map "\e " '(lambda (n) (interactive "p") (insert-char 160 n)))
SHAR_EOF
chmod 0444 iso.el ||
echo 'restore of iso.el failed'
Wc_c="`wc -c < 'iso.el'`"
test 21959 -eq "$Wc_c" ||
echo 'iso.el: original size 21959, current size' "$Wc_c"
fi
# ============= el-accents.el ==============
if test -f 'el-accents.el' -a X"$1" != X"-c"; then
echo 'x - skipping el-accents.el (File already exists)'
else
echo 'x - extracting el-accents.el (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'el-accents.el' &&
X;; el-accents.el -- electric accent keys
X;;
X;; SCCS Status : %Z%@ %M% %I%
X;; Author : Johan Vromans
X;; Created On : Tue Feb 5 09:58:05 1991
X;; Last Modified By: Johan Vromans
X;; Last Modified On: Tue Feb 5 10:00:00 1991
X;; Update Count : 3
X;; Status : OK
X;;
X;; Use pseudo-accents to allow "dead keys" like a typewriter.
X;;
X;; Pseudo-accents are:
X;;
X;; ' (minute) -> grave accent
X;; ` (backtick) -> acute accent
X;; " (second) -> diaeresis
X;; ^ (caret) -> circonflexe
X;;
X;; In general:
X;;
X;; pseudo-accent + appropriate letter -> accented letter
X;; pseudo-accent + space -> pseudo-accent
X;; pseudo-accent + pseudo-accent -> accent (if available)
X;; pseudo-accent + other -> pseudo-accent + other
X;;
X;; Function "electric-accents" can be used to enable the dead keys, or
X;; disable them if called with a non-null argument.
X;;
X;; The inserted codes are conformant to the ISO Latin-1 alphabeth.
X;;
X(defun electric-grave-accent ()
X (interactive)
X (let ((char (read-char)))
X (cond
X ((eq char ?A) (insert ?\301))
X ((eq char ?E) (insert ?\311))
X ((eq char ?I) (insert ?\315))
X ((eq char ?O) (insert ?\323))
X ((eq char ?U) (insert ?\332))
X ((eq char ?a) (insert ?\341))
X ((eq char ?e) (insert ?\351))
X ((eq char ?i) (insert ?\355))
X ((eq char ?o) (insert ?\363))
X ((eq char ?u) (insert ?\372))
X ((eq char ?') (insert ?\264))
X ((eq char ? ) (insert ?'))
X ((insert ?' char)))))
X
X(defun electric-acute-accent ()
X (interactive)
X (let ((char (read-char)))
X (cond
X ((eq char ?A) (insert ?\300))
X ((eq char ?E) (insert ?\310))
X ((eq char ?I) (insert ?\314))
X ((eq char ?O) (insert ?\322))
X ((eq char ?U) (insert ?\331))
X ((eq char ?a) (insert ?\340))
X ((eq char ?e) (insert ?\350))
X ((eq char ?i) (insert ?\354))
X ((eq char ?o) (insert ?\362))
X ((eq char ?u) (insert ?\371))
X ((eq char ? ) (insert ?`))
X ((eq char ?`) (insert ?`)) ; no special code?
X ((insert ?` char)))))
X
X(defun electric-circonflexe ()
X (interactive)
X (let ((char (read-char)))
X (cond
X ((eq char ?A) (insert ?\302))
X ((eq char ?E) (insert ?\312))
X ((eq char ?I) (insert ?\316))
X ((eq char ?O) (insert ?\324))
X ((eq char ?U) (insert ?\333))
X ((eq char ?a) (insert ?\342))
X ((eq char ?e) (insert ?\352))
X ((eq char ?i) (insert ?\356))
X ((eq char ?o) (insert ?\364))
X ((eq char ?u) (insert ?\373))
X ((eq char ? ) (insert ?^))
X ((eq char ?^) (insert ?^)) ; no special code?
X ((insert ?^ char)))))
X
X(defun electric-diaeresis ()
X (interactive)
X (let ((char (read-char)))
X (cond
X ((eq char ?A) (insert ?\304))
X ((eq char ?E) (insert ?\313))
X ((eq char ?I) (insert ?\317))
X ((eq char ?O) (insert ?\326))
X ((eq char ?U) (insert ?\334))
X ((eq char ?a) (insert ?\344))
X ((eq char ?e) (insert ?\353))
X ((eq char ?i) (insert ?\357))
X ((eq char ?o) (insert ?\366))
X ((eq char ?u) (insert ?\374))
X ((eq char ? ) (insert ?\"))
X ((eq char ?\") (insert ?\250))
X ((insert ?\" char)))))
X
X(defun electric-accents (&optional arg)
X "Have the pseudo-accent keys behave like dead typewriter
Xkeys. With ARG, make them normal again."
X (interactive "P")
X (if arg
X (progn
X (local-unset-key "'")
X (local-unset-key "`")
X (local-unset-key "\"")
X (local-unset-key "^"))
X (local-set-key "'" 'electric-grave-accent)
X (local-set-key "`" 'electric-acute-accent)
X (local-set-key "^" 'electric-circonflexe)
X (local-set-key "\"" 'electric-diaeresis)))
SHAR_EOF
chmod 0644 el-accents.el ||
echo 'restore of el-accents.el failed'
Wc_c="`wc -c < 'el-accents.el'`"
test 3580 -eq "$Wc_c" ||
echo 'el-accents.el: original size 3580, current size' "$Wc_c"
fi
exit 0
--
Johan Vromans jv@mh.nl via internet backbones
Multihouse Automatisering bv uucp: ..!{uunet,hp4nl}!mh.nl!jv
Doesburgweg 7, 2803 PL Gouda, The Netherlands phone/fax: +31 1820 62911/62500
------------------------ "Arms are made for hugging" -------------------------
Technical Details
Message-ID:
<1991Sep15.093919.12766@pronto.mh.nl>Path:
arc1-ca.pugleaf.net!wupost!uunet!mcsun!hp4nl!mhres!squirrel!pronto!jvReferences:
<6881@ztivax.UUCP> <MATTHIEU.91Sep14183642@corto.laas.fr>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!wupost!uunet!mcsun!hp4nl!mhres!squirrel!pronto!jv From: jv@mh.nl (Johan Vromans) Newsgroups: gnu.emacs.help,comp.emacs,gnu.emacs.sources,alt.sources Subject: ISO input (Was: Re: 8-Bit Clean Mode for Gnu Emacs) Message-ID: <1991Sep15.093919.12766@pronto.mh.nl> Date: 15 Sep 91 09:39:19 GMT References: <6881@ztivax.UUCP> <MATTHIEU.91Sep14183642@corto.laas.fr> Sender: jv@pronto.mh.nl (Johan Vromans) Organization: Multihouse Automation, the Netherlands Lines: 640 In-Reply-To: matthieu@laas.fr's message of 14 Sep 91 16:36:42 GMT X-Md4-Signature: e29b8af141e50ac9e964cfe0a5e3dea7