annotate lisp/x-win-xfree86.el @ 5750:66d2f63df75f

Correct some spelling and formatting in behavior.el. Mentioned in tracker issue 826, the third thing mentioned there (the file name at the bottom of the file) had already been fixed. lisp/ChangeLog addition: 2013-08-05 Aidan Kehoe <kehoea@parhasard.net> * behavior.el: (override-behavior): Correct some spelling and formatting here, thank you Steven Mitchell in tracker issue 826.
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 05 Aug 2013 10:05:32 +0100
parents 1d1f385c9149
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 ;;; x-win-xfree86.el --- runtime initialization for XFree86 servers
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 ;; Copyright (C) 1995 Sun Microsystems, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 ;; Copyright (C) 1995 Ben Wing.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 ;; Author: Ben Wing
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 ;; Author: Martin Buchholz (rewritten to use function-key-map)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 ;; Keywords: terminals
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 ;; This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5165
diff changeset
11 ;; XEmacs is free software: you can redistribute it and/or modify it
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5165
diff changeset
12 ;; under the terms of the GNU General Public License as published by the
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5165
diff changeset
13 ;; Free Software Foundation, either version 3 of the License, or (at your
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5165
diff changeset
14 ;; option) any later version.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5165
diff changeset
16 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5165
diff changeset
17 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5165
diff changeset
18 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5165
diff changeset
19 ;; for more details.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5165
diff changeset
22 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 ;;; Commentary:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 ;; This file is loaded by x-win.el at run-time when we are sure that XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 ;; is running on the display of something running XFree86 (Linux,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 ;; NetBSD, FreeBSD, and perhaps other Intel Unixen).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 ;;; #### bleck!!! Use key-translation-map!
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 ;;; #### Counter-bleck!! We shouldn't override a user binding for F13.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 ;;; So we use function-key-map for now.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 ;;; When we've implemented a fallback-style equivalent of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 ;;; keyboard-translate-table, we'll use that instead. (martin)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 ;; For no obvious reason, shift-F1 is called F13, although Meta-F1 and
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 ;; Control-F1 have normal names.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39
502
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 428
diff changeset
40 ;;; Code:
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 428
diff changeset
41
4477
e34711681f30 Don't determine whether to call general device-type code at startup,
Aidan Kehoe <kehoea@parhasard.net>
parents: 3171
diff changeset
42 (defun x-win-init-xfree86 (device)
3171
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
43
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
44 ;; We know this keyboard is an XFree86 keyboard. As such, we can predict
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
45 ;; what key scan codes will correspond to the keys on US keyboard layout,
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
46 ;; and we can use that information to fall back to the US layout when
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
47 ;; looking up commands that would otherwise fail. (Cf. the hard-coding of
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
48 ;; this information in /usr/X11R6/lib/X11/xkb/keycodes/xfree86 )
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
49 ;;
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
50 ;; These settings for x-us-keymap-first-keycode and
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
51 ;; x-us-keymap-description were determined with
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
52 ;;
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
53 ;; setxkbmap us
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
54 ;; xmodmap -pke > keyboard-description.txt
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
55 ;;
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
56 ;; "8" is the key code of the first line, x-us-keymap-description is
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
57 ;; taken from the column describing the bindings.
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
58
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
59 (setq x-us-keymap-first-keycode 8
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
60 x-us-keymap-description
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
61 [nil nil [?1 ?!] [?2 ?@] [?3 ?\#] [?4 ?$] [?5 ?%] [?6 ?^] [?7 ?&]
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
62 [?8 ?*] [?9 ?\(] [?0 ?\)] [?- ?_] [?= ?+] nil ?\t [?q ?Q]
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
63 [?w ?W] [?e ?E] [?r ?R] [?t ?T] [?y ?Y] [?u ?U] [?i ?I] [?o ?O]
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
64 [?p ?P] [?\[ ?{] [?\] ?}] nil nil [?a ?A] [?s ?S] [?d ?D]
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
65 [?f ?F] [?g ?G] [?h ?H] [?j ?J] [?k ?K] [?l ?L] [?\; ?:]
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
66 [?\' ?\"] [?\` ?~] nil [?\\ ?|] [?z ?Z] [?x ?X] [?c ?C]
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
67 [?v ?V] [?b ?B] [?n ?N] [?m ?M] [?\, ?<] [?\. ?>] [?/ ?\?]
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
68 nil ?* nil ?\ nil nil nil nil nil nil nil nil nil nil nil
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
69 nil nil ?7 ?8 ?9 ?- ?4 ?5 ?6 ?+ ?1 ?2 ?3 ?0 ?\. nil nil
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
70 [?< ?>] nil nil nil nil nil nil nil nil nil nil nil nil
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
71 nil nil nil nil nil ?/ nil nil nil nil nil nil nil nil
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
72 nil nil nil nil nil ?=])
4cad7ff4a200 [xemacs-hg @ 2005-12-24 19:53:53 by aidan]
aidan
parents: 502
diff changeset
73
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 (loop for (key sane-key) in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 '((f13 f1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 (f14 f2)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 (f15 f3)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 (f16 f4)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 (f17 f5)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 (f18 f6)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 (f19 f7)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 (f20 f8)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 (f21 f9)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 (f22 f10)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 (f23 f11)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 (f24 f12))
4482
e3ef34f57070 Bind function-key-map correctly in device-specific startup code.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4477
diff changeset
87 ;; Get the correct value for function-key-map
e3ef34f57070 Bind function-key-map correctly in device-specific startup code.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4477
diff changeset
88 with function-key-map = (symbol-value-in-console 'function-key-map
e3ef34f57070 Bind function-key-map correctly in device-specific startup code.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4477
diff changeset
89 (device-console device)
e3ef34f57070 Bind function-key-map correctly in device-specific startup code.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4477
diff changeset
90 function-key-map)
5639
1d1f385c9149 Call XKeysymToString() much less, it leaks.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5490
diff changeset
91 with x-keysym-hash-table = (x-keysym-hash-table device)
1d1f385c9149 Call XKeysymToString() much less, it leaks.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5490
diff changeset
92
1d1f385c9149 Call XKeysymToString() much less, it leaks.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5490
diff changeset
93 initially
1d1f385c9149 Call XKeysymToString() much less, it leaks.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5490
diff changeset
94 (when (gethash 'iso-left-tab x-keysym-hash-table)
1d1f385c9149 Call XKeysymToString() much less, it leaks.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5490
diff changeset
95 (define-key function-key-map 'iso-left-tab [(shift tab)]))
4482
e3ef34f57070 Bind function-key-map correctly in device-specific startup code.
Aidan Kehoe <kehoea@parhasard.net>
parents: 4477
diff changeset
96
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 do
5639
1d1f385c9149 Call XKeysymToString() much less, it leaks.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5490
diff changeset
98 (when (not (memq (gethash key x-keysym-hash-table) '(nil sans-modifiers)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 ;; define also the control, meta, and meta-control versions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 (loop for mods in '(() (control) (meta) (meta control)) do
5639
1d1f385c9149 Call XKeysymToString() much less, it leaks.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5490
diff changeset
101 (define-key function-key-map `[(,@mods ,key)]
1d1f385c9149 Call XKeysymToString() much less, it leaks.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5490
diff changeset
102 `[(shift ,@mods ,sane-key)])))))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 ;;; x-win-xfree86.el ends here