# HG changeset patch # User Richard M. Stallman # Date 761020793 0 # Node ID 240d2ad5803c358837dd107a6ab907016a55318f # Parent 806e876cacb4975e7bdf2ce3a4a1caa2c9736f36 Set up Alt keys as well as C-x 8 prefix. No need to create the prefix submaps explicitly. (iso-transl-char-map): New variable. Change the sequences aa and ae to just a and e. diff -r 806e876cacb4 -r 240d2ad5803c lisp/international/iso-transl.el --- a/lisp/international/iso-transl.el Sat Feb 12 02:37:17 1994 +0000 +++ b/lisp/international/iso-transl.el Sat Feb 12 02:39:53 1994 +0000 @@ -22,122 +22,160 @@ ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +;;; Commentary: + +;; Loading this package defines two ways of entering the ISO Latin 1 characters +;; with codes above 127. + +;; One way is to type C-x 8 followed by a special chaacter sequence. +;; For example, C-x 8 " A enters an upper-case A-umlaut. + +;; The other way is to type the same special sequence +;; but hold down Alt for the first character in it. + ;;; Code: -(let ((map (make-sparse-keymap))) - (define-key map " " [160]) - (define-key map "!" [161]) - (define-key map "\"" (make-sparse-keymap)) - (define-key map "\"\"" [168]) - (define-key map "\"A" [196]) - (define-key map "\"E" [203]) - (define-key map "\"I" [207]) - (define-key map "\"O" [214]) - (define-key map "\"U" [220]) - (define-key map "\"a" [228]) - (define-key map "\"e" [235]) - (define-key map "\"i" [239]) - (define-key map "\"o" [246]) - (define-key map "\"u" [252]) - (define-key map "\"y" [255]) - (define-key map "'" (make-sparse-keymap)) - (define-key map "''" [180]) - (define-key map "'A" [193]) - (define-key map "'E" [201]) - (define-key map "'I" [205]) - (define-key map "'O" [211]) - (define-key map "'U" [218]) - (define-key map "'Y" [221]) - (define-key map "'a" [225]) - (define-key map "'e" [233]) - (define-key map "'i" [237]) - (define-key map "'o" [243]) - (define-key map "'u" [250]) - (define-key map "'y" [253]) - (define-key map "$" [164]) - (define-key map "+" [177]) - (define-key map "," (make-sparse-keymap)) - (define-key map ",," [184]) - (define-key map ",C" [199]) - (define-key map ",c" [231]) - (define-key map "-" [173]) - (define-key map "." [183]) - (define-key map "/" (make-sparse-keymap)) - (define-key map "//" [247]) - (define-key map "/O" [216]) - (define-key map "/o" [248]) - (define-key map "1" (make-sparse-keymap)) - (define-key map "1/" (make-sparse-keymap)) - (define-key map "1/2" [189]) - (define-key map "1/4" [188]) - (define-key map "3" (make-sparse-keymap)) - (define-key map "3/" (make-sparse-keymap)) - (define-key map "3/4" [190]) - (define-key map "<" [171]) - (define-key map "=" [175]) - (define-key map ">" [187]) - (define-key map "?" [191]) - (define-key map "A" (make-sparse-keymap)) - (define-key map "AA" [197]) - (define-key map "AE" [198]) - (define-key map "C" [169]) - (define-key map "D" [208]) - (define-key map "L" [163]) - (define-key map "P" [182]) - (define-key map "R" [174]) - (define-key map "S" [167]) - (define-key map "T" [222]) - (define-key map "Y" [165]) - (define-key map "^" (make-sparse-keymap)) - (define-key map "^1" [185]) - (define-key map "^2" [178]) - (define-key map "^3" [179]) - (define-key map "^A" [194]) - (define-key map "^E" [202]) - (define-key map "^I" [206]) - (define-key map "^O" [212]) - (define-key map "^U" [219]) - (define-key map "^a" [226]) - (define-key map "^e" [234]) - (define-key map "^i" [238]) - (define-key map "^o" [244]) - (define-key map "^u" [251]) - (define-key map "_" (make-sparse-keymap)) - (define-key map "_a" [170]) - (define-key map "_o" [186]) - (define-key map "`" (make-sparse-keymap)) - (define-key map "`A" [192]) - (define-key map "`E" [200]) - (define-key map "`I" [204]) - (define-key map "`O" [210]) - (define-key map "`U" [217]) - (define-key map "`a" [224]) - (define-key map "`e" [232]) - (define-key map "`i" [236]) - (define-key map "`o" [242]) - (define-key map "`u" [249]) - (define-key map "a" (make-sparse-keymap)) - (define-key map "aa" [229]) - (define-key map "ae" [230]) - (define-key map "c" [162]) - (define-key map "d" [240]) - (define-key map "o" [176]) - (define-key map "s" [223]) - (define-key map "t" [254]) - (define-key map "u" [181]) - (define-key map "x" [215]) - (define-key map "|" [166]) - (define-key map "~" (make-sparse-keymap)) - (define-key map "~A" [195]) - (define-key map "~N" [209]) - (define-key map "~O" [213]) - (define-key map "~a" [227]) - (define-key map "~n" [241]) - (define-key map "~o" [245]) - (define-key map "~~" [172]) +(defvar iso-transl-char-map + '((" " . [160]) + ("!" . [161]) + ("\"\"" . [168]) + ("\"A" . [196]) + ("\"E" . [203]) + ("\"I" . [207]) + ("\"O" . [214]) + ("\"U" . [220]) + ("\"a" . [228]) + ("\"e" . [235]) + ("\"i" . [239]) + ("\"o" . [246]) + ("\"u" . [252]) + ("\"y" . [255]) + ("''" . [180]) + ("'A" . [193]) + ("'E" . [201]) + ("'I" . [205]) + ("'O" . [211]) + ("'U" . [218]) + ("'Y" . [221]) + ("'a" . [225]) + ("'e" . [233]) + ("'i" . [237]) + ("'o" . [243]) + ("'u" . [250]) + ("'y" . [253]) + ("$" . [164]) + ("+" . [177]) + (",," . [184]) + (",C" . [199]) + (",c" . [231]) + ("-" . [173]) + ("." . [183]) + ("//" . [247]) + ("/O" . [216]) + ("/o" . [248]) + ("1/2" . [189]) + ("1/4" . [188]) + ("3/4" . [190]) + ("<" . [171]) + ("=" . [175]) + (">" . [187]) + ("?" . [191]) + ("A" . [197]) + ("E" . [198]) + ("C" . [169]) + ("D" . [208]) + ("L" . [163]) + ("P" . [182]) + ("R" . [174]) + ("S" . [167]) + ("T" . [222]) + ("Y" . [165]) + ("^1" . [185]) + ("^2" . [178]) + ("^3" . [179]) + ("^A" . [194]) + ("^E" . [202]) + ("^I" . [206]) + ("^O" . [212]) + ("^U" . [219]) + ("^a" . [226]) + ("^e" . [234]) + ("^i" . [238]) + ("^o" . [244]) + ("^u" . [251]) + ("_a" . [170]) + ("_o" . [186]) + ("`A" . [192]) + ("`E" . [200]) + ("`I" . [204]) + ("`O" . [210]) + ("`U" . [217]) + ("`a" . [224]) + ("`e" . [232]) + ("`i" . [236]) + ("`o" . [242]) + ("`u" . [249]) + ("a" . [229]) + ("e" . [230]) + ("c" . [162]) + ("d" . [240]) + ("o" . [176]) + ("s" . [223]) + ("t" . [254]) + ("u" . [181]) + ("x" . [215]) + ("|" . [166]) + ("~A" . [195]) + ("~N" . [209]) + ("~O" . [213]) + ("~a" . [227]) + ("~n" . [241]) + ("~o" . [245]) + ("~~" . [172])) + "Alist of character translations for entering ISO characters. +Each element has the form (STRING . VECTOR). +The sequence STRING of ASCII chars translates into the +sequence VECTOR. (VECTOR is normally one character long.)") + + +(let ((map (make-sparse-keymap)) + table) + (setq table iso-transl-char-map) +;;; ;; Create all the prefixes we need. +;;; (define-key map "\"" (make-sparse-keymap)) +;;; (define-key map "'" (make-sparse-keymap)) +;;; (define-key map "," (make-sparse-keymap)) +;;; (define-key map "/" (make-sparse-keymap)) +;;; (define-key map "1" (make-sparse-keymap)) +;;; (define-key map "1/" (make-sparse-keymap)) +;;; (define-key map "3" (make-sparse-keymap)) +;;; (define-key map "3/" (make-sparse-keymap)) +;;; (define-key map "A" (make-sparse-keymap)) +;;; (define-key map "^" (make-sparse-keymap)) +;;; (define-key map "_" (make-sparse-keymap)) +;;; (define-key map "`" (make-sparse-keymap)) +;;; (define-key map "a" (make-sparse-keymap)) +;;; (define-key map "~" (make-sparse-keymap)) + + ;; Enter the individual sequences. + (setq table iso-transl-char-map) + (while table + (define-key map (car (car table)) (cdr (car table))) + (setq table (cdr table))) + (or key-translation-map (setq key-translation-map (make-sparse-keymap))) (define-key key-translation-map "\C-x8" map) + + ;; Enter the individual sequences, this time with Alt as a modifier + ;; on the first character, instead of with C-x 8 as a prefix. + (setq table iso-transl-char-map) + (while table + (let ((string (vconcat (car (car table))))) + (aset string 0 (+ (aref string 0) 262144)) + (define-key key-translation-map string (cdr (car table)))) + (setq table (cdr table))) + (define-key isearch-mode-map "\C-x" nil) (define-key isearch-mode-map [?\C-x t] 'isearch-other-control-char) (define-key isearch-mode-map "\C-x8" nil))