Mercurial > emacs
annotate lisp/term/wyse50.el @ 5697:47563495ca14
(calendar-phases-of-moon): Fix mode line.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 30 Jan 1994 00:28:54 +0000 |
parents | 507f64624555 |
children | b7b510d4e406 |
rev | line source |
---|---|
2142
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
1 ;;; wyse50.el --- terminal support code for Wyse 50 |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
2 |
3287 | 3 ;; Copyright (C) 1989, 1993 Free Software Foundation, Inc. |
4 | |
2142
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
5 ;; Author: Daniel Pfieffer <pfieffer@cix.cict.fr> January 1991 |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
6 ;; Jim Blandy <jimb@occs.cs.oberlin.edu> |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
7 ;; Keywords: terminals |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
8 |
3287 | 9 ;;; This file is part of GNU Emacs. |
10 ;;; | |
11 ;;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;;; it under the terms of the GNU General Public License as published by | |
13 ;;; the Free Software Foundation; either version 2, or (at your option) | |
14 ;;; any later version. | |
15 ;;; | |
16 ;;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;;; GNU General Public License for more details. | |
20 ;;; | |
21 ;;; You should have received a copy of the GNU General Public License | |
22 ;;; along with GNU Emacs; see the file COPYING. If not, write to | |
23 ;;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
2142
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
24 |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
25 ;;; Commentary: |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
26 |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
27 ;; Uses the Emacs 19 terminal initialization features --- won't work with 18. |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
28 ;; Rewritten for Emacs 19 by jimb, January 1992 |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3287
diff
changeset
|
29 ;; Cleaned up for new terminal package conventions by esr, March 1993 |
2142
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
30 ;; Should work well for Televideo TVI 925 although it's overkill. |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
31 ;; |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
32 ;; The Wyse50 is ergonomically wonderful, but its escape-sequence design sucks |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
33 ;; rocks. The left-arrow key emits a backspace (!) and the down-arrow a line |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
34 ;; feed (!!). Thus, you have to unbind some commonly-used Emacs keys to |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
35 ;; enable the arrows. |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
36 |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
37 ;;; Code: |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
38 |
502 | 39 (define-key function-key-map "\C-a" (make-keymap)) |
40 (mapcar (function (lambda (key-definition) | |
41 (define-key function-key-map | |
42 (car key-definition) (nth 1 key-definition)))) | |
2142
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
43 '( |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
44 ;; These might be set up by termcap and terminfo |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
45 ("\C-k" [up]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
46 ("\C-j" [down]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
47 ("\C-l" [right]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
48 ("\C-h" [left]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
49 ("\^a@\^m" [f1]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
50 ("\^aA\^m" [f2]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
51 ("\^aB\^m" [f3]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
52 ("\^aC\^m" [f4]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
53 ("\^aD\^m" [f5]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
54 ("\^aE\^m" [f6]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
55 ("\^aF\^m" [f7]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
56 ("\^aG\^m" [f8]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
57 ("\^aH\^m" [f9]) |
166 | 58 |
2142
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
59 ;; These might be set up by terminfo |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
60 ("\eK" [next]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
61 ("\eT" [clearline]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
62 ("\^^" [home]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
63 ("\e\^^" [end]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
64 ("\eQ" [insert]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
65 ("\eE" [insertline]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
66 ("\eR" [deleteline]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
67 ("\eP" [print]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
68 ("\er" [replace]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
69 ("\^aI\^m" [f10]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
70 ("\^aJ\^m" [f11]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
71 ("\^aK\^m" [f12]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
72 ("\^aL\^m" [f13]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
73 ("\^aM\^m" [f14]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
74 ("\^aN\^m" [f15]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
75 ("\^aO\^m" [f16]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
76 ("\^a`\^m" [f17]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
77 ("\^aa\^m" [f18]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
78 ("\^ab\^m" [f19]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
79 ("\^ac\^m" [f20]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
80 ("\^ad\^m" [f21]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
81 ("\^ae\^m" [f22]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
82 ("\^af\^m" [f23]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
83 ("\^ag\^m" [f24]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
84 ("\^ah\^m" [f25]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
85 ("\^ai\^m" [f26]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
86 ("\^aj\^m" [f27]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
87 ("\^ak\^m" [f28]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
88 ("\^al\^m" [f29]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
89 ("\^am\^m" [f30]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
90 ("\^an\^m" [f31]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
91 ("\^ao\^m" [f32]) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
92 |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
93 ;; Terminfo may know about these, but X won't |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
94 ("\eI" [key-stab]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
95 ("\eJ" [key-snext]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
96 ("\eY" [key-clear]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
97 |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
98 ;; These are totally strange :-) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
99 ("\eW" [?\C-?]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
100 ("\^a\^k\^m" [funct-up]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
101 ("\^a\^j\^m" [funct-down]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
102 ("\^a\^l\^m" [funct-right]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
103 ("\^a\^h\^m" [funct-left]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
104 ("\^a\^m\^m" [funct-return]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
105 ("\^a\^i\^m" [funct-tab]) ;; Not an X keysym |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
106 )) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
107 |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
108 (defun enable-arrow-keys () |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
109 "To be called by term-setup-hook. Overrides 6 Emacs standard keys |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
110 whose functions are then typed as follows: |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
111 C-a Funct Left-arrow |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
112 C-h M-? |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
113 LFD Funct Return, some modes override down-arrow via LFD |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
114 C-k CLR Line |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
115 C-l Scrn CLR |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
116 M-r M-x move-to-window-line, Funct up-arrow or down-arrow are similar |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
117 " |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
118 (interactive) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
119 (mapcar (function (lambda (key-definition) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
120 (global-set-key (car key-definition) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
121 (nth 1 key-definition)))) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
122 ;; By unsetting C-a and then binding it to a prefix, we |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
123 ;; allow the rest of the function keys which start with C-a |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
124 ;; to be recognized. |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
125 '(("\C-a" nil) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
126 ("\C-k" nil) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
127 ("\C-j" nil) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
128 ("\C-l" nil) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
129 ("\C-h" nil) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
130 ("\er" nil))) |
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
131 (fset 'enable-arrow-keys nil)) |
502 | 132 |
133 | |
134 ;;; Miscellaneous hacks | |
166 | 135 |
502 | 136 ;;; This is an ugly hack for a nasty problem: |
137 ;;; Wyse 50 takes one character cell to store video attributes (which seems to | |
138 ;;; explain width 79 rather than 80, column 1 is not used!!!). | |
139 ;;; On killing (C-x C-c) the end inverse code (on column 1 of line 24) | |
140 ;;; of the mode line is overwritten AFTER all the y-or-n questions. | |
141 ;;; This causes the attribute to remain in effect until the mode line has | |
142 ;;; scrolled of the screen. Suspending (C-z) does not cause this problem. | |
143 ;;; On such terminals, Emacs should sacrifice the first and last character of | |
144 ;;; each mode line, rather than a whole screen column! | |
145 (setq kill-emacs-hook | |
146 (function (lambda () (interactive) | |
147 (send-string-to-terminal | |
779 | 148 (concat "\ea23R" (1+ (frame-width)) "C\eG0"))))) |
166 | 149 |
2142
67773a6ede4e
Added headers, changed some keycap names.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
779
diff
changeset
|
150 ;;; wyse50.el ends here |