diff options
| author | Richard M. Stallman | 1994-02-12 02:39:53 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-02-12 02:39:53 +0000 |
| commit | 632021345a4f1fa38e7652ed7aadc7669ac08563 (patch) | |
| tree | bb4ef2c1891a03fbe5aa475fca8956deb0ba70fa | |
| parent | 808c0f209ff22c8723c75e6e95467d80079ed315 (diff) | |
| download | emacs-632021345a4f1fa38e7652ed7aadc7669ac08563.tar.gz emacs-632021345a4f1fa38e7652ed7aadc7669ac08563.zip | |
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.
| -rw-r--r-- | lisp/international/iso-transl.el | 260 |
1 files changed, 149 insertions, 111 deletions
diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el index 74fa024d4ad..de1c141f204 100644 --- a/lisp/international/iso-transl.el +++ b/lisp/international/iso-transl.el | |||
| @@ -22,122 +22,160 @@ | |||
| 22 | ;; along with GNU Emacs; see the file COPYING. If not, write to | 22 | ;; along with GNU Emacs; see the file COPYING. If not, write to |
| 23 | ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | 23 | ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. |
| 24 | 24 | ||
| 25 | ;;; Commentary: | ||
| 26 | |||
| 27 | ;; Loading this package defines two ways of entering the ISO Latin 1 characters | ||
| 28 | ;; with codes above 127. | ||
| 29 | |||
| 30 | ;; One way is to type C-x 8 followed by a special chaacter sequence. | ||
| 31 | ;; For example, C-x 8 " A enters an upper-case A-umlaut. | ||
| 32 | |||
| 33 | ;; The other way is to type the same special sequence | ||
| 34 | ;; but hold down Alt for the first character in it. | ||
| 35 | |||
| 25 | ;;; Code: | 36 | ;;; Code: |
| 26 | 37 | ||
| 27 | (let ((map (make-sparse-keymap))) | 38 | (defvar iso-transl-char-map |
| 28 | (define-key map " " [160]) | 39 | '((" " . [160]) |
| 29 | (define-key map "!" [161]) | 40 | ("!" . [161]) |
| 30 | (define-key map "\"" (make-sparse-keymap)) | 41 | ("\"\"" . [168]) |
| 31 | (define-key map "\"\"" [168]) | 42 | ("\"A" . [196]) |
| 32 | (define-key map "\"A" [196]) | 43 | ("\"E" . [203]) |
| 33 | (define-key map "\"E" [203]) | 44 | ("\"I" . [207]) |
| 34 | (define-key map "\"I" [207]) | 45 | ("\"O" . [214]) |
| 35 | (define-key map "\"O" [214]) | 46 | ("\"U" . [220]) |
| 36 | (define-key map "\"U" [220]) | 47 | ("\"a" . [228]) |
| 37 | (define-key map "\"a" [228]) | 48 | ("\"e" . [235]) |
| 38 | (define-key map "\"e" [235]) | 49 | ("\"i" . [239]) |
| 39 | (define-key map "\"i" [239]) | 50 | ("\"o" . [246]) |
| 40 | (define-key map "\"o" [246]) | 51 | ("\"u" . [252]) |
| 41 | (define-key map "\"u" [252]) | 52 | ("\"y" . [255]) |
| 42 | (define-key map "\"y" [255]) | 53 | ("''" . [180]) |
| 43 | (define-key map "'" (make-sparse-keymap)) | 54 | ("'A" . [193]) |
| 44 | (define-key map "''" [180]) | 55 | ("'E" . [201]) |
| 45 | (define-key map "'A" [193]) | 56 | ("'I" . [205]) |
| 46 | (define-key map "'E" [201]) | 57 | ("'O" . [211]) |
| 47 | (define-key map "'I" [205]) | 58 | ("'U" . [218]) |
| 48 | (define-key map "'O" [211]) | 59 | ("'Y" . [221]) |
| 49 | (define-key map "'U" [218]) | 60 | ("'a" . [225]) |
| 50 | (define-key map "'Y" [221]) | 61 | ("'e" . [233]) |
| 51 | (define-key map "'a" [225]) | 62 | ("'i" . [237]) |
| 52 | (define-key map "'e" [233]) | 63 | ("'o" . [243]) |
| 53 | (define-key map "'i" [237]) | 64 | ("'u" . [250]) |
| 54 | (define-key map "'o" [243]) | 65 | ("'y" . [253]) |
| 55 | (define-key map "'u" [250]) | 66 | ("$" . [164]) |
| 56 | (define-key map "'y" [253]) | 67 | ("+" . [177]) |
| 57 | (define-key map "$" [164]) | 68 | (",," . [184]) |
| 58 | (define-key map "+" [177]) | 69 | (",C" . [199]) |
| 59 | (define-key map "," (make-sparse-keymap)) | 70 | (",c" . [231]) |
| 60 | (define-key map ",," [184]) | 71 | ("-" . [173]) |
| 61 | (define-key map ",C" [199]) | 72 | ("." . [183]) |
| 62 | (define-key map ",c" [231]) | 73 | ("//" . [247]) |
| 63 | (define-key map "-" [173]) | 74 | ("/O" . [216]) |
| 64 | (define-key map "." [183]) | 75 | ("/o" . [248]) |
| 65 | (define-key map "/" (make-sparse-keymap)) | 76 | ("1/2" . [189]) |
| 66 | (define-key map "//" [247]) | 77 | ("1/4" . [188]) |
| 67 | (define-key map "/O" [216]) | 78 | ("3/4" . [190]) |
| 68 | (define-key map "/o" [248]) | 79 | ("<" . [171]) |
| 69 | (define-key map "1" (make-sparse-keymap)) | 80 | ("=" . [175]) |
| 70 | (define-key map "1/" (make-sparse-keymap)) | 81 | (">" . [187]) |
| 71 | (define-key map "1/2" [189]) | 82 | ("?" . [191]) |
| 72 | (define-key map "1/4" [188]) | 83 | ("A" . [197]) |
| 73 | (define-key map "3" (make-sparse-keymap)) | 84 | ("E" . [198]) |
| 74 | (define-key map "3/" (make-sparse-keymap)) | 85 | ("C" . [169]) |
| 75 | (define-key map "3/4" [190]) | 86 | ("D" . [208]) |
| 76 | (define-key map "<" [171]) | 87 | ("L" . [163]) |
| 77 | (define-key map "=" [175]) | 88 | ("P" . [182]) |
| 78 | (define-key map ">" [187]) | 89 | ("R" . [174]) |
| 79 | (define-key map "?" [191]) | 90 | ("S" . [167]) |
| 80 | (define-key map "A" (make-sparse-keymap)) | 91 | ("T" . [222]) |
| 81 | (define-key map "AA" [197]) | 92 | ("Y" . [165]) |
| 82 | (define-key map "AE" [198]) | 93 | ("^1" . [185]) |
| 83 | (define-key map "C" [169]) | 94 | ("^2" . [178]) |
| 84 | (define-key map "D" [208]) | 95 | ("^3" . [179]) |
| 85 | (define-key map "L" [163]) | 96 | ("^A" . [194]) |
| 86 | (define-key map "P" [182]) | 97 | ("^E" . [202]) |
| 87 | (define-key map "R" [174]) | 98 | ("^I" . [206]) |
| 88 | (define-key map "S" [167]) | 99 | ("^O" . [212]) |
| 89 | (define-key map "T" [222]) | 100 | ("^U" . [219]) |
| 90 | (define-key map "Y" [165]) | 101 | ("^a" . [226]) |
| 91 | (define-key map "^" (make-sparse-keymap)) | 102 | ("^e" . [234]) |
| 92 | (define-key map "^1" [185]) | 103 | ("^i" . [238]) |
| 93 | (define-key map "^2" [178]) | 104 | ("^o" . [244]) |
| 94 | (define-key map "^3" [179]) | 105 | ("^u" . [251]) |
| 95 | (define-key map "^A" [194]) | 106 | ("_a" . [170]) |
| 96 | (define-key map "^E" [202]) | 107 | ("_o" . [186]) |
| 97 | (define-key map "^I" [206]) | 108 | ("`A" . [192]) |
| 98 | (define-key map "^O" [212]) | 109 | ("`E" . [200]) |
| 99 | (define-key map "^U" [219]) | 110 | ("`I" . [204]) |
| 100 | (define-key map "^a" [226]) | 111 | ("`O" . [210]) |
| 101 | (define-key map "^e" [234]) | 112 | ("`U" . [217]) |
| 102 | (define-key map "^i" [238]) | 113 | ("`a" . [224]) |
| 103 | (define-key map "^o" [244]) | 114 | ("`e" . [232]) |
| 104 | (define-key map "^u" [251]) | 115 | ("`i" . [236]) |
| 105 | (define-key map "_" (make-sparse-keymap)) | 116 | ("`o" . [242]) |
| 106 | (define-key map "_a" [170]) | 117 | ("`u" . [249]) |
| 107 | (define-key map "_o" [186]) | 118 | ("a" . [229]) |
| 108 | (define-key map "`" (make-sparse-keymap)) | 119 | ("e" . [230]) |
| 109 | (define-key map "`A" [192]) | 120 | ("c" . [162]) |
| 110 | (define-key map "`E" [200]) | 121 | ("d" . [240]) |
| 111 | (define-key map "`I" [204]) | 122 | ("o" . [176]) |
| 112 | (define-key map "`O" [210]) | 123 | ("s" . [223]) |
| 113 | (define-key map "`U" [217]) | 124 | ("t" . [254]) |
| 114 | (define-key map "`a" [224]) | 125 | ("u" . [181]) |
| 115 | (define-key map "`e" [232]) | 126 | ("x" . [215]) |
| 116 | (define-key map "`i" [236]) | 127 | ("|" . [166]) |
| 117 | (define-key map "`o" [242]) | 128 | ("~A" . [195]) |
| 118 | (define-key map "`u" [249]) | 129 | ("~N" . [209]) |
| 119 | (define-key map "a" (make-sparse-keymap)) | 130 | ("~O" . [213]) |
| 120 | (define-key map "aa" [229]) | 131 | ("~a" . [227]) |
| 121 | (define-key map "ae" [230]) | 132 | ("~n" . [241]) |
| 122 | (define-key map "c" [162]) | 133 | ("~o" . [245]) |
| 123 | (define-key map "d" [240]) | 134 | ("~~" . [172])) |
| 124 | (define-key map "o" [176]) | 135 | "Alist of character translations for entering ISO characters. |
| 125 | (define-key map "s" [223]) | 136 | Each element has the form (STRING . VECTOR). |
| 126 | (define-key map "t" [254]) | 137 | The sequence STRING of ASCII chars translates into the |
| 127 | (define-key map "u" [181]) | 138 | sequence VECTOR. (VECTOR is normally one character long.)") |
| 128 | (define-key map "x" [215]) | 139 | |
| 129 | (define-key map "|" [166]) | 140 | |
| 130 | (define-key map "~" (make-sparse-keymap)) | 141 | (let ((map (make-sparse-keymap)) |
| 131 | (define-key map "~A" [195]) | 142 | table) |
| 132 | (define-key map "~N" [209]) | 143 | (setq table iso-transl-char-map) |
| 133 | (define-key map "~O" [213]) | 144 | ;;; ;; Create all the prefixes we need. |
| 134 | (define-key map "~a" [227]) | 145 | ;;; (define-key map "\"" (make-sparse-keymap)) |
| 135 | (define-key map "~n" [241]) | 146 | ;;; (define-key map "'" (make-sparse-keymap)) |
| 136 | (define-key map "~o" [245]) | 147 | ;;; (define-key map "," (make-sparse-keymap)) |
| 137 | (define-key map "~~" [172]) | 148 | ;;; (define-key map "/" (make-sparse-keymap)) |
| 149 | ;;; (define-key map "1" (make-sparse-keymap)) | ||
| 150 | ;;; (define-key map "1/" (make-sparse-keymap)) | ||
| 151 | ;;; (define-key map "3" (make-sparse-keymap)) | ||
| 152 | ;;; (define-key map "3/" (make-sparse-keymap)) | ||
| 153 | ;;; (define-key map "A" (make-sparse-keymap)) | ||
| 154 | ;;; (define-key map "^" (make-sparse-keymap)) | ||
| 155 | ;;; (define-key map "_" (make-sparse-keymap)) | ||
| 156 | ;;; (define-key map "`" (make-sparse-keymap)) | ||
| 157 | ;;; (define-key map "a" (make-sparse-keymap)) | ||
| 158 | ;;; (define-key map "~" (make-sparse-keymap)) | ||
| 159 | |||
| 160 | ;; Enter the individual sequences. | ||
| 161 | (setq table iso-transl-char-map) | ||
| 162 | (while table | ||
| 163 | (define-key map (car (car table)) (cdr (car table))) | ||
| 164 | (setq table (cdr table))) | ||
| 165 | |||
| 138 | (or key-translation-map | 166 | (or key-translation-map |
| 139 | (setq key-translation-map (make-sparse-keymap))) | 167 | (setq key-translation-map (make-sparse-keymap))) |
| 140 | (define-key key-translation-map "\C-x8" map) | 168 | (define-key key-translation-map "\C-x8" map) |
| 169 | |||
| 170 | ;; Enter the individual sequences, this time with Alt as a modifier | ||
| 171 | ;; on the first character, instead of with C-x 8 as a prefix. | ||
| 172 | (setq table iso-transl-char-map) | ||
| 173 | (while table | ||
| 174 | (let ((string (vconcat (car (car table))))) | ||
| 175 | (aset string 0 (+ (aref string 0) 262144)) | ||
| 176 | (define-key key-translation-map string (cdr (car table)))) | ||
| 177 | (setq table (cdr table))) | ||
| 178 | |||
| 141 | (define-key isearch-mode-map "\C-x" nil) | 179 | (define-key isearch-mode-map "\C-x" nil) |
| 142 | (define-key isearch-mode-map [?\C-x t] 'isearch-other-control-char) | 180 | (define-key isearch-mode-map [?\C-x t] 'isearch-other-control-char) |
| 143 | (define-key isearch-mode-map "\C-x8" nil)) | 181 | (define-key isearch-mode-map "\C-x8" nil)) |