Merge from emacs-23
[bpt/emacs.git] / lisp / international / iso-transl.el
index 4a37ee7..c73dd0f 100644 (file)
@@ -1,6 +1,7 @@
-;;; iso-transl.el --- keyboard input definitions for ISO 8859/1.
+;;; iso-transl.el --- keyboard input definitions for ISO 8859-1  -*- coding: iso-8859-1 -*-
 
-;; Copyright (C) 1987, 1993, 1994, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
+;;   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
 ;; Maintainer: FSF
@@ -8,10 +9,10 @@
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -19,9 +20,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 ;; A-umlaut as `C-x 8 " A' or `Alt-" A' (if you have an Alt key) or
 ;; `umlaut A' (if you have an umlaut/diaeresis key).
 
+;; C-x 8 is set up to autoload this package,
+;; but Alt keys and dead accent keys are only defined
+;; once you have loaded the package.  It is nontrivial
+;; to make all of the Alt keys autoload, and it is not clear
+;; that the dead accent keys SHOULD autoload this package.
+
 ;;; Code:
 
+;;; Provide some binding for startup:
+;;;###autoload (or key-translation-map (setq key-translation-map (make-sparse-keymap)))
+;;;###autoload (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
+;;;###autoload (autoload 'iso-transl-ctl-x-8-map "iso-transl" "Keymap for C-x 8 prefix." t 'keymap)
+
 (defvar iso-transl-dead-key-alist
   '((?\' . mute-acute)
     (?\` . mute-grave)
 ;; The two-character mnemonics are intended to be available in all languages.
 ;; The ones beginning with `*' have one-character synonyms, but a
 ;; language-specific table might override the short form for its own use.
