[COMMIT] Use ISO-IR-196 sequences in HELLO, not GNU's ad-hoc charsets
13 years, 5 months
Aidan Kehoe
APPROVE COMMIT
NOTE: This patch has been committed.
[I’m omitting the HELLO diff from this email because it’s mostly
unreadable.]
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1309282466 -3600
# Node ID 17bcc2aab11161bf7fd501f045072f1a09625ff7
# Parent 3d1f8f0e690f27b4b12aa8c8c025fe3da95dbf92
Update the GPLv3 HELLO to use the ISO-IR-196 escape sequences.
etc/ChangeLog addition:
2011-06-28 Aidan Kehoe <kehoea(a)parhasard.net>
* HELLO:
No longer encode various Unicode characters in GNU's specific
ad-hoc character sets, use ISO-IR-196 sequences instead.
tests/ChangeLog addition:
2011-06-28 Aidan Kehoe <kehoea(a)parhasard.net>
* automated/mule-tests.el:
Update the charsets-in-region test to reflect the GPLv3 HELLO
file.
diff -r 3d1f8f0e690f -r 17bcc2aab111 etc/ChangeLog
--- a/etc/ChangeLog Sat Jun 25 14:00:48 2011 +0100
+++ b/etc/ChangeLog Tue Jun 28 18:34:26 2011 +0100
@@ -1,3 +1,9 @@
+2011-06-28 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * HELLO:
+ No longer encode various Unicode characters in GNU's specific
+ ad-hoc character sets, use ISO-IR-196 sequences instead.
+
2011-05-20 Jerry James <james(a)xemacs.org>
* tests/external-widget/Makefile (DESTDIR): New variable for all
diff -r 3d1f8f0e690f -r 17bcc2aab111 etc/HELLO
--- a/etc/HELLO Sat Jun 25 14:00:48 2011 +0100
+++ b/etc/HELLO Tue Jun 28 18:34:26 2011 +0100
diff -r 3d1f8f0e690f -r 17bcc2aab111 tests/ChangeLog
--- a/tests/ChangeLog Sat Jun 25 14:00:48 2011 +0100
+++ b/tests/ChangeLog Tue Jun 28 18:34:26 2011 +0100
@@ -1,3 +1,9 @@
+2011-06-28 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * automated/mule-tests.el:
+ Update the charsets-in-region test to reflect the GPLv3 HELLO
+ file.
+
2011-05-20 Jerry James <james(a)xemacs.org>
* tooltalk/Makefile (DESTDIR): New variable for all Makefiles, unused
diff -r 3d1f8f0e690f -r 17bcc2aab111 tests/automated/mule-tests.el
--- a/tests/automated/mule-tests.el Sat Jun 25 14:00:48 2011 +0100
+++ b/tests/automated/mule-tests.el Tue Jun 28 18:34:26 2011 +0100
@@ -572,22 +572,28 @@
;; Test charset-in-* functions
;;---------------------------------------------------------------
(with-temp-buffer
- (insert-file-contents (locate-data-file "HELLO"))
(let ((sorted-charsets-in-HELLO
- '(arabic-iso8859-6 ascii chinese-big5-1 chinese-gb2312
- cyrillic-iso8859-5 ethiopic greek-iso8859-7
- hebrew-iso8859-8 japanese-jisx0208 japanese-jisx0212
- katakana-jisx0201 korean-ksc5601 latin-iso8859-1
- latin-iso8859-2 vietnamese-viscii-lower)))
+ '(arabic-iso8859-6 ascii chinese-big5-1 chinese-gb2312
+ cyrillic-iso8859-5 ethiopic greek-iso8859-7 hebrew-iso8859-8
+ indian-is13194 ipa japanese-jisx0208 japanese-jisx0212
+ katakana-jisx0201 korean-ksc5601 lao latin-iso8859-1
+ latin-iso8859-2 latin-iso8859-3 latin-iso8859-4 thai-tis620
+ tibetan vietnamese-viscii-lower))
+ (coding-system-for-read 'iso-2022-7))
+ (insert-file-contents (locate-data-file "HELLO"))
(Assert (equal
;; The sort is to make the algorithm of charsets-in-region
;; irrelevant.
- (sort (charsets-in-region (point-min) (point-max))
+ (sort (remove* "^jit-ucs-charset-" (charsets-in-region (point-min)
+ (point-max))
+:test 'string-match :key 'symbol-name)
#'string<)
sorted-charsets-in-HELLO))
(Assert (equal
- (sort (charsets-in-string (buffer-substring (point-min)
- (point-max)))
+ (sort (remove* "^jit-ucs-charset-" (charsets-in-string
+ (buffer-substring (point-min)
+ (point-max)))
+:test 'string-match :key 'symbol-name)
#'string<)
sorted-charsets-in-HELLO))))
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
commit: Update the GPLv3 HELLO to use the ISO-IR-196 escape sequences.
13 years, 5 months
Aidan Kehoe
changeset: 5530:17bcc2aab111
tag: tip
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Tue Jun 28 18:34:26 2011 +0100
files: etc/ChangeLog etc/HELLO tests/ChangeLog tests/automated/mule-tests.el
description:
Update the GPLv3 HELLO to use the ISO-IR-196 escape sequences.
etc/ChangeLog addition:
2011-06-28 Aidan Kehoe <kehoea(a)parhasard.net>
* HELLO:
No longer encode various Unicode characters in GNU's specific
ad-hoc character sets, use ISO-IR-196 sequences instead.
tests/ChangeLog addition:
2011-06-28 Aidan Kehoe <kehoea(a)parhasard.net>
* automated/mule-tests.el:
Update the charsets-in-region test to reflect the GPLv3 HELLO
file.
diff -r 3d1f8f0e690f -r 17bcc2aab111 etc/ChangeLog
--- a/etc/ChangeLog Sat Jun 25 14:00:48 2011 +0100
+++ b/etc/ChangeLog Tue Jun 28 18:34:26 2011 +0100
@@ -1,3 +1,9 @@
+2011-06-28 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * HELLO:
+ No longer encode various Unicode characters in GNU's specific
+ ad-hoc character sets, use ISO-IR-196 sequences instead.
+
2011-05-20 Jerry James <james(a)xemacs.org>
* tests/external-widget/Makefile (DESTDIR): New variable for all
diff -r 3d1f8f0e690f -r 17bcc2aab111 etc/HELLO
--- a/etc/HELLO Sat Jun 25 14:00:48 2011 +0100
+++ b/etc/HELLO Tue Jun 28 18:34:26 2011 +0100
@@ -2,64 +2,64 @@
Non-ASCII examples:
Europe: ,A!(BHola!, Gr,A|_(B Gott, Hyv,Add(B p,Ad(Biv,Add(B, Tere ,Au(Bhtust, Bon,Cu(Bu
- Cze,B6f(B!, Dobr,B}(B den, ,L7T`PRabRcYbU(B!, ,FCei\(B ,Fsar(B, $,1J2J0J;J0J@JOJ=J1J0(B
+ Cze,B6f(B!, Dobr,B}(B den, ,L7T`PRabRcYbU(B!, ,FCei\(B ,Fsar(B, %Gგამარჯობა%@
Africa: $(3!A!,!>(B
- Middle/Near East: ,Hylem(B, $,1-g.$-s.1.$-g.%(B $,1-y.$.*.#.%(B
- South Asia: $,19h9n9x:-9d:'(B, $,15h5n5x6-5d6'(B, $,1?(?.?8?M>u?>?0(B, $,1@H@N@X@m@5@^@P@"(B, $,1;6;A;#;?;,;G(B,
- $,1AFAzB4AvB=B AqB*(B, $,1<U<C<5<m<5<N<m(B, $,1=h=n=x>-=U=~=p=B(B, $(7"7"!#C!;"E"S"G!;"7"2"[!;"D"["#"G!>(B
- South East Asia: $,1\'\f\:\V\4\?\]\:(B, (1JP:R-4U(B, $,1H9H$HZHYH"H<HLH5HK(B, ,TJGQJ4U$CQ:(B, Ch,1`(Bo b,1U(Bn
+ Middle/Near East: [2],Hylem[0](B, [2],GGdSqdGe[0](B [2],GYdjce[0](B
+ South Asia: %Gનમસ્તે%@, (5FLWhBa(B, %Gನಮಸ್ಕಾರ%@, %Gനമസ്കാരം%@, %Gଶୁଣିବେ%@,
+ %Gආයුබෝවන්%@, %Gவணக்கம்%@, %Gనమస్కారం%@, %Gབཀ%@$(7#C!;%Gཤ%@"S%Gས%@!;%Gབད%@"[!;%Gལ%@"[%Gགས%@!>(B
+ South East Asia: %Gជំរាបសួរ%@, (1JP:R-4U(B, %Gမင်္ဂလာပါ%@, %Gสวัสดีครับ%@, Ch,A`(Bo b,1U(Bn
East Asia: $ADc:C(B, $(0*/=((B, $B$3$s$K$A$O(B, $(C>H3gGO<<?d(B
- Misc: E,C6(Bo,C~(Ban,Cx(Bo ,Cf(Biu,C<(Ba,C}(Bde, $,2(3(1('('(5(B, $,1x (B p $,1x((B world $,1s"(B hello p $,2!a(B
+ Misc: E$(D+>(Bo$(D+](Ban$(D+:(Bo $(D+,(Biu$(D+H(Ba$(D+f(Bde, %G⠓⠑⠇⠇⠕%@, $B"O(B p $B":(B world %G•%@ hello p %G□%@
CJK variety: GB($AT*Fx(B,$A?*7"(B), BIG5($(0&x86(B,$(0DeBv(B), JIS($B855$(B,$B3+H/(B), KSC($(Cj*Q((B,$(CKR[!(B)
- Unicode charset: E$,1 E(Bo$,1 }(Ban$,1 =(Bo $,1 )(Biu$,1 U(Ba$,1!-(Bde, $,1&s'5'9',(B $,1'C'1'B(B, $,1-),|,u,}(B, $,1(7(T(`(P(R(a(b(R(c(Y(b(U(B!
+ Unicode charset: E$(D+>(Bo$(D+](Ban$(D+:(Bo $(D+,(Biu$(D+H(Ba$(D+f(Bde, ,FCei\(B ,Fsar(B, [2],Hylem[0](B, ,L7T`PRabRcYbU(B!
LANGUAGE (NATIVE NAME) HELLO
---------------------- -----
-Amharic ($,1O M[MmN{(B) $,1M`MKM](B
-Arabic $,1ro(B($,1-g.$-y-q-h.*.1-i(B) $,1-g.$-s.1.$-g.%(B $,1-y.$.*.#.%(B
-Bengali ($,17,7>6b727>(B) $,17(7.787M6u7>70(B
-Braille $,2(3(1('('(5(B
-Burmese ($,1H9H\H4HZH9HL(B) $,1H9H$HZHYH"H<HLH5HK(B
+Amharic ($(3"c!<!N"^(B) $(3!A!,!>(B
+Arabic [2],H~[0](B([2],GGdYQHjqI[0](B) [2],GGdSqdGe[0](B [2],GYdjce[0](B
+Bengali (%Gবাংলা%@) %Gনমস্কার%@
+Braille %G⠓⠑⠇⠇⠕%@
+Burmese (%Gမြန်မာ%@) %Gမင်္ဂလာပါ%@
C printf ("Hello, world!\n");
Czech (,Bh(Be,B9(Btina) Dobr,A}(B den
Danish (dansk) Hej / Goddag / Hall,Ax(Bj
Dutch (Nederlands) Hallo / Dag
Emacs emacs --no-splash -f view-hello-file
-English /$(O+S,0!,D?$(O*y(Bl,0!$(O*h(B/ Hello
+English /,0p!,D?%Gɡ%@(Bl,0!L(B/ Hello
Esperanto Saluton (E,C6(Bo,C~(Ban,Cx(Bo ,Cf(Biu,C<(Ba,C}(Bde)
Estonian (eesti keel) Tere p,Ad(Bevast / Tere ,Au(Bhtust
Finnish (suomi) Hei / Hyv,Add(B p,Ad(Biv,Add(B
French (fran,Ag(Bais) Bonjour / Salut
-Georgian ($,1JEJ0J@J7J5J4J:J8(B) $,1J2J0J;J0J@JOJ=J1J0(B
+Georgian (%Gქართველი%@) %Gგამარჯობა%@
German (Deutsch) Guten Tag / Gr,A|_(B Gott
Greek (,Fekkgmij\(B) ,FCei\(B ,Fsar(B
-Gujarati ($,19W:!9\9p9~9d: (B) $,19h9n9x:-9d:'(B
-Hebrew $,1ro(B($,1-",q-(,y-*(B) ,Hylem(B
+Gujarati (%Gગુજરાતી%@) %Gનમસ્તે%@
+Hebrew [2],H~[0](B([2],Hraxiz[0](B) [2],Hylem[0](B
Hungarian (magyar) Sz,Bi(Bp j,Bs(B napot!
-Hindi ($,15y55B5f6 (B) $,15h5n5x6-5d6'(B / $,15h5n5x6-5U5~5p(B $,16D(B
+Hindi ((5X["D\(B) (5FLWhBa(B / (5FLWh3ZO(B (5j(B
Italian (italiano) Ciao / Buon giorno
Javanese (Jawa) System.out.println("Sugeng siang!");
-Kannada ($,1>u?(?M?(?!(B) $,1?(?.?8?M>u?>?0(B
-Khmer ($,1\7\V\?\V\!\r\8\b\:(B) $,1\'\f\:\V\4\?\]\:(B
+Kannada (%Gಕನ್ನಡ%@) %Gನಮಸ್ಕಾರ%@
+Khmer (%Gភាសាខ្មែរ%@) %Gជំរាបសួរ%@
Lao ((1>RJRERG(B) (1JP:R-4U(B / (1"mcKib*!4U(B
-Malayalam ($,1@N@R@O@^@S@"(B) $,1@H@N@X@m@5@^@P@"(B
+Malayalam (%Gമലയാളം%@) %Gനമസ്കാരം%@
Maltese (il-Malti) Bon,Cu(Bu / Sa,C11(Ba
-Mathematics $,1x (B p $,1x((B world $,1s"(B hello p $,2!a(B
+Mathematics $B"O(B p $B":(B world %G•%@ hello p %G□%@
Nederlands, Vlaams Hallo / Dag
Norwegian (norsk) Hei / God dag
-Oriya ($,1:s;\;?:f(B) $,1;6;A;#;?;,;G(B
+Oriya (%Gଓଡ଼ିଆ%@) %Gଶୁଣିବେ%@
Polish (j,Bj(Bzyk polski) Dzie,Bq(B dobry! / Cze,B6f(B!
-Russian (,L`caaZXY(B) ,L7T`P$(O+Z,LRabRcYbU(B!
-Sinhala ($,1B#B2ABB$A}(B) $,1AFAzB4AvB=B AqB*(B
+Russian (,L`caaZXY(B) ,L7T`P%Ǵ%@RabRcYbU(B!
+Sinhala (%Gසිංහල%@) %Gආයුබෝවන්%@
Slovak (sloven,Bh(Bina) Dobr,A}(B de,Br(B
Slovenian (sloven,B9h(Bina) Pozdravljeni!
Spanish (espa,Aq(Bol) ,A!(BHola!
Swedish (p,Ae(B svenska) Hej / Goddag / Hall,Ae(B
-Tamil ($,1<D<N<_<T<m(B) $,1<U<C<5<m<5<N<m(B
-Telugu ($,1=d>&=r>!=W>!(B) $,1=h=n=x>-=U=~=p=B(B
+Tamil (%Gதமிழ்%@) %Gவணக்கம்%@
+Telugu (%Gతెలుగు%@) %Gనమస్కారం%@
Thai (,T@RIRd7B(B) ,TJGQJ4U$CQ:(B / ,TJGQJ4U$hP(B
-Tibetan ($(7"7"]"2!;"G#!"2!;(B) $(7"7"!#C!;"E"S"G!;"7"2"[!;"D"["#"G!>(B
-Tigrigna ($,1NUP-MmN{(B) $,1MpMKM[NU(B
+Tibetan (%Gབ%@$(7"]%Gད%@!;%Gས%@#!%Gད%@!;(B) %Gབཀ%@$(7#C!;%Gཤ%@"S%Gས%@!;%Gབད%@"[!;%Gལ%@"[%Gགས%@!>(B
+Tigrigna ($(3"8#r!N"^(B) $(3!Q!,!<"8(B
Turkish (T,A|(Brk,Ag(Be) Merhaba
Ukrainian (,LcZ`Pw]alZP(B) ,L2vbPn(B
Vietnamese (ti,1*(Bng Vi,1.(Bt) Ch,A`(Bo b,1U(Bn
diff -r 3d1f8f0e690f -r 17bcc2aab111 tests/ChangeLog
--- a/tests/ChangeLog Sat Jun 25 14:00:48 2011 +0100
+++ b/tests/ChangeLog Tue Jun 28 18:34:26 2011 +0100
@@ -1,3 +1,9 @@
+2011-06-28 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * automated/mule-tests.el:
+ Update the charsets-in-region test to reflect the GPLv3 HELLO
+ file.
+
2011-05-20 Jerry James <james(a)xemacs.org>
* tooltalk/Makefile (DESTDIR): New variable for all Makefiles, unused
diff -r 3d1f8f0e690f -r 17bcc2aab111 tests/automated/mule-tests.el
--- a/tests/automated/mule-tests.el Sat Jun 25 14:00:48 2011 +0100
+++ b/tests/automated/mule-tests.el Tue Jun 28 18:34:26 2011 +0100
@@ -572,22 +572,28 @@
;; Test charset-in-* functions
;;---------------------------------------------------------------
(with-temp-buffer
- (insert-file-contents (locate-data-file "HELLO"))
(let ((sorted-charsets-in-HELLO
- '(arabic-iso8859-6 ascii chinese-big5-1 chinese-gb2312
- cyrillic-iso8859-5 ethiopic greek-iso8859-7
- hebrew-iso8859-8 japanese-jisx0208 japanese-jisx0212
- katakana-jisx0201 korean-ksc5601 latin-iso8859-1
- latin-iso8859-2 vietnamese-viscii-lower)))
+ '(arabic-iso8859-6 ascii chinese-big5-1 chinese-gb2312
+ cyrillic-iso8859-5 ethiopic greek-iso8859-7 hebrew-iso8859-8
+ indian-is13194 ipa japanese-jisx0208 japanese-jisx0212
+ katakana-jisx0201 korean-ksc5601 lao latin-iso8859-1
+ latin-iso8859-2 latin-iso8859-3 latin-iso8859-4 thai-tis620
+ tibetan vietnamese-viscii-lower))
+ (coding-system-for-read 'iso-2022-7))
+ (insert-file-contents (locate-data-file "HELLO"))
(Assert (equal
;; The sort is to make the algorithm of charsets-in-region
;; irrelevant.
- (sort (charsets-in-region (point-min) (point-max))
+ (sort (remove* "^jit-ucs-charset-" (charsets-in-region (point-min)
+ (point-max))
+:test 'string-match :key 'symbol-name)
#'string<)
sorted-charsets-in-HELLO))
(Assert (equal
- (sort (charsets-in-string (buffer-substring (point-min)
- (point-max)))
+ (sort (remove* "^jit-ucs-charset-" (charsets-in-string
+ (buffer-substring (point-min)
+ (point-max)))
+:test 'string-match :key 'symbol-name)
#'string<)
sorted-charsets-in-HELLO))))
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
[COMMIT] Add `function-key-map-parent', for non-console-specific `function-key-map' bindings
13 years, 6 months
Aidan Kehoe
APPROVE COMMIT
NOTE: This patch has been committed.
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1309006848 -3600
# Node ID 3d1f8f0e690f27b4b12aa8c8c025fe3da95dbf92
# Parent dc88f282ddc346bc5298a95734012370bea4a430
Add `function-key-map-parent', for non-console-specific `function-key-map' bindings
src/ChangeLog addition:
2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
* console.c:
* console.c (allocate_console):
* console.c (vars_of_console):
* console.c (complex_vars_of_console):
* lisp.h:
Add a new keymap variable, function-key-map-parent; use it as the
parent of each console-specific function-key-map. This is
appropriate for things like x-compose processing.
lisp/ChangeLog addition:
2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
* gtk-init.el:
* gtk-init.el (make-device-late-gtk-entry-point):
* gtk-init.el (gtk-initialize-compose): Removed.
* keymap.el:
* keymap.el (function-key-map-parent):
* x-init.el (x-initialize-compose): Removed.
* x-init.el (make-device-late-x-entry-point):
Make the bindings for dead-acute and friends in
function-key-map-parent, rather than function-key-map; do this in
keymap.el rather than in window-system-specific code, since the
compose processing is generally useful and not X11-specific.
It's probably reasonable to rename x-compose.el to compose.el at
this point, but I haven't done that.
man/ChangeLog addition:
2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
* lispref/os.texi (Translating Input):
Document the just-added function-key-map-parent.
diff -r dc88f282ddc3 -r 3d1f8f0e690f lisp/ChangeLog
--- a/lisp/ChangeLog Fri Jun 24 19:59:35 2011 +0100
+++ b/lisp/ChangeLog Sat Jun 25 14:00:48 2011 +0100
@@ -1,3 +1,19 @@
+2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * gtk-init.el:
+ * gtk-init.el (make-device-late-gtk-entry-point):
+ * gtk-init.el (gtk-initialize-compose): Removed.
+ * keymap.el:
+ * keymap.el (function-key-map-parent):
+ * x-init.el (x-initialize-compose): Removed.
+ * x-init.el (make-device-late-x-entry-point):
+ Make the bindings for dead-acute and friends in
+ function-key-map-parent, rather than function-key-map; do this in
+ keymap.el rather than in window-system-specific code, since the
+ compose processing is generally useful and not X11-specific.
+ It's probably reasonable to rename x-compose.el to compose.el at
+ this point, but I haven't done that.
+
2011-06-23 Didier Verna <didier(a)xemacs.org>
From smitchel <smitchel(a)bnin.net>
diff -r dc88f282ddc3 -r 3d1f8f0e690f lisp/gtk-init.el
--- a/lisp/gtk-init.el Fri Jun 24 19:59:35 2011 +0100
+++ b/lisp/gtk-init.el Sat Jun 25 14:00:48 2011 +0100
@@ -109,7 +109,6 @@
(defun make-device-late-gtk-entry-point (device)
"Entry-Point to do any Lisp-level GTK device-specific initialization."
- (gtk-initialize-compose device)
(unless make-device-late-gtk-entry-point-called-p
(setq make-device-late-gtk-entry-point-called-p t)))
@@ -149,120 +148,3 @@
(push '("-geometry" . gtk-init-handle-geometry) command-switch-alist)
-;;; Stuff to get compose keys working on GTK
-(eval-when-compile
- (defmacro gtk-define-dead-key (key map device)
- `(when (gtk-keysym-on-keyboard-p ',key device)
- (define-key function-key-map [,key] ',map))))
-
-(defun gtk-initialize-compose (device)
- "Enable compose processing"
- (autoload 'compose-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-acute-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-grave-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-cedilla-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-diaeresis-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-circumflex-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-tilde-map "gtk-compose" nil t 'keymap)
-
- (when (gtk-keysym-on-keyboard-p 'multi-key device)
- (define-key function-key-map [multi-key] 'compose-map))
-
- ;; The dead keys might really be called just about anything, depending
- ;; on the vendor. MIT thinks that the prefixes are "SunFA_", "D", and
- ;; "hpmute_" for Sun, DEC, and HP respectively. However, OpenWindows 3
- ;; thinks that the prefixes are "SunXK_FA_", "DXK_", and "hpXK_mute_".
- ;; And HP (who don't mention Sun and DEC at all) use "XK_mute_".
- ;; Go figure.
-
- ;; Presumably if someone is running OpenWindows, they won't be using
- ;; the DEC or HP keysyms, but if they are defined then that is possible,
- ;; so in that case we accept them all.
-
- ;; If things seem not to be working, you might want to check your
- ;; /usr/lib/X11/XKeysymDB file to see if your vendor has an equally
- ;; mixed up view of what these keys should be called.
-
- ;; Canonical names:
- (gtk-define-dead-key acute compose-acute-map device)
- (gtk-define-dead-key grave compose-grave-map device)
- (gtk-define-dead-key cedilla compose-cedilla-map device)
- (gtk-define-dead-key diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key circumflex compose-circumflex-map device)
- (gtk-define-dead-key tilde compose-tilde-map device)
- (gtk-define-dead-key degree compose-ring-map device)
-
- ;; Sun according to MIT:
- (gtk-define-dead-key SunFA_Acute compose-acute-map device)
- (gtk-define-dead-key SunFA_Grave compose-grave-map device)
- (gtk-define-dead-key SunFA_Cedilla compose-cedilla-map device)
- (gtk-define-dead-key SunFA_Diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key SunFA_Circum compose-circumflex-map device)
- (gtk-define-dead-key SunFA_Tilde compose-tilde-map device)
-
- ;; Sun according to OpenWindows 2:
- (gtk-define-dead-key Dead_Grave compose-grave-map device)
- (gtk-define-dead-key Dead_Circum compose-circumflex-map device)
- (gtk-define-dead-key Dead_Tilde compose-tilde-map device)
-
- ;; Sun according to OpenWindows 3:
- (gtk-define-dead-key SunXK_FA_Acute compose-acute-map device)
- (gtk-define-dead-key SunXK_FA_Grave compose-grave-map device)
- (gtk-define-dead-key SunXK_FA_Cedilla compose-cedilla-map device)
- (gtk-define-dead-key SunXK_FA_Diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key SunXK_FA_Circum compose-circumflex-map device)
- (gtk-define-dead-key SunXK_FA_Tilde compose-tilde-map device)
-
- ;; DEC according to MIT:
- (gtk-define-dead-key Dacute_accent compose-acute-map device)
- (gtk-define-dead-key Dgrave_accent compose-grave-map device)
- (gtk-define-dead-key Dcedilla_accent compose-cedilla-map device)
- (gtk-define-dead-key Dcircumflex_accent compose-circumflex-map device)
- (gtk-define-dead-key Dtilde compose-tilde-map device)
- (gtk-define-dead-key Dring_accent compose-ring-map device)
-
- ;; DEC according to OpenWindows 3:
- (gtk-define-dead-key DXK_acute_accent compose-acute-map device)
- (gtk-define-dead-key DXK_grave_accent compose-grave-map device)
- (gtk-define-dead-key DXK_cedilla_accent compose-cedilla-map device)
- (gtk-define-dead-key DXK_circumflex_accent compose-circumflex-map device)
- (gtk-define-dead-key DXK_tilde compose-tilde-map device)
- (gtk-define-dead-key DXK_ring_accent compose-ring-map device)
-
- ;; HP according to MIT:
- (gtk-define-dead-key hpmute_acute compose-acute-map device)
- (gtk-define-dead-key hpmute_grave compose-grave-map device)
- (gtk-define-dead-key hpmute_diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key hpmute_asciicircum compose-circumflex-map device)
- (gtk-define-dead-key hpmute_asciitilde compose-tilde-map device)
-
- ;; Empirically discovered on Linux XFree86 MetroX:
- (gtk-define-dead-key usldead_acute compose-acute-map device)
- (gtk-define-dead-key usldead_grave compose-grave-map device)
- (gtk-define-dead-key usldead_diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key usldead_asciicircum compose-circumflex-map device)
- (gtk-define-dead-key usldead_asciitilde compose-tilde-map device)
-
- ;; HP according to OpenWindows 3:
- (gtk-define-dead-key hpXK_mute_acute compose-acute-map device)
- (gtk-define-dead-key hpXK_mute_grave compose-grave-map device)
- (gtk-define-dead-key hpXK_mute_diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key hpXK_mute_asciicircum compose-circumflex-map device)
- (gtk-define-dead-key hpXK_mute_asciitilde compose-tilde-map device)
-
- ;; HP according to HP-UX 8.0:
- (gtk-define-dead-key XK_mute_acute compose-acute-map device)
- (gtk-define-dead-key XK_mute_grave compose-grave-map device)
- (gtk-define-dead-key XK_mute_diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key XK_mute_asciicircum compose-circumflex-map device)
- (gtk-define-dead-key XK_mute_asciitilde compose-tilde-map device)
-
- ;; Xfree86 seems to use lower case and a hyphen
- (gtk-define-dead-key dead-acute compose-acute-map device)
- (gtk-define-dead-key dead-grave compose-grave-map device)
- (gtk-define-dead-key dead-cedilla compose-cedilla-map device)
- (gtk-define-dead-key dead-diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key dead-circum compose-circumflex-map device)
- (gtk-define-dead-key dead-circumflex compose-circumflex-map device)
- (gtk-define-dead-key dead-tilde compose-tilde-map device))
-
diff -r dc88f282ddc3 -r 3d1f8f0e690f lisp/keymap.el
--- a/lisp/keymap.el Fri Jun 24 19:59:35 2011 +0100
+++ b/lisp/keymap.el Sat Jun 25 14:00:48 2011 +0100
@@ -510,18 +510,141 @@
(error "Event has no character equivalent: %s" event))))
(vector (intern (concat "" (nreverse list))))))
-;; This looks dirty. The following code should maybe go to another
-;; file, and `create-console-hook' should maybe default to nil.
-(add-hook
- 'create-console-hook
- #'(lambda (console)
- (letf (((selected-console) console))
- (define-key function-key-map [?\C-x ?@ ?h] 'event-apply-hyper-modifier)
- (define-key function-key-map [?\C-x ?@ ?s] 'event-apply-super-modifier)
- (define-key function-key-map [?\C-x ?@ ?m] 'event-apply-meta-modifier)
- (define-key function-key-map [?\C-x ?@ ?S] 'event-apply-shift-modifier)
- (define-key function-key-map [?\C-x ?@ ?c] 'event-apply-control-modifier)
- (define-key function-key-map [?\C-x ?@ ?a] 'event-apply-alt-modifier)
- (define-key function-key-map [?\C-x ?@ ?k] 'synthesize-keysym))))
+(define-key function-key-map-parent [?\C-x ?@ ?h] 'event-apply-hyper-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?s] 'event-apply-super-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?m] 'event-apply-meta-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?S] 'event-apply-shift-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?c] 'event-apply-control-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?a] 'event-apply-alt-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?k] 'synthesize-keysym)
+
+;; The autoloads for the compose map, and their bindings in
+;; function-key-map-parent are used by GTK as well as X11. And Julian
+;; Bradfield, at least, uses x-compose on the TTY, it's reasonable to make
+;; them generally available.
+
+(loop for map in '(compose-acute-map compose-breve-map compose-caron-map
+ compose-cedilla-map compose-circumflex-map
+ compose-diaeresis-map compose-dot-map
+ compose-doubleacute-map compose-grave-map
+ compose-hook-map compose-horn-map compose-macron-map
+ compose-map compose-ogonek-map compose-ring-map
+ compose-stroke-map compose-tilde-map)
+ do (autoload map "x-compose" nil t 'keymap))
+
+(loop
+ for (key map)
+ ;; The dead keys might really be called just about anything, depending
+ ;; on the vendor. MIT thinks that the prefixes are "SunFA_", "D", and
+ ;; "hpmute_" for Sun, DEC, and HP respectively. However, OpenWindows 3
+ ;; thinks that the prefixes are "SunXK_FA_", "DXK_", and "hpXK_mute_".
+ ;; And HP (who don't mention Sun and DEC at all) use "XK_mute_". Go
+ ;; figure.
+
+ ;; Presumably if someone is running OpenWindows, they won't be using the
+ ;; DEC or HP keysyms, but if they are defined then that is possible, so
+ ;; in that case we accept them all.
+
+ ;; If things seem not to be working, you might want to check your
+ ;; /usr/lib/X11/XKeysymDB file to see if your vendor has an equally
+ ;; mixed up view of what these keys should be called.
+
+ ;; Canonical names:
+ in '((acute compose-acute-map)
+ (grave compose-grave-map)
+ (cedilla compose-cedilla-map)
+ (diaeresis compose-diaeresis-map)
+ (circumflex compose-circumflex-map)
+ (tilde compose-tilde-map)
+ (degree compose-ring-map)
+ (multi-key compose-map)
+
+ ;; Sun according to MIT:
+ (SunFA_Acute compose-acute-map)
+ (SunFA_Grave compose-grave-map)
+ (SunFA_Cedilla compose-cedilla-map)
+ (SunFA_Diaeresis compose-diaeresis-map)
+ (SunFA_Circum compose-circumflex-map)
+ (SunFA_Tilde compose-tilde-map)
+
+ ;; Sun according to OpenWindows 2:
+ (Dead_Grave compose-grave-map)
+ (Dead_Circum compose-circumflex-map)
+ (Dead_Tilde compose-tilde-map)
+
+ ;; Sun according to OpenWindows 3:
+ (SunXK_FA_Acute compose-acute-map)
+ (SunXK_FA_Grave compose-grave-map)
+ (SunXK_FA_Cedilla compose-cedilla-map)
+ (SunXK_FA_Diaeresis compose-diaeresis-map)
+ (SunXK_FA_Circum compose-circumflex-map)
+ (SunXK_FA_Tilde compose-tilde-map)
+
+ ;; DEC according to MIT:
+ (Dacute_accent compose-acute-map)
+ (Dgrave_accent compose-grave-map)
+ (Dcedilla_accent compose-cedilla-map)
+ (Dcircumflex_accent compose-circumflex-map)
+ (Dtilde compose-tilde-map)
+ (Dring_accent compose-ring-map)
+
+ ;; DEC according to OpenWindows 3:
+ (DXK_acute_accent compose-acute-map)
+ (DXK_grave_accent compose-grave-map)
+ (DXK_cedilla_accent compose-cedilla-map)
+ (DXK_circumflex_accent compose-circumflex-map)
+ (DXK_tilde compose-tilde-map)
+ (DXK_ring_accent compose-ring-map)
+
+ ;; HP according to MIT:
+ (hpmute_acute compose-acute-map)
+ (hpmute_grave compose-grave-map)
+ (hpmute_diaeresis compose-diaeresis-map)
+ (hpmute_asciicircum compose-circumflex-map)
+ (hpmute_asciitilde compose-tilde-map)
+
+ ;; Empirically discovered on Linux XFree86 MetroX:
+ (usldead_acute compose-acute-map)
+ (usldead_grave compose-grave-map)
+ (usldead_diaeresis compose-diaeresis-map)
+ (usldead_asciicircum compose-circumflex-map)
+ (usldead_asciitilde compose-tilde-map)
+
+ ;; HP according to OpenWindows 3:
+ (hpXK_mute_acute compose-acute-map)
+ (hpXK_mute_grave compose-grave-map)
+ (hpXK_mute_diaeresis compose-diaeresis-map)
+ (hpXK_mute_asciicircum compose-circumflex-map)
+ (hpXK_mute_asciitilde compose-tilde-map)
+
+ ;; HP according to HP-UX 8.0:
+ (XK_mute_acute compose-acute-map)
+ (XK_mute_grave compose-grave-map)
+ (XK_mute_diaeresis compose-diaeresis-map)
+ (XK_mute_asciicircum compose-circumflex-map)
+ (XK_mute_asciitilde compose-tilde-map)
+
+ ;; XFree86 uses lower case and an underscore. XEmacs converts the
+ ;; underscore to a hyphen in x_keysym_to_emacs_keysym because the
+ ;; keysym is in the "Keyboard" character set, which seems a very
+ ;; arbitrary approach.
+ (dead-acute compose-acute-map)
+ (dead-grave compose-grave-map)
+ (dead-cedilla compose-cedilla-map)
+ (dead-diaeresis compose-diaeresis-map)
+ (dead-circum compose-circumflex-map)
+ (dead-circumflex compose-circumflex-map)
+ (dead-tilde compose-tilde-map)
+ (dead-abovering compose-ring-map)
+ (dead-caron compose-caron-map)
+ (dead-macron compose-macron-map)
+ (dead-breve compose-breve-map)
+ (dead-abovedot compose-dot-map)
+ (dead-doubleacute compose-doubleacute-map)
+ (dead-ogonek compose-ogonek-map)
+ (dead-hook compose-hook-map)
+ (dead-horn compose-horn-map)
+ (dead-stroke compose-stroke-map))
+ do (define-key function-key-map-parent (vector key) map))
;;; keymap.el ends here
diff -r dc88f282ddc3 -r 3d1f8f0e690f lisp/x-init.el
--- a/lisp/x-init.el Fri Jun 24 19:59:35 2011 +0100
+++ b/lisp/x-init.el Sat Jun 25 14:00:48 2011 +0100
@@ -79,143 +79,6 @@
(interactive)
(ow-find t))
-;; Load X-server specific code.
-;; Specifically, load some code to repair the grievous damage that MIT and
-;; Sun have done to the default keymap for the Sun keyboards.
-(defun x-initialize-compose (device)
- "Enable compose key and dead key processing on DEVICE."
- (loop for map in '(compose-map compose-acute-map compose-grave-map
- compose-cedilla-map compose-diaeresis-map
- compose-circumflex-map compose-tilde-map
- compose-ring-map compose-caron-map compose-macron-map
- compose-breve-map compose-dot-map
- compose-doubleacute-map compose-ogonek-map
- compose-hook-map compose-horn-map compose-stroke-map)
- do (autoload map "x-compose" nil t 'keymap))
-
- (loop
- for (key map)
- ;; The dead keys might really be called just about anything, depending
- ;; on the vendor. MIT thinks that the prefixes are "SunFA_", "D", and
- ;; "hpmute_" for Sun, DEC, and HP respectively. However, OpenWindows 3
- ;; thinks that the prefixes are "SunXK_FA_", "DXK_", and "hpXK_mute_".
- ;; And HP (who don't mention Sun and DEC at all) use "XK_mute_". Go
- ;; figure.
-
- ;; Presumably if someone is running OpenWindows, they won't be using the
- ;; DEC or HP keysyms, but if they are defined then that is possible, so
- ;; in that case we accept them all.
-
- ;; If things seem not to be working, you might want to check your
- ;; /usr/lib/X11/XKeysymDB file to see if your vendor has an equally
- ;; mixed up view of what these keys should be called.
-
- ;; Canonical names:
- in '((acute compose-acute-map)
- (grave compose-grave-map)
- (cedilla compose-cedilla-map)
- (diaeresis compose-diaeresis-map)
- (circumflex compose-circumflex-map)
- (tilde compose-tilde-map)
- (degree compose-ring-map)
- (multi-key compose-map)
-
- ;; Sun according to MIT:
- (SunFA_Acute compose-acute-map)
- (SunFA_Grave compose-grave-map)
- (SunFA_Cedilla compose-cedilla-map)
- (SunFA_Diaeresis compose-diaeresis-map)
- (SunFA_Circum compose-circumflex-map)
- (SunFA_Tilde compose-tilde-map)
-
- ;; Sun according to OpenWindows 2:
- (Dead_Grave compose-grave-map)
- (Dead_Circum compose-circumflex-map)
- (Dead_Tilde compose-tilde-map)
-
- ;; Sun according to OpenWindows 3:
- (SunXK_FA_Acute compose-acute-map)
- (SunXK_FA_Grave compose-grave-map)
- (SunXK_FA_Cedilla compose-cedilla-map)
- (SunXK_FA_Diaeresis compose-diaeresis-map)
- (SunXK_FA_Circum compose-circumflex-map)
- (SunXK_FA_Tilde compose-tilde-map)
-
- ;; DEC according to MIT:
- (Dacute_accent compose-acute-map)
- (Dgrave_accent compose-grave-map)
- (Dcedilla_accent compose-cedilla-map)
- (Dcircumflex_accent compose-circumflex-map)
- (Dtilde compose-tilde-map)
- (Dring_accent compose-ring-map)
-
- ;; DEC according to OpenWindows 3:
- (DXK_acute_accent compose-acute-map)
- (DXK_grave_accent compose-grave-map)
- (DXK_cedilla_accent compose-cedilla-map)
- (DXK_circumflex_accent compose-circumflex-map)
- (DXK_tilde compose-tilde-map)
- (DXK_ring_accent compose-ring-map)
-
- ;; HP according to MIT:
- (hpmute_acute compose-acute-map)
- (hpmute_grave compose-grave-map)
- (hpmute_diaeresis compose-diaeresis-map)
- (hpmute_asciicircum compose-circumflex-map)
- (hpmute_asciitilde compose-tilde-map)
-
- ;; Empirically discovered on Linux XFree86 MetroX:
- (usldead_acute compose-acute-map)
- (usldead_grave compose-grave-map)
- (usldead_diaeresis compose-diaeresis-map)
- (usldead_asciicircum compose-circumflex-map)
- (usldead_asciitilde compose-tilde-map)
-
- ;; HP according to OpenWindows 3:
- (hpXK_mute_acute compose-acute-map)
- (hpXK_mute_grave compose-grave-map)
- (hpXK_mute_diaeresis compose-diaeresis-map)
- (hpXK_mute_asciicircum compose-circumflex-map)
- (hpXK_mute_asciitilde compose-tilde-map)
-
- ;; HP according to HP-UX 8.0:
- (XK_mute_acute compose-acute-map)
- (XK_mute_grave compose-grave-map)
- (XK_mute_diaeresis compose-diaeresis-map)
- (XK_mute_asciicircum compose-circumflex-map)
- (XK_mute_asciitilde compose-tilde-map)
-
- ;; [[ XFree86 seems to use lower case and a hyphen ]] Not true;
- ;; they use lower case and an underscore. XEmacs converts the
- ;; underscore to a hyphen in x_keysym_to_emacs_keysym because the
- ;; keysym is in the "Keyboard" character set, which is just totally
- ;; fucking random, considering it doesn't happen for any other
- ;; character sets.
- (dead-acute compose-acute-map)
- (dead-grave compose-grave-map)
- (dead-cedilla compose-cedilla-map)
- (dead-diaeresis compose-diaeresis-map)
- (dead-circum compose-circumflex-map)
- (dead-circumflex compose-circumflex-map)
- (dead-tilde compose-tilde-map)
- (dead-abovering compose-ring-map)
- (dead-caron compose-caron-map)
- (dead-macron compose-macron-map)
- (dead-breve compose-breve-map)
- (dead-abovedot compose-dot-map)
- (dead-doubleacute compose-doubleacute-map)
- (dead-ogonek compose-ogonek-map)
- (dead-hook compose-hook-map)
- (dead-horn compose-horn-map)
- (dead-stroke compose-stroke-map))
-
- ;; Get the correct value for function-key-map
- with function-key-map = (symbol-value-in-console 'function-key-map
- (device-console device)
- function-key-map)
- do (when (x-keysym-on-keyboard-p key device)
- (define-key function-key-map (vector key) map))))
-
(eval-when-compile
(load "x-win-sun" nil t)
(load "x-win-xfree86" nil t))
@@ -291,7 +154,6 @@
"Entry point to do any Lisp-level X device-specific initialization."
;; General code, called on every X device created:
(x-initialize-keyboard device)
- (x-initialize-compose device)
;; And the following code is to be called once, the first time an X11
;; device is created:
(unless make-device-late-x-entry-point-called-p
diff -r dc88f282ddc3 -r 3d1f8f0e690f man/ChangeLog
--- a/man/ChangeLog Fri Jun 24 19:59:35 2011 +0100
+++ b/man/ChangeLog Sat Jun 25 14:00:48 2011 +0100
@@ -1,3 +1,8 @@
+2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * lispref/os.texi (Translating Input):
+ Document the just-added function-key-map-parent.
+
2011-05-20 Jerry James <james(a)xemacs.org>
* Makefile (DESTDIR): New variable for all Makefiles, unused in this
diff -r dc88f282ddc3 -r 3d1f8f0e690f man/lispref/os.texi
--- a/man/lispref/os.texi Fri Jun 24 19:59:35 2011 +0100
+++ b/man/lispref/os.texi Sat Jun 25 14:00:48 2011 +0100
@@ -1301,10 +1301,10 @@
@end ignore
@defvar function-key-map
-This variable holds a keymap that describes the character sequences
-sent by function keys on an ordinary character terminal. This keymap
-uses the same data structure as other keymaps, but is used differently: it
-specifies translations to make while reading events.
+This console-local variable holds a keymap that describes the character
+sequences sent by function keys on an ordinary character terminal. This
+keymap uses the same data structure as other keymaps, but is used
+differently: it specifies translations to make while reading events.
If @code{function-key-map} ``binds'' a key sequence @var{k} to a vector
@var{v}, then when @var{k} appears as a subsequence @emph{anywhere} in a
@@ -1337,6 +1337,14 @@
the character sequences that represent function keys.
@end defvar
+@defvar function-key-map-parent
+The parent keymap of @code{function-key-map} is a non-console-local keymap,
+@code{function-key-map-parent}, and any additions to
+@code{function-key-map} that are not specific to a given console should
+normally go into @code{function-key-map-parent} rather than
+@code{function-key-map}.
+@end defvar
+
@defvar key-translation-map
This variable is another keymap used just like @code{function-key-map}
to translate input events into other events. It differs from
diff -r dc88f282ddc3 -r 3d1f8f0e690f src/ChangeLog
--- a/src/ChangeLog Fri Jun 24 19:59:35 2011 +0100
+++ b/src/ChangeLog Sat Jun 25 14:00:48 2011 +0100
@@ -1,3 +1,14 @@
+2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * console.c:
+ * console.c (allocate_console):
+ * console.c (vars_of_console):
+ * console.c (complex_vars_of_console):
+ * lisp.h:
+ Add a new keymap variable, function-key-map-parent; use it as the
+ parent of each console-specific function-key-map. This is
+ appropriate for things like x-compose processing.
+
2011-06-19 Aidan Kehoe <kehoea(a)parhasard.net>
* fns.c:
diff -r dc88f282ddc3 -r 3d1f8f0e690f src/console.c
--- a/src/console.c Fri Jun 24 19:59:35 2011 +0100
+++ b/src/console.c Sat Jun 25 14:00:48 2011 +0100
@@ -45,6 +45,8 @@
Lisp_Object Vcreate_console_hook, Vdelete_console_hook;
+Lisp_Object Vfunction_key_map_parent;
+
Lisp_Object Qconsolep, Qconsole_live_p;
Lisp_Object Qcreate_console_hook;
Lisp_Object Qdelete_console_hook;
@@ -203,6 +205,7 @@
con->contype = get_console_variant (type);
con->command_builder = allocate_command_builder (console, 1);
con->function_key_map = Fmake_sparse_keymap (Qnil);
+ Fset_keymap_parents (con->function_key_map, Vfunction_key_map_parent);
set_quit_events (con, make_char (7)); /* C-g */
UNGCPRO;
@@ -1306,6 +1309,15 @@
*/ );
Vdelete_console_hook = Qnil;
+ DEFVAR_LISP ("function-key-map-parent", &Vfunction_key_map_parent /*
+Parent keymap for `function-key-map'.
+
+This keymap is appropriate for bindings that are not console-specific, but
+yet should take advantage of the substitution made by `read-key-sequence'
+for bindings in `function-key-map'.
+*/ );
+ Vfunction_key_map_parent = Fmake_sparse_keymap (Qnil);
+
#ifdef HAVE_WINDOW_SYSTEM
Fprovide (intern ("window-system"));
#endif
@@ -1530,6 +1542,11 @@
\[#<keypress-event control-X> #<keypress-event f1>]. If [f1]
were a prefix key, typing `ESC O P x' would return
\[#<keypress-event f1> #<keypress-event x>].
+
+The parent keymap of `function-key-map' when created is
+`function-key-map-parent', which is not a console-local variable. Bindings
+appropriate for `function-key-map' but which are likely to be relevant to
+every created console should be created in `function-key-map-parent'.
*/ );
#ifdef HAVE_TTY
diff -r dc88f282ddc3 -r 3d1f8f0e690f src/lisp.h
--- a/src/lisp.h Fri Jun 24 19:59:35 2011 +0100
+++ b/src/lisp.h Sat Jun 25 14:00:48 2011 +0100
@@ -5418,6 +5418,7 @@
EXFUN (Fkey_description, 1);
EXFUN (Flookup_key, 3);
EXFUN (Fmake_sparse_keymap, 1);
+EXFUN (Fset_keymap_parents, 2);
void where_is_to_char (Lisp_Object, Eistring *);
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
commit: Add `function-key-map-parent', for non-console-specific `function-key-map' bindings
13 years, 6 months
Aidan Kehoe
changeset: 5529:3d1f8f0e690f
tag: tip
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sat Jun 25 14:00:48 2011 +0100
files: lisp/ChangeLog lisp/gtk-init.el lisp/keymap.el lisp/x-init.el man/ChangeLog man/lispref/os.texi src/ChangeLog src/console.c src/lisp.h
description:
Add `function-key-map-parent', for non-console-specific `function-key-map' bindings
src/ChangeLog addition:
2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
* console.c:
* console.c (allocate_console):
* console.c (vars_of_console):
* console.c (complex_vars_of_console):
* lisp.h:
Add a new keymap variable, function-key-map-parent; use it as the
parent of each console-specific function-key-map. This is
appropriate for things like x-compose processing.
lisp/ChangeLog addition:
2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
* gtk-init.el:
* gtk-init.el (make-device-late-gtk-entry-point):
* gtk-init.el (gtk-initialize-compose): Removed.
* keymap.el:
* keymap.el (function-key-map-parent):
* x-init.el (x-initialize-compose): Removed.
* x-init.el (make-device-late-x-entry-point):
Make the bindings for dead-acute and friends in
function-key-map-parent, rather than function-key-map; do this in
keymap.el rather than in window-system-specific code, since the
compose processing is generally useful and not X11-specific.
It's probably reasonable to rename x-compose.el to compose.el at
this point, but I haven't done that.
man/ChangeLog addition:
2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
* lispref/os.texi (Translating Input):
Document the just-added function-key-map-parent.
diff -r dc88f282ddc3 -r 3d1f8f0e690f lisp/ChangeLog
--- a/lisp/ChangeLog Fri Jun 24 19:59:35 2011 +0100
+++ b/lisp/ChangeLog Sat Jun 25 14:00:48 2011 +0100
@@ -1,3 +1,19 @@
+2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * gtk-init.el:
+ * gtk-init.el (make-device-late-gtk-entry-point):
+ * gtk-init.el (gtk-initialize-compose): Removed.
+ * keymap.el:
+ * keymap.el (function-key-map-parent):
+ * x-init.el (x-initialize-compose): Removed.
+ * x-init.el (make-device-late-x-entry-point):
+ Make the bindings for dead-acute and friends in
+ function-key-map-parent, rather than function-key-map; do this in
+ keymap.el rather than in window-system-specific code, since the
+ compose processing is generally useful and not X11-specific.
+ It's probably reasonable to rename x-compose.el to compose.el at
+ this point, but I haven't done that.
+
2011-06-23 Didier Verna <didier(a)xemacs.org>
From smitchel <smitchel(a)bnin.net>
diff -r dc88f282ddc3 -r 3d1f8f0e690f lisp/gtk-init.el
--- a/lisp/gtk-init.el Fri Jun 24 19:59:35 2011 +0100
+++ b/lisp/gtk-init.el Sat Jun 25 14:00:48 2011 +0100
@@ -109,7 +109,6 @@
(defun make-device-late-gtk-entry-point (device)
"Entry-Point to do any Lisp-level GTK device-specific initialization."
- (gtk-initialize-compose device)
(unless make-device-late-gtk-entry-point-called-p
(setq make-device-late-gtk-entry-point-called-p t)))
@@ -149,120 +148,3 @@
(push '("-geometry" . gtk-init-handle-geometry) command-switch-alist)
-;;; Stuff to get compose keys working on GTK
-(eval-when-compile
- (defmacro gtk-define-dead-key (key map device)
- `(when (gtk-keysym-on-keyboard-p ',key device)
- (define-key function-key-map [,key] ',map))))
-
-(defun gtk-initialize-compose (device)
- "Enable compose processing"
- (autoload 'compose-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-acute-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-grave-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-cedilla-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-diaeresis-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-circumflex-map "gtk-compose" nil t 'keymap)
- (autoload 'compose-tilde-map "gtk-compose" nil t 'keymap)
-
- (when (gtk-keysym-on-keyboard-p 'multi-key device)
- (define-key function-key-map [multi-key] 'compose-map))
-
- ;; The dead keys might really be called just about anything, depending
- ;; on the vendor. MIT thinks that the prefixes are "SunFA_", "D", and
- ;; "hpmute_" for Sun, DEC, and HP respectively. However, OpenWindows 3
- ;; thinks that the prefixes are "SunXK_FA_", "DXK_", and "hpXK_mute_".
- ;; And HP (who don't mention Sun and DEC at all) use "XK_mute_".
- ;; Go figure.
-
- ;; Presumably if someone is running OpenWindows, they won't be using
- ;; the DEC or HP keysyms, but if they are defined then that is possible,
- ;; so in that case we accept them all.
-
- ;; If things seem not to be working, you might want to check your
- ;; /usr/lib/X11/XKeysymDB file to see if your vendor has an equally
- ;; mixed up view of what these keys should be called.
-
- ;; Canonical names:
- (gtk-define-dead-key acute compose-acute-map device)
- (gtk-define-dead-key grave compose-grave-map device)
- (gtk-define-dead-key cedilla compose-cedilla-map device)
- (gtk-define-dead-key diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key circumflex compose-circumflex-map device)
- (gtk-define-dead-key tilde compose-tilde-map device)
- (gtk-define-dead-key degree compose-ring-map device)
-
- ;; Sun according to MIT:
- (gtk-define-dead-key SunFA_Acute compose-acute-map device)
- (gtk-define-dead-key SunFA_Grave compose-grave-map device)
- (gtk-define-dead-key SunFA_Cedilla compose-cedilla-map device)
- (gtk-define-dead-key SunFA_Diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key SunFA_Circum compose-circumflex-map device)
- (gtk-define-dead-key SunFA_Tilde compose-tilde-map device)
-
- ;; Sun according to OpenWindows 2:
- (gtk-define-dead-key Dead_Grave compose-grave-map device)
- (gtk-define-dead-key Dead_Circum compose-circumflex-map device)
- (gtk-define-dead-key Dead_Tilde compose-tilde-map device)
-
- ;; Sun according to OpenWindows 3:
- (gtk-define-dead-key SunXK_FA_Acute compose-acute-map device)
- (gtk-define-dead-key SunXK_FA_Grave compose-grave-map device)
- (gtk-define-dead-key SunXK_FA_Cedilla compose-cedilla-map device)
- (gtk-define-dead-key SunXK_FA_Diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key SunXK_FA_Circum compose-circumflex-map device)
- (gtk-define-dead-key SunXK_FA_Tilde compose-tilde-map device)
-
- ;; DEC according to MIT:
- (gtk-define-dead-key Dacute_accent compose-acute-map device)
- (gtk-define-dead-key Dgrave_accent compose-grave-map device)
- (gtk-define-dead-key Dcedilla_accent compose-cedilla-map device)
- (gtk-define-dead-key Dcircumflex_accent compose-circumflex-map device)
- (gtk-define-dead-key Dtilde compose-tilde-map device)
- (gtk-define-dead-key Dring_accent compose-ring-map device)
-
- ;; DEC according to OpenWindows 3:
- (gtk-define-dead-key DXK_acute_accent compose-acute-map device)
- (gtk-define-dead-key DXK_grave_accent compose-grave-map device)
- (gtk-define-dead-key DXK_cedilla_accent compose-cedilla-map device)
- (gtk-define-dead-key DXK_circumflex_accent compose-circumflex-map device)
- (gtk-define-dead-key DXK_tilde compose-tilde-map device)
- (gtk-define-dead-key DXK_ring_accent compose-ring-map device)
-
- ;; HP according to MIT:
- (gtk-define-dead-key hpmute_acute compose-acute-map device)
- (gtk-define-dead-key hpmute_grave compose-grave-map device)
- (gtk-define-dead-key hpmute_diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key hpmute_asciicircum compose-circumflex-map device)
- (gtk-define-dead-key hpmute_asciitilde compose-tilde-map device)
-
- ;; Empirically discovered on Linux XFree86 MetroX:
- (gtk-define-dead-key usldead_acute compose-acute-map device)
- (gtk-define-dead-key usldead_grave compose-grave-map device)
- (gtk-define-dead-key usldead_diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key usldead_asciicircum compose-circumflex-map device)
- (gtk-define-dead-key usldead_asciitilde compose-tilde-map device)
-
- ;; HP according to OpenWindows 3:
- (gtk-define-dead-key hpXK_mute_acute compose-acute-map device)
- (gtk-define-dead-key hpXK_mute_grave compose-grave-map device)
- (gtk-define-dead-key hpXK_mute_diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key hpXK_mute_asciicircum compose-circumflex-map device)
- (gtk-define-dead-key hpXK_mute_asciitilde compose-tilde-map device)
-
- ;; HP according to HP-UX 8.0:
- (gtk-define-dead-key XK_mute_acute compose-acute-map device)
- (gtk-define-dead-key XK_mute_grave compose-grave-map device)
- (gtk-define-dead-key XK_mute_diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key XK_mute_asciicircum compose-circumflex-map device)
- (gtk-define-dead-key XK_mute_asciitilde compose-tilde-map device)
-
- ;; Xfree86 seems to use lower case and a hyphen
- (gtk-define-dead-key dead-acute compose-acute-map device)
- (gtk-define-dead-key dead-grave compose-grave-map device)
- (gtk-define-dead-key dead-cedilla compose-cedilla-map device)
- (gtk-define-dead-key dead-diaeresis compose-diaeresis-map device)
- (gtk-define-dead-key dead-circum compose-circumflex-map device)
- (gtk-define-dead-key dead-circumflex compose-circumflex-map device)
- (gtk-define-dead-key dead-tilde compose-tilde-map device))
-
diff -r dc88f282ddc3 -r 3d1f8f0e690f lisp/keymap.el
--- a/lisp/keymap.el Fri Jun 24 19:59:35 2011 +0100
+++ b/lisp/keymap.el Sat Jun 25 14:00:48 2011 +0100
@@ -510,18 +510,141 @@
(error "Event has no character equivalent: %s" event))))
(vector (intern (concat "" (nreverse list))))))
-;; This looks dirty. The following code should maybe go to another
-;; file, and `create-console-hook' should maybe default to nil.
-(add-hook
- 'create-console-hook
- #'(lambda (console)
- (letf (((selected-console) console))
- (define-key function-key-map [?\C-x ?@ ?h] 'event-apply-hyper-modifier)
- (define-key function-key-map [?\C-x ?@ ?s] 'event-apply-super-modifier)
- (define-key function-key-map [?\C-x ?@ ?m] 'event-apply-meta-modifier)
- (define-key function-key-map [?\C-x ?@ ?S] 'event-apply-shift-modifier)
- (define-key function-key-map [?\C-x ?@ ?c] 'event-apply-control-modifier)
- (define-key function-key-map [?\C-x ?@ ?a] 'event-apply-alt-modifier)
- (define-key function-key-map [?\C-x ?@ ?k] 'synthesize-keysym))))
+(define-key function-key-map-parent [?\C-x ?@ ?h] 'event-apply-hyper-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?s] 'event-apply-super-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?m] 'event-apply-meta-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?S] 'event-apply-shift-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?c] 'event-apply-control-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?a] 'event-apply-alt-modifier)
+(define-key function-key-map-parent [?\C-x ?@ ?k] 'synthesize-keysym)
+
+;; The autoloads for the compose map, and their bindings in
+;; function-key-map-parent are used by GTK as well as X11. And Julian
+;; Bradfield, at least, uses x-compose on the TTY, it's reasonable to make
+;; them generally available.
+
+(loop for map in '(compose-acute-map compose-breve-map compose-caron-map
+ compose-cedilla-map compose-circumflex-map
+ compose-diaeresis-map compose-dot-map
+ compose-doubleacute-map compose-grave-map
+ compose-hook-map compose-horn-map compose-macron-map
+ compose-map compose-ogonek-map compose-ring-map
+ compose-stroke-map compose-tilde-map)
+ do (autoload map "x-compose" nil t 'keymap))
+
+(loop
+ for (key map)
+ ;; The dead keys might really be called just about anything, depending
+ ;; on the vendor. MIT thinks that the prefixes are "SunFA_", "D", and
+ ;; "hpmute_" for Sun, DEC, and HP respectively. However, OpenWindows 3
+ ;; thinks that the prefixes are "SunXK_FA_", "DXK_", and "hpXK_mute_".
+ ;; And HP (who don't mention Sun and DEC at all) use "XK_mute_". Go
+ ;; figure.
+
+ ;; Presumably if someone is running OpenWindows, they won't be using the
+ ;; DEC or HP keysyms, but if they are defined then that is possible, so
+ ;; in that case we accept them all.
+
+ ;; If things seem not to be working, you might want to check your
+ ;; /usr/lib/X11/XKeysymDB file to see if your vendor has an equally
+ ;; mixed up view of what these keys should be called.
+
+ ;; Canonical names:
+ in '((acute compose-acute-map)
+ (grave compose-grave-map)
+ (cedilla compose-cedilla-map)
+ (diaeresis compose-diaeresis-map)
+ (circumflex compose-circumflex-map)
+ (tilde compose-tilde-map)
+ (degree compose-ring-map)
+ (multi-key compose-map)
+
+ ;; Sun according to MIT:
+ (SunFA_Acute compose-acute-map)
+ (SunFA_Grave compose-grave-map)
+ (SunFA_Cedilla compose-cedilla-map)
+ (SunFA_Diaeresis compose-diaeresis-map)
+ (SunFA_Circum compose-circumflex-map)
+ (SunFA_Tilde compose-tilde-map)
+
+ ;; Sun according to OpenWindows 2:
+ (Dead_Grave compose-grave-map)
+ (Dead_Circum compose-circumflex-map)
+ (Dead_Tilde compose-tilde-map)
+
+ ;; Sun according to OpenWindows 3:
+ (SunXK_FA_Acute compose-acute-map)
+ (SunXK_FA_Grave compose-grave-map)
+ (SunXK_FA_Cedilla compose-cedilla-map)
+ (SunXK_FA_Diaeresis compose-diaeresis-map)
+ (SunXK_FA_Circum compose-circumflex-map)
+ (SunXK_FA_Tilde compose-tilde-map)
+
+ ;; DEC according to MIT:
+ (Dacute_accent compose-acute-map)
+ (Dgrave_accent compose-grave-map)
+ (Dcedilla_accent compose-cedilla-map)
+ (Dcircumflex_accent compose-circumflex-map)
+ (Dtilde compose-tilde-map)
+ (Dring_accent compose-ring-map)
+
+ ;; DEC according to OpenWindows 3:
+ (DXK_acute_accent compose-acute-map)
+ (DXK_grave_accent compose-grave-map)
+ (DXK_cedilla_accent compose-cedilla-map)
+ (DXK_circumflex_accent compose-circumflex-map)
+ (DXK_tilde compose-tilde-map)
+ (DXK_ring_accent compose-ring-map)
+
+ ;; HP according to MIT:
+ (hpmute_acute compose-acute-map)
+ (hpmute_grave compose-grave-map)
+ (hpmute_diaeresis compose-diaeresis-map)
+ (hpmute_asciicircum compose-circumflex-map)
+ (hpmute_asciitilde compose-tilde-map)
+
+ ;; Empirically discovered on Linux XFree86 MetroX:
+ (usldead_acute compose-acute-map)
+ (usldead_grave compose-grave-map)
+ (usldead_diaeresis compose-diaeresis-map)
+ (usldead_asciicircum compose-circumflex-map)
+ (usldead_asciitilde compose-tilde-map)
+
+ ;; HP according to OpenWindows 3:
+ (hpXK_mute_acute compose-acute-map)
+ (hpXK_mute_grave compose-grave-map)
+ (hpXK_mute_diaeresis compose-diaeresis-map)
+ (hpXK_mute_asciicircum compose-circumflex-map)
+ (hpXK_mute_asciitilde compose-tilde-map)
+
+ ;; HP according to HP-UX 8.0:
+ (XK_mute_acute compose-acute-map)
+ (XK_mute_grave compose-grave-map)
+ (XK_mute_diaeresis compose-diaeresis-map)
+ (XK_mute_asciicircum compose-circumflex-map)
+ (XK_mute_asciitilde compose-tilde-map)
+
+ ;; XFree86 uses lower case and an underscore. XEmacs converts the
+ ;; underscore to a hyphen in x_keysym_to_emacs_keysym because the
+ ;; keysym is in the "Keyboard" character set, which seems a very
+ ;; arbitrary approach.
+ (dead-acute compose-acute-map)
+ (dead-grave compose-grave-map)
+ (dead-cedilla compose-cedilla-map)
+ (dead-diaeresis compose-diaeresis-map)
+ (dead-circum compose-circumflex-map)
+ (dead-circumflex compose-circumflex-map)
+ (dead-tilde compose-tilde-map)
+ (dead-abovering compose-ring-map)
+ (dead-caron compose-caron-map)
+ (dead-macron compose-macron-map)
+ (dead-breve compose-breve-map)
+ (dead-abovedot compose-dot-map)
+ (dead-doubleacute compose-doubleacute-map)
+ (dead-ogonek compose-ogonek-map)
+ (dead-hook compose-hook-map)
+ (dead-horn compose-horn-map)
+ (dead-stroke compose-stroke-map))
+ do (define-key function-key-map-parent (vector key) map))
;;; keymap.el ends here
diff -r dc88f282ddc3 -r 3d1f8f0e690f lisp/x-init.el
--- a/lisp/x-init.el Fri Jun 24 19:59:35 2011 +0100
+++ b/lisp/x-init.el Sat Jun 25 14:00:48 2011 +0100
@@ -79,143 +79,6 @@
(interactive)
(ow-find t))
-;; Load X-server specific code.
-;; Specifically, load some code to repair the grievous damage that MIT and
-;; Sun have done to the default keymap for the Sun keyboards.
-(defun x-initialize-compose (device)
- "Enable compose key and dead key processing on DEVICE."
- (loop for map in '(compose-map compose-acute-map compose-grave-map
- compose-cedilla-map compose-diaeresis-map
- compose-circumflex-map compose-tilde-map
- compose-ring-map compose-caron-map compose-macron-map
- compose-breve-map compose-dot-map
- compose-doubleacute-map compose-ogonek-map
- compose-hook-map compose-horn-map compose-stroke-map)
- do (autoload map "x-compose" nil t 'keymap))
-
- (loop
- for (key map)
- ;; The dead keys might really be called just about anything, depending
- ;; on the vendor. MIT thinks that the prefixes are "SunFA_", "D", and
- ;; "hpmute_" for Sun, DEC, and HP respectively. However, OpenWindows 3
- ;; thinks that the prefixes are "SunXK_FA_", "DXK_", and "hpXK_mute_".
- ;; And HP (who don't mention Sun and DEC at all) use "XK_mute_". Go
- ;; figure.
-
- ;; Presumably if someone is running OpenWindows, they won't be using the
- ;; DEC or HP keysyms, but if they are defined then that is possible, so
- ;; in that case we accept them all.
-
- ;; If things seem not to be working, you might want to check your
- ;; /usr/lib/X11/XKeysymDB file to see if your vendor has an equally
- ;; mixed up view of what these keys should be called.
-
- ;; Canonical names:
- in '((acute compose-acute-map)
- (grave compose-grave-map)
- (cedilla compose-cedilla-map)
- (diaeresis compose-diaeresis-map)
- (circumflex compose-circumflex-map)
- (tilde compose-tilde-map)
- (degree compose-ring-map)
- (multi-key compose-map)
-
- ;; Sun according to MIT:
- (SunFA_Acute compose-acute-map)
- (SunFA_Grave compose-grave-map)
- (SunFA_Cedilla compose-cedilla-map)
- (SunFA_Diaeresis compose-diaeresis-map)
- (SunFA_Circum compose-circumflex-map)
- (SunFA_Tilde compose-tilde-map)
-
- ;; Sun according to OpenWindows 2:
- (Dead_Grave compose-grave-map)
- (Dead_Circum compose-circumflex-map)
- (Dead_Tilde compose-tilde-map)
-
- ;; Sun according to OpenWindows 3:
- (SunXK_FA_Acute compose-acute-map)
- (SunXK_FA_Grave compose-grave-map)
- (SunXK_FA_Cedilla compose-cedilla-map)
- (SunXK_FA_Diaeresis compose-diaeresis-map)
- (SunXK_FA_Circum compose-circumflex-map)
- (SunXK_FA_Tilde compose-tilde-map)
-
- ;; DEC according to MIT:
- (Dacute_accent compose-acute-map)
- (Dgrave_accent compose-grave-map)
- (Dcedilla_accent compose-cedilla-map)
- (Dcircumflex_accent compose-circumflex-map)
- (Dtilde compose-tilde-map)
- (Dring_accent compose-ring-map)
-
- ;; DEC according to OpenWindows 3:
- (DXK_acute_accent compose-acute-map)
- (DXK_grave_accent compose-grave-map)
- (DXK_cedilla_accent compose-cedilla-map)
- (DXK_circumflex_accent compose-circumflex-map)
- (DXK_tilde compose-tilde-map)
- (DXK_ring_accent compose-ring-map)
-
- ;; HP according to MIT:
- (hpmute_acute compose-acute-map)
- (hpmute_grave compose-grave-map)
- (hpmute_diaeresis compose-diaeresis-map)
- (hpmute_asciicircum compose-circumflex-map)
- (hpmute_asciitilde compose-tilde-map)
-
- ;; Empirically discovered on Linux XFree86 MetroX:
- (usldead_acute compose-acute-map)
- (usldead_grave compose-grave-map)
- (usldead_diaeresis compose-diaeresis-map)
- (usldead_asciicircum compose-circumflex-map)
- (usldead_asciitilde compose-tilde-map)
-
- ;; HP according to OpenWindows 3:
- (hpXK_mute_acute compose-acute-map)
- (hpXK_mute_grave compose-grave-map)
- (hpXK_mute_diaeresis compose-diaeresis-map)
- (hpXK_mute_asciicircum compose-circumflex-map)
- (hpXK_mute_asciitilde compose-tilde-map)
-
- ;; HP according to HP-UX 8.0:
- (XK_mute_acute compose-acute-map)
- (XK_mute_grave compose-grave-map)
- (XK_mute_diaeresis compose-diaeresis-map)
- (XK_mute_asciicircum compose-circumflex-map)
- (XK_mute_asciitilde compose-tilde-map)
-
- ;; [[ XFree86 seems to use lower case and a hyphen ]] Not true;
- ;; they use lower case and an underscore. XEmacs converts the
- ;; underscore to a hyphen in x_keysym_to_emacs_keysym because the
- ;; keysym is in the "Keyboard" character set, which is just totally
- ;; fucking random, considering it doesn't happen for any other
- ;; character sets.
- (dead-acute compose-acute-map)
- (dead-grave compose-grave-map)
- (dead-cedilla compose-cedilla-map)
- (dead-diaeresis compose-diaeresis-map)
- (dead-circum compose-circumflex-map)
- (dead-circumflex compose-circumflex-map)
- (dead-tilde compose-tilde-map)
- (dead-abovering compose-ring-map)
- (dead-caron compose-caron-map)
- (dead-macron compose-macron-map)
- (dead-breve compose-breve-map)
- (dead-abovedot compose-dot-map)
- (dead-doubleacute compose-doubleacute-map)
- (dead-ogonek compose-ogonek-map)
- (dead-hook compose-hook-map)
- (dead-horn compose-horn-map)
- (dead-stroke compose-stroke-map))
-
- ;; Get the correct value for function-key-map
- with function-key-map = (symbol-value-in-console 'function-key-map
- (device-console device)
- function-key-map)
- do (when (x-keysym-on-keyboard-p key device)
- (define-key function-key-map (vector key) map))))
-
(eval-when-compile
(load "x-win-sun" nil t)
(load "x-win-xfree86" nil t))
@@ -291,7 +154,6 @@
"Entry point to do any Lisp-level X device-specific initialization."
;; General code, called on every X device created:
(x-initialize-keyboard device)
- (x-initialize-compose device)
;; And the following code is to be called once, the first time an X11
;; device is created:
(unless make-device-late-x-entry-point-called-p
diff -r dc88f282ddc3 -r 3d1f8f0e690f man/ChangeLog
--- a/man/ChangeLog Fri Jun 24 19:59:35 2011 +0100
+++ b/man/ChangeLog Sat Jun 25 14:00:48 2011 +0100
@@ -1,3 +1,8 @@
+2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * lispref/os.texi (Translating Input):
+ Document the just-added function-key-map-parent.
+
2011-05-20 Jerry James <james(a)xemacs.org>
* Makefile (DESTDIR): New variable for all Makefiles, unused in this
diff -r dc88f282ddc3 -r 3d1f8f0e690f man/lispref/os.texi
--- a/man/lispref/os.texi Fri Jun 24 19:59:35 2011 +0100
+++ b/man/lispref/os.texi Sat Jun 25 14:00:48 2011 +0100
@@ -1301,10 +1301,10 @@
@end ignore
@defvar function-key-map
-This variable holds a keymap that describes the character sequences
-sent by function keys on an ordinary character terminal. This keymap
-uses the same data structure as other keymaps, but is used differently: it
-specifies translations to make while reading events.
+This console-local variable holds a keymap that describes the character
+sequences sent by function keys on an ordinary character terminal. This
+keymap uses the same data structure as other keymaps, but is used
+differently: it specifies translations to make while reading events.
If @code{function-key-map} ``binds'' a key sequence @var{k} to a vector
@var{v}, then when @var{k} appears as a subsequence @emph{anywhere} in a
@@ -1337,6 +1337,14 @@
the character sequences that represent function keys.
@end defvar
+@defvar function-key-map-parent
+The parent keymap of @code{function-key-map} is a non-console-local keymap,
+@code{function-key-map-parent}, and any additions to
+@code{function-key-map} that are not specific to a given console should
+normally go into @code{function-key-map-parent} rather than
+@code{function-key-map}.
+@end defvar
+
@defvar key-translation-map
This variable is another keymap used just like @code{function-key-map}
to translate input events into other events. It differs from
diff -r dc88f282ddc3 -r 3d1f8f0e690f src/ChangeLog
--- a/src/ChangeLog Fri Jun 24 19:59:35 2011 +0100
+++ b/src/ChangeLog Sat Jun 25 14:00:48 2011 +0100
@@ -1,3 +1,14 @@
+2011-06-25 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * console.c:
+ * console.c (allocate_console):
+ * console.c (vars_of_console):
+ * console.c (complex_vars_of_console):
+ * lisp.h:
+ Add a new keymap variable, function-key-map-parent; use it as the
+ parent of each console-specific function-key-map. This is
+ appropriate for things like x-compose processing.
+
2011-06-19 Aidan Kehoe <kehoea(a)parhasard.net>
* fns.c:
diff -r dc88f282ddc3 -r 3d1f8f0e690f src/console.c
--- a/src/console.c Fri Jun 24 19:59:35 2011 +0100
+++ b/src/console.c Sat Jun 25 14:00:48 2011 +0100
@@ -45,6 +45,8 @@
Lisp_Object Vcreate_console_hook, Vdelete_console_hook;
+Lisp_Object Vfunction_key_map_parent;
+
Lisp_Object Qconsolep, Qconsole_live_p;
Lisp_Object Qcreate_console_hook;
Lisp_Object Qdelete_console_hook;
@@ -203,6 +205,7 @@
con->contype = get_console_variant (type);
con->command_builder = allocate_command_builder (console, 1);
con->function_key_map = Fmake_sparse_keymap (Qnil);
+ Fset_keymap_parents (con->function_key_map, Vfunction_key_map_parent);
set_quit_events (con, make_char (7)); /* C-g */
UNGCPRO;
@@ -1306,6 +1309,15 @@
*/ );
Vdelete_console_hook = Qnil;
+ DEFVAR_LISP ("function-key-map-parent", &Vfunction_key_map_parent /*
+Parent keymap for `function-key-map'.
+
+This keymap is appropriate for bindings that are not console-specific, but
+yet should take advantage of the substitution made by `read-key-sequence'
+for bindings in `function-key-map'.
+*/ );
+ Vfunction_key_map_parent = Fmake_sparse_keymap (Qnil);
+
#ifdef HAVE_WINDOW_SYSTEM
Fprovide (intern ("window-system"));
#endif
@@ -1530,6 +1542,11 @@
\[#<keypress-event control-X> #<keypress-event f1>]. If [f1]
were a prefix key, typing `ESC O P x' would return
\[#<keypress-event f1> #<keypress-event x>].
+
+The parent keymap of `function-key-map' when created is
+`function-key-map-parent', which is not a console-local variable. Bindings
+appropriate for `function-key-map' but which are likely to be relevant to
+every created console should be created in `function-key-map-parent'.
*/ );
#ifdef HAVE_TTY
diff -r dc88f282ddc3 -r 3d1f8f0e690f src/lisp.h
--- a/src/lisp.h Fri Jun 24 19:59:35 2011 +0100
+++ b/src/lisp.h Sat Jun 25 14:00:48 2011 +0100
@@ -5418,6 +5418,7 @@
EXFUN (Fkey_description, 1);
EXFUN (Flookup_key, 3);
EXFUN (Fmake_sparse_keymap, 1);
+EXFUN (Fset_keymap_parents, 2);
void where_is_to_char (Lisp_Object, Eistring *);
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
[COMMIT] Add a custom group that applies to view-mode-line-string.
13 years, 6 months
Aidan Kehoe
APPROVE COMMIT
NOTE: This patch has been committed.
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1308941892 -3600
# Node ID b3b28406da8c505b39669ed07eb6d3713e4c692c
# Parent 2a6a8da4dd7c1ab2c8455e82a4901ca853db1790
Add a custom group that applies to view-mode-line-string.
lisp/ChangeLog addition:
2011-06-24 Aidan Kehoe <kehoea(a)parhasard.net>
* view-less.el (view):
Add a custom group to this file, so view-mode-line-string has an
associated custom group automatically.
diff -r 2a6a8da4dd7c -r b3b28406da8c lisp/ChangeLog
--- a/lisp/ChangeLog Sun Jun 19 19:47:13 2011 +0100
+++ b/lisp/ChangeLog Fri Jun 24 19:58:12 2011 +0100
@@ -1,3 +1,9 @@
+2011-06-24 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * view-less.el (view):
+ Add a custom group to this file, so view-mode-line-string has an
+ associated custom group automatically.
+
2011-06-19 Aidan Kehoe <kehoea(a)parhasard.net>
* cl-macs.el (cl-defsubst-expand):
diff -r 2a6a8da4dd7c -r b3b28406da8c lisp/view-less.el
--- a/lisp/view-less.el Sun Jun 19 19:47:13 2011 +0100
+++ b/lisp/view-less.el Fri Jun 24 19:58:12 2011 +0100
@@ -38,6 +38,11 @@
;;; Code:
+(defgroup view nil
+ "Peruse file or buffer without editing."
+:link '(function-link view-mode)
+:group 'wp)
+
(defvar view-search-string ""
"Last string searched for with view-search functions.")
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
commit: Merge.
13 years, 6 months
Aidan Kehoe
changeset: 5528:dc88f282ddc3
tag: tip
parent: 5526:9a046b2e6494
parent: 5527:b3b28406da8c
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Fri Jun 24 19:59:35 2011 +0100
files: lisp/ChangeLog
description:
Merge.
diff -r 9a046b2e6494 -r dc88f282ddc3 lisp/ChangeLog
--- a/lisp/ChangeLog Thu Jun 23 08:55:35 2011 +0200
+++ b/lisp/ChangeLog Fri Jun 24 19:59:35 2011 +0100
@@ -4,6 +4,12 @@
* frame.el (get-other-frame): Add missing first argument THIS to
the call to NEXT-FRAME.
+2011-06-24 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * view-less.el (view):
+ Add a custom group to this file, so view-mode-line-string has an
+ associated custom group automatically.
+
2011-06-19 Aidan Kehoe <kehoea(a)parhasard.net>
* cl-macs.el (cl-defsubst-expand):
diff -r 9a046b2e6494 -r dc88f282ddc3 lisp/view-less.el
--- a/lisp/view-less.el Thu Jun 23 08:55:35 2011 +0200
+++ b/lisp/view-less.el Fri Jun 24 19:59:35 2011 +0100
@@ -38,6 +38,11 @@
;;; Code:
+(defgroup view nil
+ "Peruse file or buffer without editing."
+:link '(function-link view-mode)
+:group 'wp)
+
(defvar view-search-string ""
"Last string searched for with view-search functions.")
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
commit: Add a custom group that applies to view-mode-line-string.
13 years, 6 months
Aidan Kehoe
changeset: 5527:b3b28406da8c
parent: 5525:2a6a8da4dd7c
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Fri Jun 24 19:58:12 2011 +0100
files: lisp/ChangeLog lisp/view-less.el
description:
Add a custom group that applies to view-mode-line-string.
lisp/ChangeLog addition:
2011-06-24 Aidan Kehoe <kehoea(a)parhasard.net>
* view-less.el (view):
Add a custom group to this file, so view-mode-line-string has an
associated custom group automatically.
diff -r 2a6a8da4dd7c -r b3b28406da8c lisp/ChangeLog
--- a/lisp/ChangeLog Sun Jun 19 19:47:13 2011 +0100
+++ b/lisp/ChangeLog Fri Jun 24 19:58:12 2011 +0100
@@ -1,3 +1,9 @@
+2011-06-24 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * view-less.el (view):
+ Add a custom group to this file, so view-mode-line-string has an
+ associated custom group automatically.
+
2011-06-19 Aidan Kehoe <kehoea(a)parhasard.net>
* cl-macs.el (cl-defsubst-expand):
diff -r 2a6a8da4dd7c -r b3b28406da8c lisp/view-less.el
--- a/lisp/view-less.el Sun Jun 19 19:47:13 2011 +0100
+++ b/lisp/view-less.el Fri Jun 24 19:58:12 2011 +0100
@@ -38,6 +38,11 @@
;;; Code:
+(defgroup view nil
+ "Peruse file or buffer without editing."
+:link '(function-link view-mode)
+:group 'wp)
+
(defvar view-search-string ""
"Last string searched for with view-search functions.")
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
[COMMIT] Fix get-other-frame bug
13 years, 6 months
Didier Verna
NOTE: This patch has been committed.
Applied this, thanks.
lisp/ChangeLog addition:
2011-06-23 Didier Verna <didier(a)xemacs.org>
From smitchel <smitchel(a)bnin.net>
* frame.el (get-other-frame): Add missing first argument THIS to
the call to NEXT-FRAME.
XEmacs 21.5 source patch:
Diff command: hg diff --git --show-function
Files affected: lisp/frame.el
diff --git a/lisp/frame.el b/lisp/frame.el
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -602,7 +602,7 @@ is not considered (see `next-frame')."
(next (next-frame this 'visible-nomini)))
;; then search iconified frames
(if (eq this next)
- (setq next (next-frame 'visible-iconic-nomini)))
+ (setq next (next-frame this 'visible-iconic-nomini)))
(if (eq this next)
;; otherwise, make a new frame
(make-frame)
--
Resistance is futile. You will be jazzimilated.
Scientific site: http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
commit: Fix get-other-frame bug.
13 years, 6 months
Didier Verna
changeset: 5526:9a046b2e6494
tag: tip
user: Didier Verna <didier(a)lrde.epita.fr>
date: Thu Jun 23 08:55:35 2011 +0200
files: lisp/ChangeLog lisp/frame.el
description:
Fix get-other-frame bug.
-------------------- ChangeLog entries follow: --------------------
lisp/ChangeLog addition:
2011-06-23 Didier Verna <didier(a)xemacs.org>
From smitchel <smitchel(a)bnin.net>
* frame.el (get-other-frame): Add missing first argument THIS to
the call to NEXT-FRAME.
diff -r 2a6a8da4dd7c -r 9a046b2e6494 lisp/ChangeLog
--- a/lisp/ChangeLog Sun Jun 19 19:47:13 2011 +0100
+++ b/lisp/ChangeLog Thu Jun 23 08:55:35 2011 +0200
@@ -1,3 +1,9 @@
+2011-06-23 Didier Verna <didier(a)xemacs.org>
+
+ From smitchel <smitchel(a)bnin.net>
+ * frame.el (get-other-frame): Add missing first argument THIS to
+ the call to NEXT-FRAME.
+
2011-06-19 Aidan Kehoe <kehoea(a)parhasard.net>
* cl-macs.el (cl-defsubst-expand):
diff -r 2a6a8da4dd7c -r 9a046b2e6494 lisp/frame.el
--- a/lisp/frame.el Sun Jun 19 19:47:13 2011 +0100
+++ b/lisp/frame.el Thu Jun 23 08:55:35 2011 +0200
@@ -602,7 +602,7 @@
(next (next-frame this 'visible-nomini)))
;; then search iconified frames
(if (eq this next)
- (setq next (next-frame 'visible-iconic-nomini)))
+ (setq next (next-frame this 'visible-iconic-nomini)))
(if (eq this next)
;; otherwise, make a new frame
(make-frame)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
commit: Fix a bug in my last commit, symbol macros that expand to themselves hang.
13 years, 6 months
Aidan Kehoe
changeset: 5525:2a6a8da4dd7c
tag: tip
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sun Jun 19 19:47:13 2011 +0100
files: lisp/ChangeLog lisp/cl-macs.el
description:
Fix a bug in my last commit, symbol macros that expand to themselves hang.
2011-06-19 Aidan Kehoe <kehoea(a)parhasard.net>
* cl-macs.el (cl-defsubst-expand):
It is occasionally the case that the symbol naming the argument
co-incides with the value that it is replacing; in that case,
using the symbol macro is counterproductive and hangs XEmacs (as
does analogous code in SBCL), so don't.
diff -r e05d98bf9644 -r 2a6a8da4dd7c lisp/ChangeLog
--- a/lisp/ChangeLog Sun Jun 19 19:15:52 2011 +0100
+++ b/lisp/ChangeLog Sun Jun 19 19:47:13 2011 +0100
@@ -1,3 +1,11 @@
+2011-06-19 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * cl-macs.el (cl-defsubst-expand):
+ It is occasionally the case that the symbol naming the argument
+ co-incides with the value that it is replacing; in that case,
+ using the symbol macro is counterproductive and hangs XEmacs (as
+ does analogous code in SBCL), so don't.
+
2011-06-19 Aidan Kehoe <kehoea(a)parhasard.net>
* behavior.el (enable-behavior):
diff -r e05d98bf9644 -r 2a6a8da4dd7c lisp/cl-macs.el
--- a/lisp/cl-macs.el Sun Jun 19 19:15:52 2011 +0100
+++ b/lisp/cl-macs.el Sun Jun 19 19:47:13 2011 +0100
@@ -3223,7 +3223,9 @@
(let* ((symbol-macros nil)
(lets (mapcan #'(lambda (argn argv)
(if (or simple (cl-const-expr-p argv))
- (progn (push (list argn argv) symbol-macros)
+ (progn (or (eq argn argv)
+ (push (list argn argv)
+ symbol-macros))
(and unsafe (list (list argn argv))))
(list (list argn argv))))
argns argvs)))
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches