summaryrefslogtreecommitdiff
path: root/lisp/international/iso-transl.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-02-12 02:39:53 +0000
committerRichard M. Stallman <rms@gnu.org>1994-02-12 02:39:53 +0000
commit632021345a4f1fa38e7652ed7aadc7669ac08563 (patch)
treebb4ef2c1891a03fbe5aa475fca8956deb0ba70fa /lisp/international/iso-transl.el
parent808c0f209ff22c8723c75e6e95467d80079ed315 (diff)
downloademacs-632021345a4f1fa38e7652ed7aadc7669ac08563.tar.gz
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.
Diffstat (limited to 'lisp/international/iso-transl.el')
-rw-r--r--lisp/international/iso-transl.el260
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 @@
;; 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))