+
 (defvar iso-transl-char-map
-  '(("* "   . [160])(" "   . [160])
-    ("*!"   . [161])("!"   . [161])
-    ("\"\"" . [168])
-    ("\"A"  . [196])
-    ("\"E"  . [203])
-    ("\"I"  . [207])
-    ("\"O"  . [214])
-    ("\"U"  . [220])
-    ("\"a"  . [228])
-    ("\"e"  . [235])
-    ("\"i"  . [239])
-    ("\"o"  . [246])
-    ("\"s"  . [223])
-    ("\"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])("$"   . [164])
-    ("*+"   . [177])("+"   . [177])
-    (",,"   . [184])
-    (",C"   . [199])
-    (",c"   . [231])
-    ("*-"   . [173])("-"   . [173])
-    ("*."   . [183])("."   . [183])
-    ("//"   . [247])
-    ("/A"   . [197])
-    ("/E"   . [198])
-    ("/O"   . [216])
-    ("/a"   . [229])
-    ("/e"   . [230])
-    ("/o"   . [248])
-    ("1/2"  . [189])
-    ("1/4"  . [188])
-    ("3/4"  . [190])
-    ("*<"   . [171])("<"   . [171])
-    ("*="   . [175])("="   . [175])
-    ("*>"   . [187])(">"   . [187])
-    ("*?"   . [191])("?"   . [191])
-    ("*C"   . [169])("C"   . [169])
-    ("*L"   . [163])("L"   . [163])
-    ("*P"   . [182])("P"   . [182])
-    ("*R"   . [174])("R"   . [174])
-    ("*S"   . [167])("S"   . [167])
-    ("*Y"   . [165])("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])
-    ("*c"   . [162])("c"   . [162])
-    ("*o"   . [176])("o"   . [176])
-    ("*u"   . [181])("u"   . [181])
-    ("*m"   . [181])("m"   . [181])
-    ("*x"   . [215])("x"   . [215])
-    ("*|"   . [166])("|"   . [166])
-    ("~A"   . [195])
-    ("~D"   . [208])
-    ("~N"   . [209])
-    ("~O"   . [213])
-    ("~T"   . [222])
-    ("~a"   . [227])
-    ("~d"   . [240])
-    ("~n"   . [241])
-    ("~o"   . [245])
-    ("~t"   . [254])
-    ("~~"   . [172])
+  '(("* "   . [? ])
+    (" "    . [? ])
+    ("*!"   . [?¡])
+    ("!"    . [?¡])
+    ("\"\"" . [?¨])
+    ("\"A"  . [?Ä])
+    ("\"E"  . [?Ë])
+    ("\"I"  . [?Ï])
+    ("\"O"  . [?Ö])
+    ("\"U"  . [?Ü])
+    ("\"a"  . [?ä])
+    ("\"e"  . [?ë])
+    ("\"i"  . [?ï])
+    ("\"o"  . [?ö])
+    ("\"s"  . [?ß])
+    ("\"u"  . [?ü])
+    ("\"y"  . [?ÿ])
+    ("''"   . [?´])
+    ("'A"   . [?Á])
+    ("'E"   . [?É])
+    ("'I"   . [?Í])
+    ("'O"   . [?Ó])
+    ("'U"   . [?Ú])
+    ("'Y"   . [?Ý])
+    ("'a"   . [?á])
+    ("'e"   . [?é])
+    ("'i"   . [?í])
+    ("'o"   . [?ó])
+    ("'u"   . [?ú])
+    ("'y"   . [?ý])
+    ("*$"   . [?¤])
+    ("$"    . [?¤])
+    ("*+"   . [?±])
+    ("+"    . [?±])
+    (",,"   . [?¸])
+    (",C"   . [?Ç])
+    (",c"   . [?ç])
+    ("*-"   . [?­])
+    ("-"    . [?­])
+    ("*."   . [?·])
+    ("."    . [?·])
+    ("//"   . [?÷])
+    ("/A"   . [?Å])
+    ("/E"   . [?Æ])
+    ("/O"   . [?Ø])
+    ("/a"   . [?å])
+    ("/e"   . [?æ])
+    ("/o"   . [?ø])
+    ("1/2"  . [?½])
+    ("1/4"  . [?¼])
+    ("3/4"  . [?¾])
+    ("*<"   . [?«])
+    ("<"    . [?«])
+    ("*="   . [?¯])
+    ("="    . [?¯])
+    ("*>"   . [?»])
+    (">"    . [?»])
+    ("*?"   . [?¿])
+    ("?"    . [?¿])
+    ("*C"   . [?©])
+    ("C"    . [?©])
+    ("*L"   . [?£])
+    ("L"    . [?£])
+    ("*P"   . [?¶])
+    ("P"    . [?¶])
+    ("*R"   . [?®])
+    ("R"    . [?®])
+    ("*S"   . [?§])
+    ("S"    . [?§])
+    ("*Y"   . [?¥])
+    ("Y"    . [?¥])
+    ("^1"   . [?¹])
+    ("^2"   . [?²])
+    ("^3"   . [?³])
+    ("^A"   . [?Â])
+    ("^E"   . [?Ê])
+    ("^I"   . [?Î])
+    ("^O"   . [?Ô])
+    ("^U"   . [?Û])
+    ("^a"   . [?â])
+    ("^e"   . [?ê])
+    ("^i"   . [?î])
+    ("^o"   . [?ô])
+    ("^u"   . [?û])
+    ("_a"   . [?ª])
+    ("_o"   . [?º])
+    ("`A"   . [?À])
+    ("`E"   . [?È])
+    ("`I"   . [?Ì])
+    ("`O"   . [?Ò])
+    ("`U"   . [?Ù])
+    ("`a"   . [?à])
+    ("`e"   . [?è])
+    ("`i"   . [?ì])
+    ("`o"   . [?ò])
+    ("`u"   . [?ù])
+    ("*c"   . [?¢])
+    ("c"    . [?¢])
+    ("*o"   . [?°])
+    ("o"    . [?°])
+    ("*u"   . [?µ])
+    ("u"    . [?µ])
+    ("*m"   . [?µ])
+    ("m"    . [?µ])
+    ("*x"   . [?×])
+    ("x"    . [?×])
+    ("*|"   . [?¦])
+    ("|"    . [?¦])
+    ("~A"   . [?Ã])
+    ("~D"   . [?Ð])
+    ("~N"   . [?Ñ])
+    ("~O"   . [?Õ])
+    ("~T"   . [?Þ])
+    ("~a"   . [?ã])
+    ("~d"   . [?ð])
+    ("~n"   . [?ñ])
+    ("~o"   . [?õ])
+    ("~t"   . [?þ])
+    ("~~"   . [?¬])
     ("' "   . "'")
     ("` "   . "`")
     ("\" "  . "\"")
@@ -173,42 +206,43 @@ sequence VECTOR.  (VECTOR is normally one character long.)")
 ;; Language-specific translation lists.
 (defvar iso-transl-language-alist
   '(("Esperanto"
-     ("C"  . [198])
-     ("G"  . [216])
-     ("H"  . [166])
-     ("J"  . [172])
-     ("S"  . [222])
-     ("U"  . [221])
-     ("c"  . [230])
-     ("g"  . [248])
-     ("h"  . [182])
-     ("j"  . [188])
-     ("s"  . [254])
-     ("u"  . [253]))
+     ("C"  . [])
+     ("G"  . [])
+     ("H"  . [])
+     ("J"  . [])
+     ("S"  . [])
+     ("U"  . [])
+     ("c"  . [])
+     ("g"  . [])
+     ("h"  . [])
+     ("j"  . [])
+     ("s"  . [])
+     ("u"  . []))
     ("French"
-     ("C"  . [199])
-     ("c"  . [231]))
+     ("C"  . [])
+     ("c"  . []))
     ("German"
-     ("A"  . [196])
-     ("O"  . [214]) 
-     ("U"  . [220])
-     ("a"  . [228])
-     ("o"  . [246])
-     ("s"  . [223])
-     ("u"  . [252]))
+     ("A"  . [])
+     ("O"  . [?Ö])
+     ("U"  . [])
+     ("a"  . [])
+     ("o"  . [])
+     ("s"  . [])
+     ("u"  . []))
     ("Portuguese"
-     ("C"  . [199])
-     ("c"  . [231]))
+     ("C"  . [])
+     ("c"  . []))
     ("Spanish"
-     ("!"  . [161])
-     ("?"  . [191])
-     ("N"  . [241])
-     ("n"  . [209]))))
+     ("!"  . [])
+     ("?"  . [?¿])
+     ("N"  . [])
+     ("n"  . []))))
 
 (defvar iso-transl-ctl-x-8-map nil
   "Keymap for C-x 8 prefix.")
 (or iso-transl-ctl-x-8-map
-    (setq iso-transl-ctl-x-8-map (make-sparse-keymap)))
+    (fset 'iso-transl-ctl-x-8-map
+         (setq iso-transl-ctl-x-8-map (make-sparse-keymap))))
 (or key-translation-map
     (setq key-translation-map (make-sparse-keymap)))
 (define-key key-translation-map "\C-x8" iso-transl-ctl-x-8-map)
@@ -221,11 +255,7 @@ sequence VECTOR.  (VECTOR is normally one character long.)")
 ;; or `Alt-~ n' or `mute-asciitilde n'.
 (defun iso-transl-define-keys (alist)
   (while alist
-    (let ((translated-vec
-          (if enable-multibyte-characters
-              (vector (+ (aref (cdr (car alist)) 0)
-                         nonascii-insert-offset))
-            (cdr (car alist)))))
+    (let ((translated-vec (cdr (car alist))))
       (define-key iso-transl-ctl-x-8-map (car (car alist)) translated-vec)
       (let ((inchar (aref (car (car alist)) 0))
            (vec (vconcat (car (car alist))))
@@ -261,4 +291,5 @@ sequence VECTOR.  (VECTOR is normally one character long.)")
 
 (provide 'iso-transl)
 
+;; arch-tag: 034cfedf-7ebd-461d-bcd0-5c79e6dc0b61
 ;;; iso-transl.el ends here