]> code.delx.au - gnu-emacs/blobdiff - leim/quail/latin-post.el
(buildlisppath): Set to an absolute directory,
[gnu-emacs] / leim / quail / latin-post.el
index 770d9485f78dc1768f5dd59fda1795656557a029..d0b2c338c138df218227390a6a9ad1467e4afc74 100644 (file)
 
 (quail-define-package
  "latin-1-postfix" "Latin-1" "1<" t
- "Latin-1 characters input method with postfix modifiers
+ "Latin-1 character input method with postfix modifiers
 
-    effect   | postfix | examples
+             | postfix | examples
  ------------+---------+----------
-    acute    |    '    | a' -> \e,Aa\e(B
-    grave    |    `    | a` -> \e,A`\e(B
+  acute      |    '    | a' -> \e,Aa\e(B
+  grave      |    `    | a` -> \e,A`\e(B
   circumflex |    ^    | a^ -> \e,Ab\e(B
   diaeresis  |    \"    | a\" -> \e,Ad\e(B
-    tilde    |    ~    | a~ -> \e,Ac\e(B
-   cedilla   |    ,    | c, -> \e,Ag\e(B
-   nordic    |    /    | d/ -> \e,Ap\e(B   t/ -> \e,A~\e(B   a/ -> \e,Ae\e(B   e/ -> \e,Af\e(B   o/ -> \e,Ax\e(B
-   special   |   /<>   | s/ -> \e,A_\e(B   ?/ -> \e,A?\e(B   !/ -> \e,A!\e(B   << -> \e,A+\e(B   >> -> \e,A;\e(B
-" nil t)
+  tilde      |    ~    | a~ -> \e,Ac\e(B
+  cedilla    |    ,    | c, -> \e,Ag\e(B
+  nordic     |    /    | d/ -> \e,Ap\e(B   t/ -> \e,A~\e(B   a/ -> \e,Ae\e(B   e/ -> \e,Af\e(B   o/ -> \e,Ax\e(B
+  others     |    /    | s/ -> \e,A_\e(B   ?/ -> \e,A?\e(B   !/ -> \e,A!\e(B   // -> \e,A0\e(B
+             | various | << -> \e,A+\e(B   >> -> \e,A;\e(B   o_ -> \e,A:\e(B   a_ -> \e,A*\e(B
+
+Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A`" ?\e,A@\e(B)
@@ -55,7 +58,6 @@
  ("a~" ?\e,Ac\e(B)
  ("a\"" ?\e,Ad\e(B)
  ("a/" ?\e,Ae\e(B)
-
  ("E`" ?\e,AH\e(B)
  ("E'" ?\e,AI\e(B)
  ("E^" ?\e,AJ\e(B)
  ("e^" ?\e,Aj\e(B)
  ("e\"" ?\e,Ak\e(B)
  ("e/" ?\e,Af\e(B)
-
  ("I`" ?\e,AL\e(B)
- ("I'" ?\e,AM\e(B)
- ("I^" ?\e,AN\e(B)
- ("I\"" ?\e,AO\e(B)
  ("i`" ?\e,Al\e(B)
+ ("I'" ?\e,AM\e(B)
  ("i'" ?\e,Am\e(B)
+ ("I^" ?\e,AN\e(B)
  ("i^" ?\e,An\e(B)
+ ("I\"" ?\e,AO\e(B)
  ("i\"" ?\e,Ao\e(B)
-
  ("O`" ?\e,AR\e(B)
- ("O'" ?\e,AS\e(B)
- ("O^" ?\e,AT\e(B)
- ("O~" ?\e,AU\e(B)
- ("O\"" ?\e,AV\e(B)
- ("O/" ?\e,AX\e(B)
  ("o`" ?\e,Ar\e(B)
+ ("O'" ?\e,AS\e(B)
  ("o'" ?\e,As\e(B)
+ ("O^" ?\e,AT\e(B)
  ("o^" ?\e,At\e(B)
+ ("O~" ?\e,AU\e(B)
  ("o~" ?\e,Au\e(B)
+ ("O\"" ?\e,AV\e(B)
  ("o\"" ?\e,Av\e(B)
+ ("O/" ?\e,AX\e(B)
  ("o/" ?\e,Ax\e(B)
-
  ("U`" ?\e,AY\e(B)
- ("U'" ?\e,AZ\e(B)
- ("U^" ?\e,A[\e(B)
- ("U\"" ?\e,A\\e(B)
  ("u`" ?\e,Ay\e(B)
+ ("U'" ?\e,AZ\e(B)
  ("u'" ?\e,Az\e(B)
+ ("U^" ?\e,A[\e(B)
  ("u^" ?\e,A{\e(B)
+ ("U\"" ?\e,A\\e(B)
  ("u\"" ?\e,A|\e(B)
-
  ("Y'" ?\e,A]\e(B)
  ("y'" ?\e,A}\e(B)
-
+ ("y\"" ?\e,A\7f\e(B)
  ("D/" ?\e,AP\e(B)
  ("d/" ?\e,Ap\e(B)
-
  ("T/" ?\e,A^\e(B)
  ("t/" ?\e,A~\e(B)
-
  ("s/" ?\e,A_\e(B)
-
  ("C," ?\e,AG\e(B)
  ("c," ?\e,Ag\e(B)
-
  ("N~" ?\e,AQ\e(B)
  ("n~" ?\e,Aq\e(B)
-
  ("?/" ?\e,A?\e(B)
  ("!/" ?\e,A!\e(B)
  ("<<" ?\e,A+\e(B)
- (">>" ?\e,A;\e(B))
+ (">>" ?\e,A;\e(B)
+ ("o_" ?\e,A:\e(B)
+ ("a_" ?\e,A*\e(B)
+ ("//" ?\e,A0\e(B)
+
+ ("A``" ["A`"])
+ ("A''" ["A'"])
+ ("A^^" ["A^"])
+ ("A~~" ["A~"])
+ ("A\"\"" ["A\""])
+ ("A//" ["A/"])
+ ("a``" ["a`"])
+ ("a''" ["a'"])
+ ("a^^" ["a^"])
+ ("a~~" ["a~"])
+ ("a\"\"" ["a\""])
+ ("a//" ["a/"])
+ ("E``" ["E`"])
+ ("E''" ["E'"])
+ ("E^^" ["E^"])
+ ("E\"\"" ["E\""])
+ ("E//" ["E/"])
+ ("e``" ["e`"])
+ ("e''" ["e'"])
+ ("e^^" ["e^"])
+ ("e\"\"" ["e\""])
+ ("e//" ["e/"])
+ ("I``" ["I`"])
+ ("i``" ["i`"])
+ ("I''" ["I'"])
+ ("i''" ["i'"])
+ ("I^^" ["I^"])
+ ("i^^" ["i^"])
+ ("I\"\"" ["I\""])
+ ("i\"\"" ["i\""])
+ ("O``" ["O`"])
+ ("o``" ["o`"])
+ ("O''" ["O'"])
+ ("o''" ["o'"])
+ ("O^^" ["O^"])
+ ("o^^" ["o^"])
+ ("O~~" ["O~"])
+ ("o~~" ["o~"])
+ ("O\"\"" ["O\""])
+ ("o\"\"" ["o\""])
+ ("O//" ["O/"])
+ ("o//" ["o/"])
+ ("U``" ["U`"])
+ ("u``" ["u`"])
+ ("U''" ["U'"])
+ ("u''" ["u'"])
+ ("U^^" ["U^"])
+ ("u^^" ["u^"])
+ ("U\"\"" ["U\""])
+ ("u\"\"" ["u\""])
+ ("Y''" ["Y'"])
+ ("y''" ["y'"])
+ ("y\"\"" ["y\""])
+ ("D//" ["D/"])
+ ("d//" ["d/"])
+ ("T//" ["T/"])
+ ("t//" ["t/"])
+ ("s//" ["s/"])
+ ("C,," ["C,"])
+ ("c,," ["c,"])
+ ("N~~" ["N~"])
+ ("n~~" ["n~"])
+ ("?//" ["?/"])
+ ("!//" ["!/"])
+ ("<<<" ["<<"])
+ (">>>" [">>"])
+ ("o__" ["o_"])
+ ("a__" ["a_"])
+ ("///" ["//"])
+ )
 
 (quail-define-package
  "latin-2-postfix" "Latin-2" "2<" t
- "Latin-2 characters input method with postfix modifiers
+ "Latin-2 character input method with postfix modifiers
 
-    effect   | postfix | examples
+             | postfix | examples
  ------------+---------+----------
-    acute    |    '    | a' -> \e,Ba\e(B
-    ogonek   |    ,    | a, -> \e,B1\e(B
+  acute      |    '    | a' -> \e,Ba\e(B
+  ogonek     |    ,    | a, -> \e,B1\e(B
   diaeresis  |    \"    | a\" -> \e,Bd\e(B
   circumflex |    ^    | a^ -> \e,Bb\e(B
-    breve    |    ~    | a~ -> \e,Bc\e(B
-   cedilla   |    ,    | c, -> \e,Bg\e(B
-    caron    |    ~    | c~ -> \e,Bh\e(B
-  dbl. acute |    ''   | o'' -> \e,Bu\e(B
-     ring    |    .    | u. -> \e,By\e(B
-     dot     |    .    | z. -> \e,B?\e(B
-    stroke   |    /    | d/ -> \e,Bp\e(B
-   special   |    /    | s/ -> \e,B_\e(B
-" nil t)
+  breve      |    ~    | a~ -> \e,Bc\e(B
+  cedilla    |    ,    | c, -> \e,Bg\e(B
+  caron      |    ~    | c~ -> \e,Bh\e(B
+  dbl. acute |    :    | o: -> \e,Bu\e(B
+  ring       |    .    | u. -> \e,By\e(B
+  dot        |    .    | z. -> \e,B?\e(B
+  stroke     |    /    | d/ -> \e,Bp\e(B
+  others     |    /    | s/ -> \e,B_\e(B
+
+Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A'" ?\e,BA\e(B)
  ("N'" ?\e,BQ\e(B)
  ("N~" ?\e,BR\e(B)
  ("O'" ?\e,BS\e(B)
- ("O''" ["\e,BU\e(B" "\e,BS\e(B'"])
+ ("O:" ?\e,BU\e(B)
  ("O\"" ?\e,BV\e(B)
  ("O^" ?\e,BT\e(B)
  ("R'" ?\e,B@\e(B)
  ("T," ?\e,B^\e(B)
  ("T~" ?\e,B+\e(B)
  ("U'" ?\e,BZ\e(B)
- ("U''" ["\e,B[\e(B" "\e,BZ\e(B'"])
+ ("U:" ?\e,B[\e(B)
  ("U\"" ?\e,B\\e(B)
  ("U." ?\e,BY\e(B)
  ("Y'" ?\e,B]\e(B)
  ("n'" ?\e,Bq\e(B)
  ("n~" ?\e,Br\e(B)
  ("o'" ?\e,Bs\e(B)
- ("o''" ["\e,Bu\e(B" "\e,Bs\e(B'"])
+ ("o:" ?\e,Bu\e(B)
  ("o\"" ?\e,Bv\e(B)
  ("o^" ?\e,Bt\e(B)
  ("r'" ?\e,B`\e(B)
  ("t," ?\e,B~\e(B)
  ("t~" ?\e,B;\e(B)
  ("u'" ?\e,Bz\e(B)
- ("u''" ["\e,B{\e(B" "\e,Bz\e(B'"])
+ ("u:" ?\e,B{\e(B)
  ("u\"" ?\e,B|\e(B)
  ("u." ?\e,By\e(B)
  ("y'" ?\e,B}\e(B)
  ("z'" ?\e,B<\e(B)
  ("z." ?\e,B?\e(B)
  ("z~" ?\e,B>\e(B)
+
+ ("A''" ["A'"])
+ ("A,," ["A,"])
+ ("A\"\"" ["A\""])
+ ("A^^" ["A^"])
+ ("A~~" ["A~"])
+ ("C''" ["C'"])
+ ("C,," ["C,"])
+ ("C~~" ["C~"])
+ ("D//" ["D/"])
+ ("D~~" ["D~"])
+ ("E''" ["E'"])
+ ("E,," ["E,"])
+ ("E\"\"" ["E\""])
+ ("E~~" ["E~"])
+ ("I''" ["I'"])
+ ("I^^" ["I^"])
+ ("L''" ["L'"])
+ ("L//" ["L/"])
+ ("L~~" ["L~"])
+ ("N''" ["N'"])
+ ("N~~" ["N~"])
+ ("O''" ["O'"])
+ ("O::" ["O:"])
+ ("O\"\"" ["O\""])
+ ("O^^" ["O^"])
+ ("R''" ["R'"])
+ ("R~~" ["R~"])
+ ("S''" ["S'"])
+ ("S,," ["S,"])
+ ("S~~" ["S~"])
+ ("T,," ["T,"])
+ ("T~~" ["T~"])
+ ("U''" ["U'"])
+ ("U::" ["U:"])
+ ("U\"\"" ["U\""])
+ ("U.." ["U."])
+ ("Y''" ["Y'"])
+ ("Z''" ["Z'"])
+ ("Z.." ["Z."])
+ ("Z~~" ["Z~"])
+ ("a''" ["a'"])
+ ("a,," ["a,"])
+ ("a\"\"" ["a\""])
+ ("a^^" ["a^"])
+ ("a~~" ["a~"])
+ ("c''" ["c'"])
+ ("c,," ["c,"])
+ ("c~~" ["c~"])
+ ("d//" ["d/"])
+ ("d~~" ["d~"])
+ ("e''" ["e'"])
+ ("e,," ["e,"])
+ ("e\"\"" ["e\""])
+ ("e~~" ["e~"])
+ ("i''" ["i'"])
+ ("i^^" ["i^"])
+ ("l''" ["l'"])
+ ("l//" ["l/"])
+ ("l~~" ["l~"])
+ ("n''" ["n'"])
+ ("n~~" ["n~"])
+ ("o''" ["o'"])
+ ("o::" ["o:"])
+ ("o\"\"" ["o\""])
+ ("o^^" ["o^"])
+ ("r''" ["r'"])
+ ("r~~" ["r~"])
+ ("s''" ["s'"])
+ ("s,," ["s,"])
+ ("s//" ["s/"])
+ ("s~~" ["s~"])
+ ("t,," ["t,"])
+ ("t~~" ["t~"])
+ ("u''" ["u'"])
+ ("u::" ["u:"])
+ ("u\"\"" ["u\""])
+ ("u.." ["u."])
+ ("y''" ["y'"])
+ ("z''" ["z'"])
+ ("z.." ["z."])
+ ("z~~" ["z~"])
  )
 
 (quail-define-package
  "latin-3-postfix" "Latin-3" "3<" t
- "Latin-3 characters input method with postfix modifiers
+ "Latin-3 character input method with postfix modifiers
 
-    effect   | postfix | examples
+             | postfix | examples
  ------------+---------+----------
-    acute    |    '    | a' -> \e,Ca\e(B
-    grave    |    `    | a` -> \e,C`\e(B
+  acute      |    '    | a' -> \e,Ca\e(B
+  grave      |    `    | a` -> \e,C`\e(B
   circumflex |    ^    | a^ -> \e,Cb\e(B
   diaeresis  |    \"    | a\" -> \e,Cd\e(B
-     dot     |    .    | c. -> \e,Ce\e(B   i. -> \e,C9\e(B   I. -> \e,C)\e(B
-   cedilla   |    ,    | c, -> \e,Cg\e(B
-    breve    |    ~    | g~ -> \e,C;\e(B
-    tilde    |    ~    | n~ -> \e,Cq\e(B
-   stroke    |    /    | h/ -> \e,C1\e(B
-   special   |    /    | s/ -> \e,C_\e(B
-" nil t)
+  dot        |    .    | c. -> \e,Ce\e(B   i. -> \e,C9\e(B   I. -> \e,C)\e(B
+  cedilla    |    ,    | c, -> \e,Cg\e(B
+  breve      |    ~    | g~ -> \e,C;\e(B
+  tilde      |    ~    | n~ -> \e,Cq\e(B
+  stroke     |    /    | h/ -> \e,C1\e(B
+  others     |    /    | s/ -> \e,C_\e(B
+
+Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A`" ?\e,C@\e(B)
  ("u\"" ?\e,C|\e(B)
  ("u~" ?\e,C}\e(B)
  ("z." ?\e,C?\e(B)
+
+ ("A``" ["A`"])
+ ("A''" ["A'"])
+ ("A^^" ["A^"])
+ ("A\"\"" ["A\""])
+ ("C.." ["C."])
+ ("C^^" ["C^"])
+ ("C,," ["C,"])
+ ("E``" ["E`"])
+ ("E''" ["E'"])
+ ("E^^" ["E^"])
+ ("E\"\"" ["E\""])
+ ("G~~" ["G~"])
+ ("G.." ["G."])
+ ("G^^" ["G^"])
+ ("H//" ["H/"])
+ ("H^^" ["H^"])
+ ("I.." ["I."])
+ ("I``" ["I`"])
+ ("I''" ["I'"])
+ ("I^^" ["I^"])
+ ("I\"\"" ["I\""])
+ ("J^^" ["J^"])
+ ("N~~" ["N~"])
+ ("O``" ["O`"])
+ ("O''" ["O'"])
+ ("O^^" ["O^"])
+ ("O\"\"" ["O\""])
+ ("S,," ["S,"])
+ ("S^^" ["S^"])
+ ("U``" ["U`"])
+ ("U''" ["U'"])
+ ("U^^" ["U^"])
+ ("U\"\"" ["U\""])
+ ("U~~" ["U~"])
+ ("Z.." ["Z."])
+ ("a``" ["a`"])
+ ("a''" ["a'"])
+ ("a^^" ["a^"])
+ ("a\"\"" ["a\""])
+ ("c.." ["c."])
+ ("c^^" ["c^"])
+ ("c,," ["c,"])
+ ("e``" ["e`"])
+ ("e''" ["e'"])
+ ("e^^" ["e^"])
+ ("e\"\"" ["e\""])
+ ("g~~" ["g~"])
+ ("g.." ["g."])
+ ("g^^" ["g^"])
+ ("h//" ["h/"])
+ ("h^^" ["h^"])
+ ("i.." ["i."])
+ ("i``" ["i`"])
+ ("i''" ["i'"])
+ ("i^^" ["i^"])
+ ("i\"\"" ["i\""])
+ ("j^^" ["j^"])
+ ("n~~" ["n~"])
+ ("o``" ["o`"])
+ ("o''" ["o'"])
+ ("o^^" ["o^"])
+ ("o\"\"" ["o\""])
+ ("s,," ["s,"])
+ ("s//" ["s/"])
+ ("s^^" ["s^"])
+ ("u``" ["u`"])
+ ("u''" ["u'"])
+ ("u^^" ["u^"])
+ ("u\"\"" ["u\""])
+ ("u~~" ["u~"])
+ ("z.." ["z."])
  )
 
 (quail-define-package
  "latin-4-postfix" "Latin-4" "4<" t
  "Latin-4 characters input method with postfix modifiers
 
-    effect   | postfix | examples
+             | postfix | examples
  ------------+---------+----------
-    acute    |    '    | a' -> \e,Da\e(B
+  acute      |    '    | a' -> \e,Da\e(B
   circumflex |    ^    | a^ -> \e,Db\e(B
   diaeresis  |    \"    | a\" -> \e,Dd\e(B
-    ogonek   |    ,    | a, -> \e,D1\e(B
-    macron   |    -    | a- -> \e,D`\e(B
-    tilde    |    ~    | a~ -> \e,Dc\e(B
-    caron    |    ~    | c~ -> \e,Dh\e(B
-     dot     |    .    | e. -> \e,Dl\e(B
-   cedilla   |    ,    | k, -> \e,Ds\e(B   g, -> \e,D;\e(B
-   stroke    |    /    | d/ -> \e,Dp\e(B
-   nordic    |    /    | a/ -> \e,De\e(B   e/ -> \e,Df\e(B   o/ -> \e,Dx\e(B
-   special   |    /    | s/ -> \e,D_\e(B   n/ -> \e,D?\e(B   k/ -> \e,D"\e(B
-" nil t)
+  ogonek     |    ,    | a, -> \e,D1\e(B
+  macron     |    -    | a- -> \e,D`\e(B
+  tilde      |    ~    | a~ -> \e,Dc\e(B
+  caron      |    ~    | c~ -> \e,Dh\e(B
+  dot        |    .    | e. -> \e,Dl\e(B
+  cedilla    |    ,    | k, -> \e,Ds\e(B   g, -> \e,D;\e(B
+  stroke     |    /    | d/ -> \e,Dp\e(B
+  nordic     |    /    | a/ -> \e,De\e(B   e/ -> \e,Df\e(B   o/ -> \e,Dx\e(B
+  others     |    /    | s/ -> \e,D_\e(B   n/ -> \e,D?\e(B   k/ -> \e,D"\e(B
+
+Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A," ?\e,D!\e(B)
  ("u~" ?\e,D}\e(B)
  ("u-" ?\e,D~\e(B)
  ("z~" ?\e,D>\e(B)
+
+ ("A,," ["A,"])
+ ("A--" ["A-"])
+ ("A''" ["A'"])
+ ("A^^" ["A^"])
+ ("A~~" ["A~"])
+ ("A\"\"" ["A\""])
+ ("A//" ["A/"])
+ ("C~~" ["C~"])
+ ("D//" ["D/"])
+ ("E//" ["E/"])
+ ("E--" ["E-"])
+ ("E''" ["E'"])
+ ("E,," ["E,"])
+ ("E\"\"" ["E\""])
+ ("E.." ["E."])
+ ("G,," ["G,"])
+ ("I~~" ["I~"])
+ ("I,," ["I,"])
+ ("I''" ["I'"])
+ ("I^^" ["I^"])
+ ("I--" ["I-"])
+ ("K,," ["K,"])
+ ("L,," ["L,"])
+ ("N//" ["N/"])
+ ("N,," ["N,"])
+ ("O--" ["O-"])
+ ("O^^" ["O^"])
+ ("O~~" ["O~"])
+ ("O\"\"" ["O\""])
+ ("O//" ["O/"])
+ ("R,," ["R,"])
+ ("S~~" ["S~"])
+ ("T//" ["T/"])
+ ("U,," ["U,"])
+ ("U''" ["U'"])
+ ("U^^" ["U^"])
+ ("U\"\"" ["U\""])
+ ("U~~" ["U~"])
+ ("U--" ["U-"])
+ ("Z~~" ["Z~"])
+ ("a,," ["a,"])
+ ("a--" ["a-"])
+ ("a''" ["a'"])
+ ("a^^" ["a^"])
+ ("a~~" ["a~"])
+ ("a\"\"" ["a\""])
+ ("a//" ["a/"])
+ ("c~~" ["c~"])
+ ("d//" ["d/"])
+ ("e//" ["e/"])
+ ("e--" ["e-"])
+ ("e''" ["e'"])
+ ("e,," ["e,"])
+ ("e\"\"" ["e\""])
+ ("e.." ["e."])
+ ("g,," ["g,"])
+ ("i~~" ["i~"])
+ ("i,," ["i,"])
+ ("i''" ["i'"])
+ ("i^^" ["i^"])
+ ("i--" ["i-"])
+ ("k//" ["k/"])
+ ("k,," ["k,"])
+ ("l,," ["l,"])
+ ("n//" ["n/"])
+ ("n,," ["n,"])
+ ("o--" ["o-"])
+ ("o^^" ["o^"])
+ ("o~~" ["o~"])
+ ("o\"\"" ["o\""])
+ ("o//" ["o/"])
+ ("r,," ["r,"])
+ ("s//" ["s/"])
+ ("s~~" ["s~"])
+ ("t//" ["t/"])
+ ("u,," ["u,"])
+ ("u''" ["u'"])
+ ("u^^" ["u^"])
+ ("u\"\"" ["u\""])
+ ("u~~" ["u~"])
+ ("u--" ["u-"])
+ ("z~~" ["z~"])
  )
 
 (quail-define-package
  "latin-5-postfix" "Latin-5" "5<" t
  "Latin-5 characters input method with postfix modifiers
 
-    effect   | postfix | examples
+             | postfix | examples
  ------------+---------+----------
-    acute    |    '    | a' -> \e,Ma\e(B
-    grave    |    `    | a` -> \e,M`\e(B
+  acute      |    '    | a' -> \e,Ma\e(B
+  grave      |    `    | a` -> \e,M`\e(B
   circumflex |    ^    | a^ -> \e,Mb\e(B
   diaeresis  |    \"    | a\" -> \e,Md\e(B
-    tilde    |    ~    | a~ -> \e,Mc\e(B
-    breve    |    ~    | g~ -> \e,Mp\e(B
-   cedilla   |    ,    | c, -> \e,Mg\e(B
-     dot     |    .    | i. -> \e,M}\e(B   I. -> \e,M]\e(B
-   nordic    |    /    | a/ -> \e,Me\e(B   e/ -> \e,Mf\e(B   o/ -> \e,Mx\e(B
-   special   |    /    | s/ -> \e,M_\e(B
-" nil t)
+  tilde      |    ~    | a~ -> \e,Mc\e(B
+  breve      |    ~    | g~ -> \e,Mp\e(B
+  cedilla    |    ,    | c, -> \e,Mg\e(B
+  dot        |    .    | i. -> \e,M}\e(B   I. -> \e,M]\e(B
+  nordic     |    /    | a/ -> \e,Me\e(B   e/ -> \e,Mf\e(B   o/ -> \e,Mx\e(B
+  others     |    /    | s/ -> \e,M_\e(B
+
+Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A'" ?\e,MA\e(B)
  ("u^" ?\e,M{\e(B)
  ("u`" ?\e,My\e(B)
  ("y\"" ?\e,M\7f\e(B)
+
+ ("A''" ["A'"])
+ ("A//" ["A/"])
+ ("A\"\"" ["A\""])
+ ("A^^" ["A^"])
+ ("A``" ["A`"])
+ ("A~~" ["A~"])
+ ("C,," ["C,"])
+ ("E''" ["E'"])
+ ("E//" ["E/"])
+ ("E\"\"" ["E\""])
+ ("E^^" ["E^"])
+ ("E``" ["E`"])
+ ("G~~" ["G~"])
+ ("I''" ["I'"])
+ ("I.." ["I."])
+ ("I\"\"" ["I\""])
+ ("I^^" ["I^"])
+ ("I``" ["I`"])
+ ("N~~" ["N~"])
+ ("O''" ["O'"])
+ ("O//" ["O/"])
+ ("O\"\"" ["O\""])
+ ("O^^" ["O^"])
+ ("O``" ["O`"])
+ ("O~~" ["O~"])
+ ("S,," ["S,"])
+ ("U''" ["U'"])
+ ("U\"\"" ["U\""])
+ ("U^^" ["U^"])
+ ("U``" ["U`"])
+ ("a''" ["a'"])
+ ("a//" ["a/"])
+ ("a\"\"" ["a\""])
+ ("a^^" ["a^"])
+ ("a``" ["a`"])
+ ("a~~" ["a~"])
+ ("c,," ["c,"])
+ ("e''" ["e'"])
+ ("e//" ["e/"])
+ ("e\"\"" ["e\""])
+ ("e^^" ["e^"])
+ ("e``" ["e`"])
+ ("g~~" ["g~"])
+ ("i''" ["i'"])
+ ("i.." ["i."])
+ ("i\"\"" ["i\""])
+ ("i^^" ["i^"])
+ ("i``" ["i`"])
+ ("n~~" ["n~"])
+ ("o''" ["o'"])
+ ("o//" ["o/"])
+ ("o\"\"" ["o\""])
+ ("o^^" ["o^"])
+ ("o``" ["o`"])
+ ("o~~" ["o~"])
+ ("s,," ["s,"])
+ ("s//" ["s/"])
+ ("u''" ["u'"])
+ ("u\"\"" ["u\""])
+ ("u^^" ["u^"])
+ ("u``" ["u`"])
+ ("y\"\"" ["y\""])
  )
 
 (quail-define-package
  "danish-postfix" "Latin-1" "DA<" t
- "Danish input method (rule: AE -> \e,AF\e(B, OE -> \e,AX\e(B, AA -> \e,AE\e(B, E' -> \e,AI\e(B)"
- nil t)
+ "Danish input method (rule: AE -> \e,AF\e(B, OE -> \e,AX\e(B, AA -> \e,AE\e(B, E' -> \e,AI\e(B)
+
+Doubling the postfix separates the letter and postfix: e.g. aee -> ae
+"
+ nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("AE" ?\e,AF\e(B)
  ("ae" ?\e,Af\e(B)
-
  ("OE" ?\e,AX\e(B)
  ("oe" ?\e,Ax\e(B)
-
  ("AA" ?\e,AE\e(B)
  ("aa" ?\e,Ae\e(B)
-
  ("E'" ?\e,AI\e(B)
  ("e'" ?\e,Ai\e(B)
+
+ ("AEE" ["AE"])
+ ("aee" ["ae"])
+ ("OEE" ["OE"])
+ ("oee" ["oe"])
+ ("AAA" ["AA"])
+ ("aaa" ["aa"])
+ ("E''" ["E'"])
+ ("e''" ["e'"])
  )
 
 (quail-define-package
  "esperanto-postfix" "Latin-3" "EO<" t
  "Esperanto input method with postfix modifiers
 
-Preceding ^ or following x will produce accented characters,
-e.g. ^C -> \e,CF\e(B, Gx -> \e,CX\e(B.
-" nil t)
+A following ^ or x will produce an accented character,
+e.g. c^ -> \e,Cf\e(B   gx -> \e,Cx\e(B   u^ -> \e,C}\e(B.
+
+Doubling the postfix separates the letter and postfix,
+e.g. a'' -> a'.
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("Cx" ?\e,CF\e(B)
- ("^C" ?\e,CF\e(B)
+ ("C^" ?\e,CF\e(B)
  ("cx" ?\e,Cf\e(B)
- ("^c" ?\e,Cf\e(B)
-
+ ("c^" ?\e,Cf\e(B)
  ("Gx" ?\e,CX\e(B)
- ("^G" ?\e,CX\e(B)
+ ("G^" ?\e,CX\e(B)
  ("gx" ?\e,Cx\e(B)
- ("^g" ?\e,Cx\e(B)
-
+ ("g^" ?\e,Cx\e(B)
  ("Hx" ?\e,C&\e(B)
- ("^H" ?\e,C&\e(B)
+ ("H^" ?\e,C&\e(B)
  ("hx" ?\e,C6\e(B)
- ("^h" ?\e,C6\e(B)
-
+ ("h^" ?\e,C6\e(B)
  ("Jx" ?\e,C,\e(B)
- ("^J" ?\e,C,\e(B)
+ ("J^" ?\e,C,\e(B)
  ("jx" ?\e,C<\e(B)
- ("^j" ?\e,C<\e(B)
-
+ ("j^" ?\e,C<\e(B)
  ("Sx" ?\e,C^\e(B)
- ("^S" ?\e,C^\e(B)
+ ("S^" ?\e,C^\e(B)
  ("sx" ?\e,C~\e(B)
- ("^s" ?\e,C~\e(B)
-
+ ("s^" ?\e,C~\e(B)
  ("Ux" ?\e,C]\e(B)
- ("^U" ?\e,C]\e(B)
- ("~U" ?\e,C]\e(B)
+ ("U^" ?\e,C]\e(B)
  ("ux" ?\e,C}\e(B)
- ("^u" ?\e,C}\e(B)
- ("~u" ?\e,C}\e(B)
+ ("u^" ?\e,C}\e(B)
+
+ ("Cxx" ["Cx"])
+ ("C^^" ["C^"])
+ ("cxx" ["cx"])
+ ("c^^" ["c^"])
+ ("Gxx" ["Gx"])
+ ("G^^" ["G^"])
+ ("gxx" ["gx"])
+ ("g^^" ["g^"])
+ ("Hxx" ["Hx"])
+ ("H^^" ["H^"])
+ ("hxx" ["hx"])
+ ("h^^" ["h^"])
+ ("Jxx" ["Jx"])
+ ("J^^" ["J^"])
+ ("jxx" ["jx"])
+ ("j^^" ["j^"])
+ ("Sxx" ["Sx"])
+ ("S^^" ["S^"])
+ ("sxx" ["sx"])
+ ("s^^" ["s^"])
+ ("Uxx" ["Ux"])
+ ("U^^" ["U^"])
+ ("uxx" ["ux"])
+ ("u^^" ["u^"])
  )
 
 (quail-define-package
  "finnish-postfix" "Latin-1" "FI<" t
- "Finnish (Suomi) input method (rule: AE -> \e,AD\e(B, OE -> \e,AV\e(B)"
- nil t)
+ "Finnish (Suomi) input method
+
+AE  -> \e,AD\e(B
+AEE -> AE
+OE  -> \e,AV\e(B
+OEE -> OE
+"
+ nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("AE" ?\e,AD\e(B)
  ("ae" ?\e,Ad\e(B)
-
  ("OE" ?\e,AV\e(B)
  ("oe" ?\e,Av\e(B)
+
+ ("AEE" ["AE"])
+ ("aee" ["ae"])
+ ("OEE" ["OE"])
+ ("oee" ["oe"])
  )
 
 (quail-define-package
@@ -583,19 +998,21 @@ e.g. ^C -> \e,CF\e(B, Gx -> \e,CX\e(B.
  "French (Fran\e,Ag\e(Bais) input method with postfix modifiers
 
 ` pour grave, ' pour aigu, ^ pour circonflexe, et \" pour tr\e,Ai\e(Bma.
-Par exemple A` -> \e,A@\e(B, E' -> \e,AI\e(B.
+Par exemple: a` -> \e,A`\e(B   e' -> \e,Ai\e(B.
 
-\e,AG\e(B, \e,A+\e(B, et \e,A;\e(B sont produits par C/, <<, et >>.
+\e,AG\e(B, \e,A+\e(B, et \e,A;\e(B sont produits par C,, <<, et >>.
+
+En doublant la frappe des diacritiques, ils s'isoleront de la lettre.
+Par exemple: e'' -> e'
 
 <e dans l'o> n'est pas disponible."
- nil t)
+ nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A`" ?\e,A@\e(B)
  ("A^" ?\e,AB\e(B)
  ("a`" ?\e,A`\e(B)
  ("a^" ?\e,Ab\e(B)
-
  ("E`" ?\e,AH\e(B)
  ("E'" ?\e,AI\e(B)
  ("E^" ?\e,AJ\e(B)
@@ -604,48 +1021,84 @@ Par exemple A` -> \e,A@\e(B, E' -> \e,AI\e(B.
  ("e'" ?\e,Ai\e(B)
  ("e^" ?\e,Aj\e(B)
  ("e\"" ?\e,Ak\e(B)
-
  ("I^" ?\e,AN\e(B)
  ("I\"" ?\e,AO\e(B)
  ("i^" ?\e,An\e(B)
  ("i\"" ?\e,Ao\e(B)
-
  ("O^" ?\e,AT\e(B)
  ("o^" ?\e,At\e(B)
-
  ("U`" ?\e,AY\e(B)
  ("U^" ?\e,A[\e(B)
  ("U\"" ?\e,A\\e(B)
  ("u`" ?\e,Ay\e(B)
  ("u^" ?\e,A{\e(B)
  ("u\"" ?\e,A|\e(B)
-
- ("C/" ?\e,AG\e(B)
- ("c/" ?\e,Ag\e(B)
-
+ ("C," ?\e,AG\e(B)
+ ("c," ?\e,Ag\e(B)
  ("<<" ?\e,A+\e(B)
  (">>" ?\e,A;\e(B)
+
+ ("A``" ["A`"])
+ ("A^^" ["A^"])
+ ("a``" ["a`"])
+ ("a^^" ["a^"])
+ ("E``" ["E`"])
+ ("E''" ["E'"])
+ ("E^^" ["E^"])
+ ("E\"\"" ["E\""])
+ ("e``" ["e`"])
+ ("e''" ["e'"])
+ ("e^^" ["e^"])
+ ("e\"\"" ["e\""])
+ ("I^^" ["I^"])
+ ("I\"\"" ["I\""])
+ ("i^^" ["i^"])
+ ("i\"\"" ["i\""])
+ ("O^^" ["O^"])
+ ("o^^" ["o^"])
+ ("U``" ["U`"])
+ ("U^^" ["U^"])
+ ("U\"\"" ["U\""])
+ ("u``" ["u`"])
+ ("u^^" ["u^"])
+ ("u\"\"" ["u\""])
+ ("C,," ["C,"])
+ ("c,," ["c,"])
+ ("<<<" ["<<"])
+ (">>>" [">>"])
  )
 
 (quail-define-package
  "german-postfix" "Latin-1" "DE<" t
- "German (Deutsch) input method (rule: AE -> \e,AD\e(B, OE -> \e,AV\e(B, UE -> \e,A\\e(B, sz -> \e,A_\e(B)
-
-\e,A_\e(B can also be input by 'ss' followed by M-n."
- nil t)
+ "German (Deutsch) input method
+
+ae  -> \e,Ad\e(B
+aee -> ae
+oe  -> \e,Av\e(B
+oee -> oe
+ue  -> \e,A|\e(B
+uee -> ue
+sz  -> \e,A_\e(B
+szz -> sz
+"
+ nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("AE" ?\e,AD\e(B)
  ("ae" ?\e,Ad\e(B)
-
  ("OE" ?\e,AV\e(B)
  ("oe" ?\e,Av\e(B)
-
  ("UE" ?\e,A\\e(B)
  ("ue" ?\e,A|\e(B)
-
  ("sz" ?\e,A_\e(B)
- ("ss" ["ss" ?\e,A_\e(B])
+
+ ("AEE" ["AE"])
+ ("aee" ["ae"])
+ ("OEE" ["OE"])
+ ("oee" ["oe"])
+ ("UEE" ["UE"])
+ ("uee" ["ue"])
+ ("szz" ["sz"])
  )
 
 (quail-define-package
@@ -661,110 +1114,176 @@ Y' -> \e,A]\e(B
 AE -> \e,AF\e(B
 OE -> \e,AV\e(B
 D/ -> \e,AP\e(B (eth)
-T/ -> \e,A^\e(B (thorn)"
- nil t)
+T/ -> \e,A^\e(B (thorn)
+
+Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A'" ?\e,AA\e(B)
  ("a'" ?\e,Aa\e(B)
-
  ("E'" ?\e,AI\e(B)
  ("e'" ?\e,Ai\e(B)
-
  ("I'" ?\e,AM\e(B)
  ("i'" ?\e,Am\e(B)
-
  ("O'" ?\e,AS\e(B)
  ("o'" ?\e,As\e(B)
-
  ("U'" ?\e,AZ\e(B)
  ("u'" ?\e,Az\e(B)
-
  ("Y'" ?\e,A]\e(B)
  ("y'" ?\e,A}\e(B)
-
  ("AE" ?\e,AF\e(B)
  ("ae" ?\e,Af\e(B)
-
  ("OE" ?\e,AV\e(B)
  ("oe" ?\e,Av\e(B)
-
  ("D/" ?\e,AP\e(B)
  ("d/" ?\e,Ap\e(B)
-
  ("T/" ?\e,A^\e(B)
  ("t/" ?\e,A~\e(B)
+
+ ("A''" ["A'"])
+ ("a''" ["a'"])
+ ("E''" ["E'"])
+ ("e''" ["e'"])
+ ("I''" ["I'"])
+ ("i''" ["i'"])
+ ("O''" ["O'"])
+ ("o''" ["o'"])
+ ("U''" ["U'"])
+ ("u''" ["u'"])
+ ("Y''" ["Y'"])
+ ("y''" ["y'"])
+ ("AEE" ["AE"])
+ ("aee" ["ae"])
+ ("OEE" ["OE"])
+ ("oee" ["oe"])
+ ("D//" ["D/"])
+ ("d//" ["d/"])
+ ("T//" ["T/"])
+ ("t//" ["t/"])
  )
 
 (quail-define-package
  "italian-postfix" "Latin-1" "IT<" t
  "Italian (Italiano) input method with postfix modifiers
 
-A` -> \e,A@\e(B
-E` -> \e,AH\e(B
-I` -> \e,AL\e(B
-O` -> \e,AR\e(B
-U` -> \e,AY\e(B
-" nil t)
+a` -> \e,A`\e(B    A` -> \e,A@\e(B    e' -> \e,Ai\e(B    << -> \e,A+\e(B
+e` -> \e,Ah\e(B    E` -> \e,AH\e(B    E' -> \e,AI\e(B    >> -> \e,A;\e(B
+i` -> \e,Al\e(B    I` -> \e,AL\e(B               o_ -> \e,A:\e(B
+o` -> \e,Ar\e(B    O` -> \e,AR\e(B               a_ -> \e,A*\e(B
+u` -> \e,Ay\e(B    U` -> \e,AY\e(B
+
+Typewriter-style italian characters.
+
+Doubling the postfix separates the letter and postfix: e.g. a`` -> a`
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A`" ?\e,A@\e(B)
  ("a`" ?\e,A`\e(B)
-
  ("E`" ?\e,AH\e(B)
+ ("E'" ?\e,AI\e(B)
  ("e`" ?\e,Ah\e(B)
-
+ ("e'" ?\e,Ai\e(B)
  ("I`" ?\e,AL\e(B)
  ("i`" ?\e,Al\e(B)
-
  ("O`" ?\e,AR\e(B)
  ("o`" ?\e,Ar\e(B)
-
  ("U`" ?\e,AY\e(B)
  ("u`" ?\e,Ay\e(B)
+ ("<<" ?\e,A+\e(B)
+ (">>" ?\e,A;\e(B)
+ ("o_" ?\e,A:\e(B)
+ ("a_" ?\e,A*\e(B)
+
+ ("A``" ["A`"])
+ ("a``" ["a`"])
+ ("E``" ["E`"])
+ ("E''" ["E'"])
+ ("e``" ["e`"])
+ ("e''" ["e'"])
+ ("I``" ["I`"])
+ ("i``" ["i`"])
+ ("O``" ["O`"])
+ ("o``" ["o`"])
+ ("U``" ["U`"])
+ ("u``" ["u`"])
+ ("<<<" ["<<"])
+ (">>>" [">>"])
+ ("o__" ["o_"])
+ ("a__" ["a_"])
  )
 
 (quail-define-package
  "norwegian-postfix" "Latin-1" "NO<" t
- "Norwegian (Norsk) input method (rule: AE->\e,AF\e(B, OE->\e,AX\e(B, AA->\e,AE\e(B, E'->\e,AI\e(B)"
- nil t)
+ "Norwegian (Norsk) input method (rule: AE->\e,AF\e(B   OE->\e,AX\e(B   AA->\e,AE\e(B   E'->\e,AI\e(B)
+
+Doubling the postfix separates the letter and postfix: e.g. aee -> ae
+"
+ nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("AE" ?\e,AF\e(B)
  ("ae" ?\e,Af\e(B)
-
  ("OE" ?\e,AX\e(B)
  ("oe" ?\e,Ax\e(B)
-
  ("AA" ?\e,AE\e(B)
  ("aa" ?\e,Ae\e(B)
-
  ("E'" ?\e,AI\e(B)
  ("e'" ?\e,Ai\e(B)
+
+ ("AEE" ["AE"])
+ ("aee" ["ae"])
+ ("OEE" ["OE"])
+ ("oee" ["oe"])
+ ("AAA" ["AA"])
+ ("aaa" ["aa"])
+ ("E''" ["E'"])
+ ("e''" ["e'"])
  )
 
 (quail-define-package
  "scandinavian-postfix" "Latin-1" "SC<" t
- "Scandinavian input method (rule: AE->\e,AD\e(B/\e,AF\e(B, OE->\e,AV\e(B/\e,AX\e(B, AA->\e,AE\e(B, E'->\e,AI\e(B)
-
+ "Scandinavian input method with postfix modifiers
 Supported languages are Swidish, Norwegian, Danish, and Finnish.
 
-You can toggle between \e,AD\e(B and \e,AF\e(B, or between OE and \e,AV\e(B, by typing M-n
-when the character is underlined.
-" nil)
+ae -> \e,Af\e(B
+oe -> \e,Ax\e(B
+aa -> \e,Ae\e(B
+a\" -> \e,Ad\e(B
+o\" -> \e,Av\e(B
+e' -> \e,Ai\e(B
 
-(quail-define-rules
- ("AE" [?\e,AD\e(B ?\e,AF\e(B])
- ("ae" [?\e,Ad\e(B ?\e,Af\e(B])
+Doubling the postfix separates the letter and postfix:
+aee -> ae   o\"\" -> o\"   etc.
+" nil t nil nil nil nil nil nil nil nil t)
 
+(quail-define-rules
+ ("AE" ?\e,AF\e(B)
+ ("ae" ?\e,Af\e(B)
+ ("OE" ?\e,AX\e(B)
+ ("oe" ?\e,Ax\e(B)
  ("AA" ?\e,AE\e(B)
  ("aa" ?\e,Ae\e(B)
-
- ("OE" [?\e,AV\e(B ?\e,AX\e(B])
- ("oe" [?\e,Av\e(B ?\e,Ax\e(B])
-
+ ("A\"" ?\e,AD\e(B)
+ ("a\"" ?\e,Ad\e(B)
+ ("O\"" ?\e,AV\e(B)
+ ("o\"" ?\e,Av\e(B)
  ("E'" ?\e,AI\e(B)
  ("e'" ?\e,Ai\e(B)
+
+ ("AEE" ["AE"])
+ ("aee" ["ae"])
+ ("OEE" ["OE"])
+ ("oee" ["oe"])
+ ("AAA" ["AA"])
+ ("aaa" ["aa"])
+ ("A\"\"" ["A\""])
+ ("a\"\"" ["a\""])
+ ("O\"\"" ["O\""])
+ ("o\"\"" ["o\""])
+ ("E''" ["E'"])
+ ("e''" ["e'"])
  )
 
 (quail-define-package
@@ -779,99 +1298,203 @@ U' -> \e,AZ\e(B
 N~ -> \e,AQ\e(B
 !/ -> \e,A!\e(B
 ?/ -> \e,A?\e(B
-" nil t)
+
+Doubling the postfix separates the letter and postfix:
+a'' -> a'   n~~ -> n~, etc.
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A'" ?\e,AA\e(B)
  ("a'" ?\e,Aa\e(B)
-
  ("E'" ?\e,AI\e(B)
  ("e'" ?\e,Ai\e(B)
-
  ("I'" ?\e,AM\e(B)
  ("i'" ?\e,Am\e(B)
-
  ("O'" ?\e,AS\e(B)
  ("o'" ?\e,As\e(B)
-
  ("U'" ?\e,AZ\e(B)
  ("u'" ?\e,Az\e(B)
-
+ ("U\"" ?\e,C\\e(B)
+ ("u\"" ?\e,C|\e(B)
  ("N~" ?\e,AQ\e(B)
  ("n~" ?\e,Aq\e(B)
-
  ("?/" ?\e,A?\e(B)
  ("!/" ?\e,A!\e(B)
+
+ ("A''" ["A'"])
+ ("a''" ["a'"])
+ ("E''" ["E'"])
+ ("e''" ["e'"])
+ ("I''" ["I'"])
+ ("i''" ["i'"])
+ ("O''" ["O'"])
+ ("o''" ["o'"])
+ ("U''" ["U'"])
+ ("u''" ["u'"])
+ ("U\"" ["U\""])
+ ("u\"" ["U\""])
+ ("N~~" ["N~"])
+ ("n~~" ["n~"])
+ ("?//" ["?/"])
+ ("!//" ["!/"])
  )
 
 (quail-define-package
  "swedish-postfix" "Latin-1" "SV<" t
- "Swedish (Svenska) input method (rule: AA -> \e,AE\e(B, AE -> \e,AD\e(B, OE -> \e,AV\e(B, E' -> \e,AI\e(B)"
- nil t)
+ "Swedish (Svenska) input method (rule: AA -> \e,AE\e(B   AE -> \e,AD\e(B   OE -> \e,AV\e(B   E' -> \e,AI\e(B)
+
+Doubling the postfix separates the letter and postfix: e.g. aee -> ae
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("AA" ?\e,AE\e(B)
  ("aa" ?\e,Ae\e(B)
-
  ("AE" ?\e,AD\e(B)
  ("ae" ?\e,Ad\e(B)
-
  ("OE" ?\e,AV\e(B)
  ("oe" ?\e,Av\e(B)
-
  ("E'" ?\e,AI\e(B)
  ("e'" ?\e,Ai\e(B)
+
+ ("AAA" ["AA"])
+ ("aaa" ["aa"])
+ ("AEE" ["AE"])
+ ("aee" ["ae"])
+ ("OEE" ["OE"])
+ ("oee" ["oe"])
+ ("E''" ["E'"])
+ ("e''" ["e'"])
  )
 
 (quail-define-package
- "turkish-postfix" "Latin-3" "TR<" t
- "Turkish (T\e,C|\e(Brk\e,Cg\e(Be) input method with postfix modifiers
+ "turkish-latin-3-postfix" "Latin-3" "TR3<" t
+ "Turkish (T\e,C|\e(Brk\e,Cg\e(Be) input method with postfix modifiers.
+
+This is for those who use Latin-3 (ISO-8859-3) for Turkish.  If you
+use Latin-5 (ISO-8859-9), you should use \"turkish-postfix\" instead.
 
 Note for I, \e,C9\e(B, \e,C)\e(B, i.
 
 A^ -> \e,CB\e(B
-C/ -> \e,CG\e(B
+C, -> \e,CG\e(B
 G^ -> \e,C+\e(B
 I  -> I
 i  -> \e,C9\e(B
-I' -> \e,C)\e(B
-i' -> i
+I. -> \e,C)\e(B
+i. -> i
 O\" -> \e,CV\e(B
-S/ -> \e,C*\e(B
+S, -> \e,C*\e(B
 U\" -> \e,C\\e(B
 U^ -> \e,C[\e(B
-" nil t)
+
+Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
+" nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A^" ?\e,CB\e(B)
  ("a^" ?\e,Cb\e(B)
-
- ("C/" ?\e,CG\e(B)
- ("c/" ?\e,Cg\e(B)
-
+ ("C," ?\e,CG\e(B)
+ ("c," ?\e,Cg\e(B)
  ("G^" ?\e,C+\e(B)
  ("g^" ?\e,C;\e(B)
-
- ("I'" ?\e,C)\e(B)
+ ("I." ?\e,C)\e(B)
  ("i" ?\e,C9\e(B)
- ("i'" ?i)
-
+ ("i." ?i)
  ("O\"" ?\e,CV\e(B)
  ("o\"" ?\e,Cv\e(B)
-
- ("S/" ?\e,C*\e(B)
- ("s/" ?\e,C:\e(B)
-
+ ("S," ?\e,C*\e(B)
+ ("s," ?\e,C:\e(B)
  ("U\"" ?\e,C\\e(B)
  ("u\"" ?\e,C|\e(B)
  ("U^" ?\e,C[\e(B)
  ("u^" ?\e,C{\e(B)
+
+ ("A^^" ["A^"])
+ ("a^^" ["a^"])
+ ("C,," ["C,"])
+ ("c,," ["c,"])
+ ("G^^" ["G^"])
+ ("g^^" ["g^"])
+ ("I.." ["I."])
+ ("i" ["i"])
+ ("i.." ["i."])
+ ("O\"\"" ["O\""])
+ ("o\"\"" ["o\""])
+ ("S,," ["S,"])
+ ("s,," ["s,"])
+ ("U\"\"" ["U\""])
+ ("u\"\"" ["u\""])
+ ("U^^" ["U^"])
+ ("u^^" ["u^"])
+ )
+
+(quail-define-package
+ "turkish-postfix" "Latin-5" "TR<" t
+ "Turkish (T\e,M|\e(Brk\e,Mg\e(Be) input method with postfix modifiers.
+
+This is for those who use Latin-5 (ISO-8859-9) for Turkish.  If you
+use Latin-3 (ISO-8859-3), you should use \"turkish-latin-3-postfix\"
+instead.
+
+Note for I, \e,M}\e(B, \e,M]\e(B, i.
+
+A^ -> \e,MB\e(B
+C, -> \e,MG\e(B
+G^ -> \e,MP\e(B
+I  -> I
+i  -> \e,M}\e(B
+I. -> \e,M]\e(B
+i. -> i
+O\" -> \e,MV\e(B
+S, -> \e,M^\e(B
+U\" -> \e,M\\e(B
+U^ -> \e,M[\e(B
+
+Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
+" nil t nil nil nil nil nil nil nil nil t)
+
+(quail-define-rules
+ ("A^" ?\e,MB\e(B)
+ ("a^" ?\e,Mb\e(B)
+ ("C," ?\e,MG\e(B)
+ ("c," ?\e,Mg\e(B)
+ ("G^" ?\e,MP\e(B)
+ ("g^" ?\e,Mp\e(B)
+ ("I." ?\e,M]\e(B)
+ ("i" ?\e,M}\e(B)
+ ("i." ?i)
+ ("O\"" ?\e,MV\e(B)
+ ("o\"" ?\e,Mv\e(B)
+ ("S," ?\e,M^\e(B)
+ ("s," ?\e,M~\e(B)
+ ("U\"" ?\e,M\\e(B)
+ ("u\"" ?\e,M|\e(B)
+ ("U^" ?\e,M[\e(B)
+ ("u^" ?\e,M{\e(B)
+
+ ("A^^" ["A^"])
+ ("a^^" ["a^"])
+ ("C,," ["C,"])
+ ("c,," ["c,"])
+ ("G^^" ["G^"])
+ ("g^^" ["g^"])
+ ("I.." ["I."])
+ ("i" ["i"])
+ ("i.." ["i."])
+ ("O\"\"" ["O\""])
+ ("o\"\"" ["o\""])
+ ("S,," ["S,"])
+ ("s,," ["s,"])
+ ("U\"\"" ["U\""])
+ ("u\"\"" ["u\""])
+ ("U^^" ["U^"])
+ ("u^^" ["u^"])
  )
 
 (quail-define-package
  "british" "Latin-1" "\e,A#\e(B@" t
  "British English input method with Latin-1 character \e,A#\e(B (# -> \e,A#\e(B)"
- nil t)
+ nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("#" [?\e,A#\e(B ?#])
@@ -899,7 +1522,7 @@ U^ -> \e,C[\e(B
 (quail-define-package
  "french-keyboard" "Latin-1" "FR@" t
  "French (Fran\e,Ag\e(Bais) input method simulating some French keyboard
-<e dans l'o> n'est pas disponible." nil t t t t)
+<e dans l'o> n'est pas disponible." nil t t t t nil nil nil nil nil t)
 
 ;; \e,Aj\e(B1  \e,Ai\e(B2  \e,Ah\e(B3  \e,At\e(B4  \e,An\e(B5  \e,Ao\e(B6  \e,Ab\e(B7  \e,A{\e(B8  \e,Ay\e(B9  \e,A`\e(B0  -_  \e,Ak\e(B+  `~
 ;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AgG\e(B  \e,A|\e(B&
@@ -944,7 +1567,7 @@ U^ -> \e,C[\e(B
 
 Similaire au clavier fran\e,Ag\e(Bais de SUN.
 pr\e,Ai\e(Bfixes:  ^ pour circonflexe,  \e,A(\e(B pour tr\e,Ai\e(Bma.
-<e dans l'o> n'est pas disponible." nil t t t t)
+<e dans l'o> n'est pas disponible." nil t t t t nil nil nil nil nil t)
 
 ;; &1  \e,Ai\e(B2  "3  '4  (5  \e,A'\e(B6  \e,Ah\e(B7  !8  \e,Ag\e(B9  \e,A`\e(B0  )\e,A0\e(B -_  @~
 ;;  aA  zZ  eE  rR  tT  yY  uU  iI  oO  pP  ^\e,A(\e(B  `$
@@ -1057,6 +1680,9 @@ pr\e,Ai\e(Bfixes:  ^ pour circonflexe,  \e,A(\e(B pour tr\e,Ai\e(Bma.
  ("{e" ?\e,Ak\e(B)
  ("{i" ?\e,Ao\e(B)
  ("{u" ?\e,A|\e(B)
+
+ ("[[" ?^)
+ ("{{" ?\e,A(\e(B)
  )
 
 ;;
@@ -1064,7 +1690,7 @@ pr\e,Ai\e(Bfixes:  ^ pour circonflexe,  \e,A(\e(B pour tr\e,Ai\e(Bma.
  "icelandic-keyboard" "Latin-1" "IS@" t
  "Icelandic (\e,AM\e(Bslenska) input method simulating some Icelandic keyboard
 
-Dead accent is right to \e,Af\e(B." nil t t t t)
+Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2"  3#  4$  5%  6^  7&  8*  9(  0)  \e,AvV\e(B  -_  `~
 ;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,ApP\e(B  '?
@@ -1105,13 +1731,15 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
  ("'O" ?\e,AS\e(B)
  ("'U" ?\e,AZ\e(B)
  ("'Y" ?\e,A]\e(B)
+
+ ("''" ?\e,A4\e(B)
  )
 
 ;;
 (quail-define-package
  "danish-keyboard" "Latin-1" "DA@" t
  "Danish input method simulating SUN Danish keyboard"
- nil t t t t)
+ nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2"  3#  4\e,A$\e(B  5%  6&  7/  8(  9)  0=  +?  \e,A='\e(B  ~^
 ;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AeE\e(B  \e,AiI\e(B
@@ -1153,7 +1781,7 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
 (quail-define-package
  "norwegian-keyboard" "Latin-1" "NO@" t
  "Norwegian (Norsk) input method simulating SUN Norwegian keyboard"
- nil t t t t)
+ nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2"  3#  4\e,A$\e(B  5%  6&  7/  8(  9)  0=  +?  |\e,A'\e(B  ~^
 ;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AeE\e(B  \e,AiI\e(B
@@ -1196,7 +1824,7 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
 (quail-define-package
  "swedish-keyboard" "Latin-1" "SV@" t
  "Swedish (Svenska) input method simulating SUN Swedish/Finnish keyboard"
- nil t t t t)
+ nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2"  3#  4\e,A$\e(B  5%  6&  7/  8(  9)  0=  +?  \e,A'=\e(B  ~^
 ;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AeE\e(B  \e,AiI\e(B
@@ -1238,7 +1866,7 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
 (quail-define-package
  "finish-keyboard" "Latin-1" "FI@" t
  "Finish input method simulating SUN Finnish/Swedish keyboard"
- nil t t t t)
+ nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2"  3#  4\e,A$\e(B  5%  6&  7/  8(  9)  0=  +?  \e,A'=\e(B  ~^
 ;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AeE\e(B  \e,AiI\e(B
@@ -1280,7 +1908,7 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
 (quail-define-package
  "german" "Latin-1" "DE@" t
  "German (Deutsch) input method simulating SUN German keyboard"
- nil t t t t)
+ nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2"  3\e,A'\e(B  4$  5%  6&  7/  8(  9)  0=  \e,A_\e(B?  [{  ]}
 ;;  qQ  wW  eE  rR  tT  zZ  uU  iI  oO  pP  \e,A|\\e(B  +*
@@ -1291,11 +1919,13 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
  ("-" ?\e,A_\e(B)
  ("=" ?\[)
  ("`" ?\])
+ ("y" ?z)
  ("[" ?\e,A|\e(B)
  ("]" ?+)
  (";" ?\e,Av\e(B)
  ("'" ?\e,Ad\e(B)
  ("\\" ?#)
+ ("z" ?y)
  ("/" ?-)
 
  ("@" ?\")
@@ -1303,6 +1933,7 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
  ("^" ?&)
  ("&" ?/)
  ("*" ?\()
+ ("Y" ?Z)
  ("(" ?\))
  (")" ?=)
  ("_" ??)
@@ -1313,6 +1944,7 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
  (":" ?\e,AV\e(B)
  ("\"" ?\e,AD\e(B)
  ("|" ?^)
+ ("Z" ?Y)
  ("<" ?\;)
  (">" ?:)
  ("?" ?_)
@@ -1322,7 +1954,7 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
 (quail-define-package
  "italian-keyboard" "Latin-1" "IT@" t
  "Italian (Italiano) input method simulating SUN Italian keyboard"
- nil t t t t)
+ nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2"  3\e,A#\e(B  4$  5%  6&  7/  8(  9)  0=  '?  \e,Al\e(B^  `~
 ;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,Ahi\e(B  +*
@@ -1363,7 +1995,7 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
 (quail-define-package
  "spanish-keyboard" "Latin-1" "ES@" t
  "Spanish (Espa\e,Aq\e(Bol) input method simulating SUN Spanish keyboard"
- nil t t t t)
+ nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2"  3\e,A7\e(B  4$  5%  6&  7/  8(  9)  0=  '?  \e,A!?\e(B  \e,AmM\e(B
 ;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AiI\e(B  \e,AsS\e(B
@@ -1405,7 +2037,7 @@ Dead accent is right to \e,Af\e(B." nil t t t t)
 (quail-define-package
  "english-dvorak" "English" "DV@" t
  "English (ASCII) input method simulating Dvorak keyboard"
- nil t t t t)
+ nil t t t t nil nil nil nil nil t)
 
 ;; 1!  2@  3#  4$  5%  6^  7&  8*  9(  0)  [{  ]}  `~
 ;;  '"  ,<  .>  pP  yY  fF  gG  cC  rR  lL  /?  =+