I noticed the Turkish input method wasn’t working for dotless i, and this
patch resulted. There are lots of problems still with duplicate entries for
East Asian input methods.
APPROVE COMMIT LEIM
NOTE: This patch has been committed.
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1375550327 -3600
# Node ID 258fdebd51edbcc65aa14891a18e34d1af50037f
# Parent 7f33a75296ac97e9d0eecbb76907bf32cb43477f
Warn about duplicate rules, quail; remove many of same from input methods.
ChangeLog addition;
2013-08-03 Aidan Kehoe <kehoea(a)parhasard.net>
* quail.el (quail-define-rules):
Check for duplicate rules, warn about same.
GNU silently merges such rules, but XEmacs doesn't, and this is
saner behaviour, it's easier to miss identical rules textually far
away when reading the code.
* quail.el (quail-install-map):
Backslash a parenthesis for the sake of fontification.
* quail/latin-post.el:
Merge duplicates explicitly in latin-1-postfix, spanish-postfix,
turkish-latin-3-postfix, turkish-postfix, and latin-postfix.
Rewrite the code generation for latin-postfix to do more at
compile time, and to check for duplicates and warn.
diff -r 7f33a75296ac -r 258fdebd51ed ChangeLog
--- a/ChangeLog Mon Sep 12 17:59:27 2011 +0100
+++ b/ChangeLog Sat Aug 03 18:18:47 2013 +0100
@@ -1,3 +1,18 @@
+2013-08-03 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * quail.el (quail-define-rules):
+ Check for duplicate rules, warn about same.
+ GNU silently merges such rules, but XEmacs doesn't, and this is
+ saner behaviour, it's easier to miss identical rules textually far
+ away when reading the code.
+ * quail.el (quail-install-map):
+ Backslash a parenthesis for the sake of fontification.
+ * quail/latin-post.el:
+ Merge duplicates explicitly in latin-1-postfix, spanish-postfix,
+ turkish-latin-3-postfix, turkish-postfix, and latin-postfix.
+ Rewrite the code generation for latin-postfix to do more at
+ compile time, and to check for duplicates and warn.
+
2011-06-18 Aidan Kehoe <kehoea(a)parhasard.net>
* leim-list.el: Update to reflect new input method names.
diff -r 7f33a75296ac -r 258fdebd51ed quail.el
--- a/quail.el Mon Sep 12 17:59:27 2011 +0100
+++ b/quail.el Sat Aug 03 18:18:47 2013 +0100
@@ -807,7 +807,7 @@
If it is a vector, each element (string or character) is a candidate
for the translation.
In these cases, a key specific Quail map is generated and assigned to KEY.
-(A Quail map is a cons that satisfies `quail-map-p', which see.)
+\(A Quail map is a cons that satisfies `quail-map-p', which see.)
If TRANSLATION is a Quail map it is used to handle KEY.
@@ -823,6 +823,13 @@
(while l
(quail-defrule-internal (car (car l)) (car (cdr (car l))) map)
(setq l (cdr l)))
+ (mapl
+ (function*
+ (lambda ((rule . rules))
+ (let ((assoc (assoc (car rule) rules)))
+ (and assoc
+ (warn "rule %S overridden by %S" rule assoc)))))
+ rules)
map)))
;;;###autoload
diff -r 7f33a75296ac -r 258fdebd51ed quail/latin-post.el
--- a/quail/latin-post.el Mon Sep 12 17:59:27 2011 +0100
+++ b/quail/latin-post.el Sat Aug 03 18:18:47 2013 +0100
@@ -115,7 +115,8 @@
("y\"" ?,A(B)
("D/" ?,AP(B)
("d/" ?,Ap(B)
- ("T/" ?,A^(B)
+ ("T/" [",A^(B"
+ ",D,(B"])
("t/" ?,A~(B)
("s/" ?,A_(B)
("C," ?,AG(B)
@@ -610,7 +611,6 @@
("O/" ?,DX(B)
("R," ?,D#(B)
("S~" ?,D)(B)
- ("T/" ?,D,(B)
("U," ?,DY(B)
("U'" ?,DZ(B)
("U^" ?,D[(B)
@@ -1328,8 +1328,8 @@
("o'" ?,As(B)
("U'" ?,AZ(B)
("u'" ?,Az(B)
- ("U\"" ?,C\(B)
- ("u\"" ?,C|(B)
+ ("U\"" [",C\(B" "U\""])
+ ("u\"" [",C|(B" "u\""])
("N~" ?,AQ(B)
("n~" ?,Aq(B)
("?/" ?,A?(B)
@@ -1345,8 +1345,6 @@
("o''" ["o'"])
("U''" ["U'"])
("u''" ["u'"])
- ("U\"" ["U\""])
- ("u\"" ["U\""])
("N~~" ["N~"])
("n~~" ["n~"])
("?//" ["?/"])
@@ -1412,7 +1410,8 @@
("G^" ?,C+(B)
("g^" ?,C;(B)
("I." ?,C)(B)
- ("i" ?,C9(B)
+ ("i" [",C9(B"
+ "i"])
("i." ?i)
("O\"" ?,CV(B)
("o\"" ?,Cv(B)
@@ -1430,7 +1429,6 @@
("G^^" ["G^"])
("g^^" ["g^"])
("I.." ["I."])
- ("i" ["i"])
("i.." ["i."])
("O\"\"" ["O\""])
("o\"\"" ["o\""])
@@ -1475,7 +1473,7 @@
("G^" ?,MP(B)
("g^" ?,Mp(B)
("I." ?,M](B)
- ("i" ?,M}(B)
+ ("i" [",M}(B" "i"])
("i." ?i)
("O\"" ?,MV(B)
("o\"" ?,Mv(B)
@@ -1493,7 +1491,6 @@
("G^^" ["G^"])
("g^^" ["g^"])
("I.." ["I."])
- ("i" ["i"])
("i.." ["i."])
("O\"\"" ["O\""])
("o\"\"" ["o\""])
@@ -2167,372 +2164,388 @@
" nil t nil nil nil nil nil nil nil nil t)
;; Fixme: ,A&(B ,A'(B ,A((B ,A)(B ,A,(B ,A-(B ,A.(B ,A/(B ,A1(B
,A2(B ,A3(B ,A4(B ,A5(B ,A6(B ,A7(B ,A8(B ,A9(B ,A<(B ,A=(B
,A>(B ,AW(B ,Aw(B
-(eval
- (append
- '(quail-define-rules)
- '((" _" ?,A (B)
- ("!/" ?,A!(B)
- ("//" ?,A0(B)
- ("<<" ?\,A+(B)
- (">>" ?\,A;(B)
- ("?/" ?,A?(B)
- ("$/" ?,A#(B)
- ("A'" ?,AA(B)
- ("A," ?,B!(B)
- ("A-" ?,D@(B)
- ("A/" ?,AE(B)
- ("A\"" ?,AD(B)
- ("A^" ?,AB(B)
- ("A`" ?,A@(B)
- ("A~" ?,AC(B)
- ("A~" ?,BC(B)
- ("C'" ?,BF(B)
- ("C," ?,AG(B)
- ("C." ?,CE(B)
- ("C^" ?,CF(B)
- ("C~" ?,BH(B)
- ("D/" ?,AP(B)
- ("D/" ?,BP(B)
- ("D~" ?,BO(B)
- ("E'" ?,AI(B)
- ("E," ?,BJ(B)
- ("E-" ?,D*(B)
- ("E." ?,DL(B)
- ("E/" ?,AF(B)
- ("E\"" ?,AK(B)
- ("E^" ?,AJ(B)
- ("E`" ?,AH(B)
- ("E~" ?,BL(B)
- ("G," ?,D+(B)
- ("G." ?,CU(B)
- ("G^" ?,CX(B)
- ("G~" ?,C+(B)
- ("H/" ?,C!(B)
- ("H^" ?,C&(B)
- ("I'" ?,AM(B)
- ("I," ?,DG(B)
- ("I-" ?,DO(B)
- ("I." ?,C)(B)
- ("I\"" ?,AO(B)
- ("I^" ?,AN(B)
- ("I`" ?,AL(B)
- ("I~" ?,D%(B)
- ("J^" ?,C,(B)
- ("K," ?,DS(B)
- ("L'" ?,BE(B)
- ("L," ?,D&(B)
- ("L/" ?,B#(B)
- ("L~" ?,B%(B)
- ("N'" ?,BQ(B)
- ("N," ?,DQ(B)
- ("N/" ?,D=(B)
- ("N~" ?,AQ(B)
- ("N~" ?,BR(B)
- ("O'" ?,AS(B)
- ("O-" ?,DR(B)
- ("O/" ?,AX(B)
- ("O:" ?,BU(B)
- ("O\"" ?,AV(B)
- ("O^" ?,AT(B)
- ("O`" ?,AR(B)
- ("O~" ?,AU(B)
- ("R'" ?,B@(B)
- ("R," ?,D#(B)
- ("R~" ?,BX(B)
- ("S'" ?,B&(B)
- ("S," ?,B*(B)
- ("S^" ?,C^(B)
- ("S~" ?,B)(B)
- ("T," ?,B^(B)
- ("T/" ?,A^(B)
- ("T/" ?,D,(B)
- ("T~" ?,B+(B)
- ("U'" ?,AZ(B)
- ("U," ?,DY(B)
- ("U-" ?,D^(B)
- ("U." ?,BY(B)
- ("U:" ?,B[(B)
- ("U\"" ?,A\(B)
- ("U^" ?,A[(B)
- ("U`" ?,AY(B)
- ("U~" ?,D](B)
- ("U~" ?,C](B)
- ("Y'" ?,A](B)
- ("Y=" ?,A%(B)
- ("Z'" ?,B,(B)
- ("Z." ?,B/(B)
- ("Z~" ?,B.(B)
- ("a'" ?,Aa(B)
- ("a," ?,B1(B)
- ("a-" ?,D`(B)
- ("a/" ?,Ae(B)
- ("a\"" ?,Ad(B)
- ("a^" ?,Ab(B)
- ("a_" ?,A*(B)
- ("a`" ?,A`(B)
- ("a~" ?,Ac(B)
- ("a~" ?,Bc(B)
- ("c'" ?,Bf(B)
- ("c," ?,Ag(B)
- ("c." ?,Ce(B)
- ("c^" ?,Cf(B)
- ("c~" ?,Bh(B)
- ("c/" ?,A"(B)
- ("d/" ?,Ap(B)
- ("d/" ?,Bp(B)
- ("d~" ?,Bo(B)
- ("e'" ?,Ai(B)
- ("e," ?,Bj(B)
- ("e-" ?,D:(B)
- ("e." ?,Dl(B)
- ("e/" ?,Af(B)
- ("e\"" ?,Ak(B)
- ("e^" ?,Aj(B)
- ("e`" ?,Ah(B)
- ("e~" ?,Bl(B)
- ("g," ?,D;(B)
- ("g." ?,Cu(B)
- ("g^" ?,Cx(B)
- ("g~" ?,C;(B)
- ("h/" ?,C1(B)
- ("h^" ?,C6(B)
- ("i'" ?,Am(B)
- ("i," ?,Dg(B)
- ("i-" ?,Do(B)
- ("i." ?,C9(B)
- ("i\"" ?,Ao(B)
- ("i^" ?,An(B)
- ("i`" ?,Al(B)
- ("i~" ?,D5(B)
- ("j^" ?,C<(B)
- ("k," ?,Ds(B)
- ("k/" ?,D"(B)
- ("l'" ?,Be(B)
- ("l," ?,D6(B)
- ("l/" ?,B3(B)
- ("l~" ?,B5(B)
- ("n'" ?,Bq(B)
- ("n," ?,Dq(B)
- ("n/" ?,D?(B)
- ("n~" ?,Aq(B)
- ("n~" ?,Br(B)
- ("o'" ?,As(B)
- ("o-" ?,Dr(B)
- ("o/" ?,Ax(B)
- ("o:" ?,Bu(B)
- ("o\"" ?,Av(B)
- ("o^" ?,At(B)
- ("o_" ?,A:(B)
- ("o`" ?,Ar(B)
- ("o~" ?,Au(B)
- ("r'" ?,B`(B)
- ("r," ?,D3(B)
- ("r~" ?,Bx(B)
- ("s'" ?,B6(B)
- ("s," ?,B:(B)
- ("s/" ?,A_(B)
- ("s^" ?,C~(B)
- ("s~" ?,B9(B)
- ("t," ?,B~(B)
- ("t/" ?,A~(B)
- ("t/" ?,D<(B)
- ("t~" ?,B;(B)
- ("u'" ?,Az(B)
- ("u," ?,Dy(B)
- ("u-" ?,D~(B)
- ("u." ?,By(B)
- ("u:" ?,B{(B)
- ("u\"" ?,A|(B)
- ("u^" ?,A{(B)
- ("u`" ?,Ay(B)
- ("u~" ?,D}(B)
- ("u~" ?,C}(B)
- ("y'" ?,A}(B)
- ("y\"" ?,A(B)
- ("z'" ?,B<(B)
- ("z." ?,B?(B)
- ("z~" ?,B>(B)
+;; XEmacs change; only map some characters if our XEmacs supports them, this
+;; is the idea behind the macrolet.
+(macrolet
+ ((quail-define-latin-postfix (&rest rules)
+ (let ((unicode (prog1
+ (getf rules :unicode rules)
+ (remf rules :unicode))))
+ (mapl
+ (function*
+ (lambda ((rule . rules))
+ (let ((assoc (assoc (car rule) rules)))
+ (and assoc
+ (warn "latin-postfix: rule %S overridden by %S"
+ rule assoc)))))
+ (append rules unicode))
+ `(quail-install-map
+ (let ((map ',(let ((map (list nil)))
+ (mapc (function*
+ (lambda ((key trans . rest))
+ (quail-defrule-internal key trans map)))
+ rules)
+ map)))
+ (when latin-post-decent-xemacs-unicode-support
+ (mapc (function*
+ (lambda ((key trans . rest))
+ (setf (aref trans 0)
+ (string (decode-char 'ucs (aref trans 0))))
+ (quail-defrule-internal key trans map)))
+ ',unicode))
+ map)))))
+ (quail-define-latin-postfix
+:unicode (("$/" [#x20ac ",A#(B"]) ;; These override earlier rules,
which is
+ ("O/" [#x0152 ",AX(B"]) ;; OK in this limited
context.
+ ("Y\"" [#x0178])
+ ("e=" [#x20ac])
+ ("o/" [#x0153 ",Ax(B"]))
+ (" _" ?,A (B)
+ ("!/" ?,A!(B)
+ ("//" ?,A0(B)
+ ("<<" ?\,A+(B)
+ (">>" ?\,A;(B)
+ ("?/" ?,A?(B)
+ ("$/" ?,A#(B)
+ ("A'" ?,AA(B)
+ ("A," ?,B!(B)
+ ("A-" ?,D@(B)
+ ("A/" ?,AE(B)
+ ("A\"" ?,AD(B)
+ ("A^" ?,AB(B)
+ ("A`" ?,A@(B)
+ ("A~" [",AC(B" ",BC(B"])
+ ("C'" ?,BF(B)
+ ("C," ?,AG(B)
+ ("C." ?,CE(B)
+ ("C^" ?,CF(B)
+ ("C~" ?,BH(B)
+ ("D/" [",AP(B" ",BP(B"])
+ ("D~" ?,BO(B)
+ ("E'" ?,AI(B)
+ ("E," ?,BJ(B)
+ ("E-" ?,D*(B)
+ ("E." ?,DL(B)
+ ("E/" ?,AF(B)
+ ("E\"" ?,AK(B)
+ ("E^" ?,AJ(B)
+ ("E`" ?,AH(B)
+ ("E~" ?,BL(B)
+ ("G," ?,D+(B)
+ ("G." ?,CU(B)
+ ("G^" ?,CX(B)
+ ("G~" ?,C+(B)
+ ("H/" ?,C!(B)
+ ("H^" ?,C&(B)
+ ("I'" ?,AM(B)
+ ("I," ?,DG(B)
+ ("I-" ?,DO(B)
+ ("I." ?,C)(B)
+ ("I\"" ?,AO(B)
+ ("I^" ?,AN(B)
+ ("I`" ?,AL(B)
+ ("I~" ?,D%(B)
+ ("J^" ?,C,(B)
+ ("K," ?,DS(B)
+ ("L'" ?,BE(B)
+ ("L," ?,D&(B)
+ ("L/" ?,B#(B)
+ ("L~" ?,B%(B)
+ ("N'" ?,BQ(B)
+ ("N," ?,DQ(B)
+ ("N/" ?,D=(B)
+ ("N~" [",AQ(B" ",BR(B"])
+ ("O'" ?,AS(B)
+ ("O-" ?,DR(B)
+ ("O/" ?,AX(B)
+ ("O:" ?,BU(B)
+ ("O\"" ?,AV(B)
+ ("O^" ?,AT(B)
+ ("O`" ?,AR(B)
+ ("O~" ?,AU(B)
+ ("R'" ?,B@(B)
+ ("R," ?,D#(B)
+ ("R~" ?,BX(B)
+ ("S'" ?,B&(B)
+ ("S," ?,B*(B)
+ ("S^" ?,C^(B)
+ ("S~" ?,B)(B)
+ ("T," ?,B^(B)
+ ("T/" [",A^(B" ",D,(B"])
+ ("T~" ?,B+(B)
+ ("U'" ?,AZ(B)
+ ("U," ?,DY(B)
+ ("U-" ?,D^(B)
+ ("U." ?,BY(B)
+ ("U:" ?,B[(B)
+ ("U\"" ?,A\(B)
+ ("U^" ?,A[(B)
+ ("U`" ?,AY(B)
+ ("U~" [",D](B" "$(D*f(B"])
+ ("Y'" ?,A](B)
+ ("Y=" ?,A%(B)
+ ("Z'" ?,B,(B)
+ ("Z." ?,B/(B)
+ ("Z~" ?,B.(B)
+ ("a'" ?,Aa(B)
+ ("a," ?,B1(B)
+ ("a-" ?,D`(B)
+ ("a/" ?,Ae(B)
+ ("a\"" ?,Ad(B)
+ ("a^" ?,Ab(B)
+ ("a_" ?,A*(B)
+ ("a`" ?,A`(B)
+ ("a~" [",Ac(B" ",Bc(B"])
+ ("c'" ?,Bf(B)
+ ("c," ?,Ag(B)
+ ("c." ?,Ce(B)
+ ("c^" ?,Cf(B)
+ ("c~" ?,Bh(B)
+ ("c/" ?,A"(B)
+ ("d/" [",Ap(B" ",Bp(B"])
+ ("d~" ?,Bo(B)
+ ("e'" ?,Ai(B)
+ ("e," ?,Bj(B)
+ ("e-" ?,D:(B)
+ ("e." ?,Dl(B)
+ ("e/" ?,Af(B)
+ ("e\"" ?,Ak(B)
+ ("e^" ?,Aj(B)
+ ("e`" ?,Ah(B)
+ ("e~" ?,Bl(B)
+ ("g," ?,D;(B)
+ ("g." ?,Cu(B)
+ ("g^" ?,Cx(B)
+ ("g~" ?,C;(B)
+ ("h/" ?,C1(B)
+ ("h^" ?,C6(B)
+ ("i'" ?,Am(B)
+ ("i," ?,Dg(B)
+ ("i-" ?,Do(B)
+ ("i." ?,C9(B)
+ ("i\"" ?,Ao(B)
+ ("i^" ?,An(B)
+ ("i`" ?,Al(B)
+ ("i~" ?,D5(B)
+ ("j^" ?,C<(B)
+ ("k," ?,Ds(B)
+ ("k/" ?,D"(B)
+ ("l'" ?,Be(B)
+ ("l," ?,D6(B)
+ ("l/" ?,B3(B)
+ ("l~" ?,B5(B)
+ ("n'" ?,Bq(B)
+ ("n," ?,Dq(B)
+ ("n/" ?,D?(B)
+ ("n~" [",Aq(B" ",Br(B"])
+ ("o'" ?,As(B)
+ ("o-" ?,Dr(B)
+ ("o/" ?,Ax(B)
+ ("o:" ?,Bu(B)
+ ("o\"" ?,Av(B)
+ ("o^" ?,At(B)
+ ("o_" ?,A:(B)
+ ("o`" ?,Ar(B)
+ ("o~" ?,Au(B)
+ ("r'" ?,B`(B)
+ ("r," ?,D3(B)
+ ("r~" ?,Bx(B)
+ ("s'" ?,B6(B)
+ ("s," ?,B:(B)
+ ("s/" ?,A_(B)
+ ("s^" ?,C~(B)
+ ("s~" ?,B9(B)
+ ("t," ?,B~(B)
+ ("t/" [",A~(B" ",D<(B"])
+ ("t~" ?,B;(B)
+ ("u'" ?,Az(B)
+ ("u," ?,Dy(B)
+ ("u-" ?,D~(B)
+ ("u." ?,By(B)
+ ("u:" ?,B{(B)
+ ("u\"" ?,A|(B)
+ ("u^" ?,A{(B)
+ ("u`" ?,Ay(B)
+ ("u~" [",D}(B" ",C}(B"])
+ ("y'" ?,A}(B)
+ ("y\"" ?,A(B)
+ ("z'" ?,B<(B)
+ ("z." ?,B?(B)
+ ("z~" ?,B>(B)
- ("!//" ["!/"])
- ("///" ["//"])
- ("<<<" ["<<"])
- (">>>" [">>"])
- ("?//" ["?/"])
- ("$//" ["$/"])
- ("A''" ["A'"])
- ("A,," ["A,"])
- ("A--" ["A-"])
- ("A//" ["A/"])
- ("A\"\"" ["A\""])
- ("A^^" ["A^"])
- ("A``" ["A`"])
- ("A~~" ["A~"])
- ("C''" ["C'"])
- ("C,," ["C,"])
- ("C.." ["C."])
- ("C^^" ["C^"])
- ("C~~" ["C~"])
- ("D//" ["D/"])
- ("D~~" ["D~"])
- ("E''" ["E'"])
- ("E,," ["E,"])
- ("E--" ["E-"])
- ("E.." ["E."])
- ("E//" ["E/"])
- ("E\"\"" ["E\""])
- ("E^^" ["E^"])
- ("E``" ["E`"])
- ("E~~" ["E~"])
- ("G,," ["G,"])
- ("G.." ["G."])
- ("G^^" ["G^"])
- ("G~~" ["G~"])
- ("H//" ["H/"])
- ("H^^" ["H^"])
- ("I''" ["I'"])
- ("I,," ["I,"])
- ("I--" ["I-"])
- ("I.." ["I."])
- ("I\"\"" ["I\""])
- ("I^^" ["I^"])
- ("I``" ["I`"])
- ("I~~" ["I~"])
- ("J^^" ["J^"])
- ("K,," ["K,"])
- ("L''" ["L'"])
- ("L,," ["L,"])
- ("L//" ["L/"])
- ("L~~" ["L~"])
- ("N''" ["N'"])
- ("N,," ["N,"])
- ("N//" ["N/"])
- ("N~~" ["N~"])
- ("O''" ["O'"])
- ("O--" ["O-"])
- ("O//" ["O/"])
- ("O::" ["O:"])
- ("O\"\"" ["O\""])
- ("O^^" ["O^"])
- ("O``" ["O`"])
- ("O~~" ["O~"])
- ("R''" ["R'"])
- ("R,," ["R,"])
- ("R~~" ["R~"])
- ("S''" ["S'"])
- ("S,," ["S,"])
- ("S^^" ["S^"])
- ("S~~" ["S~"])
- ("T,," ["T,"])
- ("T//" ["T/"])
- ("T~~" ["T~"])
- ("U''" ["U'"])
- ("U,," ["U,"])
- ("U--" ["U-"])
- ("U.." ["U."])
- ("U::" ["U:"])
- ("U\"\"" ["U\""])
- ("U^^" ["U^"])
- ("U``" ["U`"])
- ("U~~" ["U~"])
- ("Y''" ["Y'"])
- ("Y\"\"" ["Y\""])
- ("Y==" ["Y="])
- ("Z''" ["Z'"])
- ("Z.." ["Z."])
- ("Z~~" ["Z~"])
- ("a''" ["a'"])
- ("a,," ["a,"])
- ("a--" ["a-"])
- ("a//" ["a/"])
- ("a\"\"" ["a\""])
- ("a^^" ["a^"])
- ("a__" ["a_"])
- ("a``" ["a`"])
- ("a~~" ["a~"])
- ("c''" ["c'"])
- ("c,," ["c,"])
- ("c.." ["c."])
- ("c^^" ["c^"])
- ("c~~" ["c~"])
- ("c//" ["c/"])
- ("d//" ["d/"])
- ("d~~" ["d~"])
- ("e''" ["e'"])
- ("e,," ["e,"])
- ("e--" ["e-"])
- ("e.." ["e."])
- ("e//" ["e/"])
- ("e\"\"" ["e\""])
- ("e^^" ["e^"])
- ("e``" ["e`"])
- ("e==" ["e="])
- ("e~~" ["e~"])
- ("g,," ["g,"])
- ("g.." ["g."])
- ("g^^" ["g^"])
- ("g~~" ["g~"])
- ("h//" ["h/"])
- ("h^^" ["h^"])
- ("i''" ["i'"])
- ("i,," ["i,"])
- ("i--" ["i-"])
- ("i.." ["i."])
- ("i\"\"" ["i\""])
- ("i^^" ["i^"])
- ("i``" ["i`"])
- ("i~~" ["i~"])
- ("j^^" ["j^"])
- ("k,," ["k,"])
- ("k//" ["k/"])
- ("l''" ["l'"])
- ("l,," ["l,"])
- ("l//" ["l/"])
- ("l~~" ["l~"])
- ("n''" ["n'"])
- ("n,," ["n,"])
- ("n//" ["n/"])
- ("n~~" ["n~"])
- ("o''" ["o'"])
- ("o--" ["o-"])
- ("o//" ["o/"])
- ("o::" ["o:"])
- ("o\"\"" ["o\""])
- ("o^^" ["o^"])
- ("o__" ["o_"])
- ("o``" ["o`"])
- ("o~~" ["o~"])
- ("r''" ["r'"])
- ("r,," ["r,"])
- ("r~~" ["r~"])
- ("s''" ["s'"])
- ("s,," ["s,"])
- ("s//" ["s/"])
- ("s^^" ["s^"])
- ("s~~" ["s~"])
- ("t,," ["t,"])
- ("t//" ["t/"])
- ("t~~" ["t~"])
- ("u''" ["u'"])
- ("u,," ["u,"])
- ("u--" ["u-"])
- ("u.." ["u."])
- ("u::" ["u:"])
- ("u\"\"" ["u\""])
- ("u^^" ["u^"])
- ("u``" ["u`"])
- ("u~~" ["u~"])
- ("y''" ["y'"])
- ("y\"\"" ["y\""])
- ("z''" ["z'"])
- ("z.." ["z."])
- ("z~~" ["z~"]))
- ;; XEmacs change; only map some characters if our XEmacs supports them.
- (when latin-post-decent-xemacs-unicode-support
- (list (list "$/" (decode-char 'ucs #x20ac))
- (list "O/" (decode-char 'ucs #x152))
- (list "Y\"" (decode-char 'ucs #x178))
- (list "e=" (decode-char 'ucs #x20ac))
- (list "o/" (decode-char 'ucs #x153))))))
+ ("!//" ["!/"])
+ ("///" ["//"])
+ ("<<<" ["<<"])
+ (">>>" [">>"])
+ ("?//" ["?/"])
+ ("$//" ["$/"])
+ ("A''" ["A'"])
+ ("A,," ["A,"])
+ ("A--" ["A-"])
+ ("A//" ["A/"])
+ ("A\"\"" ["A\""])
+ ("A^^" ["A^"])
+ ("A``" ["A`"])
+ ("A~~" ["A~"])
+ ("C''" ["C'"])
+ ("C,," ["C,"])
+ ("C.." ["C."])
+ ("C^^" ["C^"])
+ ("C~~" ["C~"])
+ ("D//" ["D/"])
+ ("D~~" ["D~"])
+ ("E''" ["E'"])
+ ("E,," ["E,"])
+ ("E--" ["E-"])
+ ("E.." ["E."])
+ ("E//" ["E/"])
+ ("E\"\"" ["E\""])
+ ("E^^" ["E^"])
+ ("E``" ["E`"])
+ ("E~~" ["E~"])
+ ("G,," ["G,"])
+ ("G.." ["G."])
+ ("G^^" ["G^"])
+ ("G~~" ["G~"])
+ ("H//" ["H/"])
+ ("H^^" ["H^"])
+ ("I''" ["I'"])
+ ("I,," ["I,"])
+ ("I--" ["I-"])
+ ("I.." ["I."])
+ ("I\"\"" ["I\""])
+ ("I^^" ["I^"])
+ ("I``" ["I`"])
+ ("I~~" ["I~"])
+ ("J^^" ["J^"])
+ ("K,," ["K,"])
+ ("L''" ["L'"])
+ ("L,," ["L,"])
+ ("L//" ["L/"])
+ ("L~~" ["L~"])
+ ("N''" ["N'"])
+ ("N,," ["N,"])
+ ("N//" ["N/"])
+ ("N~~" ["N~"])
+ ("O''" ["O'"])
+ ("O--" ["O-"])
+ ("O//" ["O/"])
+ ("O::" ["O:"])
+ ("O\"\"" ["O\""])
+ ("O^^" ["O^"])
+ ("O``" ["O`"])
+ ("O~~" ["O~"])
+ ("R''" ["R'"])
+ ("R,," ["R,"])
+ ("R~~" ["R~"])
+ ("S''" ["S'"])
+ ("S,," ["S,"])
+ ("S^^" ["S^"])
+ ("S~~" ["S~"])
+ ("T,," ["T,"])
+ ("T//" ["T/"])
+ ("T~~" ["T~"])
+ ("U''" ["U'"])
+ ("U,," ["U,"])
+ ("U--" ["U-"])
+ ("U.." ["U."])
+ ("U::" ["U:"])
+ ("U\"\"" ["U\""])
+ ("U^^" ["U^"])
+ ("U``" ["U`"])
+ ("U~~" ["U~"])
+ ("Y''" ["Y'"])
+ ("Y\"\"" ["Y\""])
+ ("Y==" ["Y="])
+ ("Z''" ["Z'"])
+ ("Z.." ["Z."])
+ ("Z~~" ["Z~"])
+ ("a''" ["a'"])
+ ("a,," ["a,"])
+ ("a--" ["a-"])
+ ("a//" ["a/"])
+ ("a\"\"" ["a\""])
+ ("a^^" ["a^"])
+ ("a__" ["a_"])
+ ("a``" ["a`"])
+ ("a~~" ["a~"])
+ ("c''" ["c'"])
+ ("c,," ["c,"])
+ ("c.." ["c."])
+ ("c^^" ["c^"])
+ ("c~~" ["c~"])
+ ("c//" ["c/"])
+ ("d//" ["d/"])
+ ("d~~" ["d~"])
+ ("e''" ["e'"])
+ ("e,," ["e,"])
+ ("e--" ["e-"])
+ ("e.." ["e."])
+ ("e//" ["e/"])
+ ("e\"\"" ["e\""])
+ ("e^^" ["e^"])
+ ("e``" ["e`"])
+ ("e==" ["e="])
+ ("e~~" ["e~"])
+ ("g,," ["g,"])
+ ("g.." ["g."])
+ ("g^^" ["g^"])
+ ("g~~" ["g~"])
+ ("h//" ["h/"])
+ ("h^^" ["h^"])
+ ("i''" ["i'"])
+ ("i,," ["i,"])
+ ("i--" ["i-"])
+ ("i.." ["i."])
+ ("i\"\"" ["i\""])
+ ("i^^" ["i^"])
+ ("i``" ["i`"])
+ ("i~~" ["i~"])
+ ("j^^" ["j^"])
+ ("k,," ["k,"])
+ ("k//" ["k/"])
+ ("l''" ["l'"])
+ ("l,," ["l,"])
+ ("l//" ["l/"])
+ ("l~~" ["l~"])
+ ("n''" ["n'"])
+ ("n,," ["n,"])
+ ("n//" ["n/"])
+ ("n~~" ["n~"])
+ ("o''" ["o'"])
+ ("o--" ["o-"])
+ ("o//" ["o/"])
+ ("o::" ["o:"])
+ ("o\"\"" ["o\""])
+ ("o^^" ["o^"])
+ ("o__" ["o_"])
+ ("o``" ["o`"])
+ ("o~~" ["o~"])
+ ("r''" ["r'"])
+ ("r,," ["r,"])
+ ("r~~" ["r~"])
+ ("s''" ["s'"])
+ ("s,," ["s,"])
+ ("s//" ["s/"])
+ ("s^^" ["s^"])
+ ("s~~" ["s~"])
+ ("t,," ["t,"])
+ ("t//" ["t/"])
+ ("t~~" ["t~"])
+ ("u''" ["u'"])
+ ("u,," ["u,"])
+ ("u--" ["u-"])
+ ("u.." ["u."])
+ ("u::" ["u:"])
+ ("u\"\"" ["u\""])
+ ("u^^" ["u^"])
+ ("u``" ["u`"])
+ ("u~~" ["u~"])
+ ("y''" ["y'"])
+ ("y\"\"" ["y\""])
+ ("z''" ["z'"])
+ ("z.." ["z."])
+ ("z~~" ["z~"])))
;; Derived from Slovenian.kmap from Yudit
;; attributed as: 2001-11-11 Roman Maurer <roman.maurer(a)amis.net>
--
‘Liston operated so fast that he once accidentally amputated an assistant’s
fingers along with a patient’s leg, […] The patient and the assistant both
died of sepsis, and a spectator reportedly died of shock, resulting in the
only known procedure with a 300% mortality.’ (Atul Gawande, NEJM, 2012)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches