summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorEric S. Raymond <esr@snark.thyrsus.com>1993-03-11 08:52:30 +0000
committerEric S. Raymond <esr@snark.thyrsus.com>1993-03-11 08:52:30 +0000
commit7f94bc9fb34d15d54a2c8cb570683000f6a7c358 (patch)
tree8c14f490bfcd41f3d6a56ab4a064f3b12b6e7e93 /lisp
parenta97beda4865c2d3f4c2341daa9d35e6e56de9ac9 (diff)
downloademacs-7f94bc9fb34d15d54a2c8cb570683000f6a7c358.tar.gz
emacs-7f94bc9fb34d15d54a2c8cb570683000f6a7c358.tar.bz2
emacs-7f94bc9fb34d15d54a2c8cb570683000f6a7c358.zip
Added headers, changed some keycap names.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/term/wyse50.el227
1 files changed, 119 insertions, 108 deletions
diff --git a/lisp/term/wyse50.el b/lisp/term/wyse50.el
index 81a7b321142..c3a990d9026 100644
--- a/lisp/term/wyse50.el
+++ b/lisp/term/wyse50.el
@@ -1,10 +1,42 @@
-;;;; Terminal mode for Wyse 50
-;;;; Should work well for Televideo TVI 925 although it's overkill
-;;;; Author Daniel Pfieffer (pfieffer@cix.cict.fr) January 1991
-;;;; Rewritten for Emacs 19 by Jim Blandy (jimb@occs.cs.oberlin.edu)
-;;;; January 1992
+;;; wyse50.el --- terminal support code for Wyse 50
+
+;; Author: Daniel Pfieffer <pfieffer@cix.cict.fr> January 1991
+;; Jim Blandy <jimb@occs.cs.oberlin.edu>
+;; Keywords: terminals
+
+;; Copyright (C) 1989 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY. No author or distributor
+;; accepts responsibility to anyone for the consequences of using it
+;; or for whether it serves any particular purpose or works at all,
+;; unless he says so in writing. Refer to the GNU Emacs General Public
+;; License for full details.
+
+;; Everyone is granted permission to copy, modify and redistribute
+;; GNU Emacs, but only under the conditions described in the
+;; GNU Emacs General Public License. A copy of this license is
+;; supposed to have been given to you along with GNU Emacs so you
+;; can know your rights and responsibilities. It should be in a
+;; file named COPYING. Among other things, the copyright notice
+;; and this notice must be preserved on all copies.
+
+;;; Commentary:
+
+;; Uses the Emacs 19 terminal initialization features --- won't work with 18.
+;; Rewritten for Emacs 19 by jimb, January 1992
+;; Cleaned up for new terminal package cinventions by esr, March 1993
+;; Should work well for Televideo TVI 925 although it's overkill.
+;;
+;; The Wyse50 is ergonomically wonderful, but its escape-sequence design sucks
+;; rocks. The left-arrow key emits a backspace (!) and the down-arrow a line
+;; feed (!!). Thus, you have to unbind some commonly-used Emacs keys to
+;; enable the arrows.
+
+;;; Code:
-
;;; Functions especially for this terminal.
(defun wyse-50-insert-line ()
@@ -61,108 +93,70 @@ With an argument N, move to the Nth line from the bottom of the window."
(mapcar (function (lambda (key-definition)
(define-key function-key-map
(car key-definition) (nth 1 key-definition))))
- '(("\eI" [S-tab])
- ("\eJ" [S-prior])
- ("\eK" [next])
- ("\eY" [clear])
- ("\eT" [clear-eol])
- ("\^^" [home])
- ("\e\^^" [home-down])
- ("\eQ" [insert])
- ("\eE" [insertline])
- ("\eW" [?\C-?])
- ("\eR" [deleteline])
- ("\eP" [print])
- ("\C-k" [up])
- ("\C-j" [down])
- ("\C-l" [right])
- ("\C-h" [left])
- ("\C-a\C-k\C-m" [funct-up])
- ("\C-a\C-j\C-m" [funct-down])
- ("\C-a\C-l\C-m" [funct-right])
- ("\C-a\C-h\C-m" [funct-left])
- ("\er" [replace])
- ("\^a\^m\^m" [funct-return])
- ("\^a\^i\^m" [funct-tab])
- ("\^a@\^m" [f1])
- ("\^a`\^m" [S-f1])
- ("\^aA\^m" [f2])
- ("\^aa\^m" [S-f2])
- ("\^aB\^m" [f3])
- ("\^ab\^m" [S-f3])
- ("\^aC\^m" [f4])
- ("\^ac\^m" [S-f4])
- ("\^aD\^m" [f5])
- ("\^ad\^m" [S-f5])
- ("\^aE\^m" [f6])
- ("\^ae\^m" [S-f6])
- ("\^aF\^m" [f7])
- ("\^af\^m" [S-f7])
- ("\^aG\^m" [f8])
- ("\^ag\^m" [S-f8])
- ("\^aH\^m" [f9])
- ("\^ah\^m" [S-f9])
- ("\^aI\^m" [f10])
- ("\^ai\^m" [S-f10])
- ("\^aJ\^m" [f11])
- ("\^aj\^m" [S-f11])
- ("\^aK\^m" [f12])
- ("\^ak\^m" [S-f12])
- ("\^aL\^m" [f13])
- ("\^al\^m" [S-f13])
- ("\^aM\^m" [f14])
- ("\^am\^m" [S-f14])
- ("\^aN\^m" [f15])
- ("\^an\^m" [S-f15])
- ("\^aO\^m" [f16])
- ("\^ao\^m" [S-f16])))
+ '(
+ ;; These might be set up by termcap and terminfo
+ ("\C-k" [up])
+ ("\C-j" [down])
+ ("\C-l" [right])
+ ("\C-h" [left])
+ ("\^a@\^m" [f1])
+ ("\^aA\^m" [f2])
+ ("\^aB\^m" [f3])
+ ("\^aC\^m" [f4])
+ ("\^aD\^m" [f5])
+ ("\^aE\^m" [f6])
+ ("\^aF\^m" [f7])
+ ("\^aG\^m" [f8])
+ ("\^aH\^m" [f9])
-
-;;; Define some of the function keys.
-(mapcar (function (lambda (key-definition)
- (global-set-key (car key-definition)
- (nth 1 key-definition))))
- '(([insertline] wyse-50-insert-line)
- ([clear] recenter)
- ([clear-eol] kill-line)
- ([home] execute-extended-command)
- ([home-down] shell-command)
- ([insert] wyse-50-insert-char)
- ([deleteline] wyse-50-delete-line)
- ([replace] overwrite-mode)
- ([print] wyse-50-print-buffer)
- ([funct-up] wyse-50-top-of-window)
- ([funct-down] wyse-50-bottom-of-window)
- ([funct-left] beginning-of-line)
- ([funct-right] end-of-line)
- ([f5] shell)
- ([f6] dired)
- ([f7] rnews)
- ([f8] rmail)
- ([f9] delete-othe-windows)
- ([f10] other-window)
- ([f11] split-window-vertically)
- ([f13] help-for-help)
- ([f14] wyse-50-toggle-screen-width)
- ([f15] global-set-key)
- ("\M-?" help-for-help)))
+ ;; These might be set up by terminfo
+ ("\eK" [next])
+ ("\eT" [clearline])
+ ("\^^" [home])
+ ("\e\^^" [end])
+ ("\eQ" [insert])
+ ("\eE" [insertline])
+ ("\eR" [deleteline])
+ ("\eP" [print])
+ ("\er" [replace])
+ ("\^aI\^m" [f10])
+ ("\^aJ\^m" [f11])
+ ("\^aK\^m" [f12])
+ ("\^aL\^m" [f13])
+ ("\^aM\^m" [f14])
+ ("\^aN\^m" [f15])
+ ("\^aO\^m" [f16])
+ ("\^a`\^m" [f17])
+ ("\^aa\^m" [f18])
+ ("\^ab\^m" [f19])
+ ("\^ac\^m" [f20])
+ ("\^ad\^m" [f21])
+ ("\^ae\^m" [f22])
+ ("\^af\^m" [f23])
+ ("\^ag\^m" [f24])
+ ("\^ah\^m" [f25])
+ ("\^ai\^m" [f26])
+ ("\^aj\^m" [f27])
+ ("\^ak\^m" [f28])
+ ("\^al\^m" [f29])
+ ("\^am\^m" [f30])
+ ("\^an\^m" [f31])
+ ("\^ao\^m" [f32])
-
-;;; Miscellaneous hacks
+ ;; Terminfo may know about these, but X won't
+ ("\eI" [key-stab]) ;; Not an X keysym
+ ("\eJ" [key-snext]) ;; Not an X keysym
+ ("\eY" [key-clear]) ;; Not an X keysym
-;;; This is an ugly hack for a nasty problem:
-;;; Wyse 50 takes one character cell to store video attributes (which seems to
-;;; explain width 79 rather than 80, column 1 is not used!!!).
-;;; On killing (C-x C-c) the end inverse code (on column 1 of line 24)
-;;; of the mode line is overwritten AFTER all the y-or-n questions.
-;;; This causes the attribute to remain in effect until the mode line has
-;;; scrolled of the screen. Suspending (C-z) does not cause this problem.
-;;; On such terminals, Emacs should sacrifice the first and last character of
-;;; each mode line, rather than a whole screen column!
-(setq kill-emacs-hook
- (function (lambda () (interactive)
- (send-string-to-terminal
- (concat "\ea23R" (1+ (frame-width)) "C\eG0")))))
+ ;; These are totally strange :-)
+ ("\eW" [?\C-?]) ;; Not an X keysym
+ ("\^a\^k\^m" [funct-up]) ;; Not an X keysym
+ ("\^a\^j\^m" [funct-down]) ;; Not an X keysym
+ ("\^a\^l\^m" [funct-right]) ;; Not an X keysym
+ ("\^a\^h\^m" [funct-left]) ;; Not an X keysym
+ ("\^a\^m\^m" [funct-return]) ;; Not an X keysym
+ ("\^a\^i\^m" [funct-tab]) ;; Not an X keysym
+))
(defun enable-arrow-keys ()
"To be called by term-setup-hook. Overrides 6 Emacs standard keys
@@ -173,8 +167,7 @@ LFD Funct Return, some modes override down-arrow via LFD
C-k CLR Line
C-l Scrn CLR
M-r M-x move-to-window-line, Funct up-arrow or down-arrow are similar
-All special keys except Send, Shift Ins, Shift Home and shifted functions keys
-are assigned some hopefully useful meaning."
+"
(interactive)
(mapcar (function (lambda (key-definition)
(global-set-key (car key-definition)
@@ -183,10 +176,28 @@ are assigned some hopefully useful meaning."
;; allow the rest of the function keys which start with C-a
;; to be recognized.
'(("\C-a" nil)
- ("\C-a\C-a" beginning-of-line)
("\C-k" nil)
("\C-j" nil)
("\C-l" nil)
("\C-h" nil)
("\er" nil)))
(fset 'enable-arrow-keys nil))
+
+
+;;; Miscellaneous hacks
+
+;;; This is an ugly hack for a nasty problem:
+;;; Wyse 50 takes one character cell to store video attributes (which seems to
+;;; explain width 79 rather than 80, column 1 is not used!!!).
+;;; On killing (C-x C-c) the end inverse code (on column 1 of line 24)
+;;; of the mode line is overwritten AFTER all the y-or-n questions.
+;;; This causes the attribute to remain in effect until the mode line has
+;;; scrolled of the screen. Suspending (C-z) does not cause this problem.
+;;; On such terminals, Emacs should sacrifice the first and last character of
+;;; each mode line, rather than a whole screen column!
+(setq kill-emacs-hook
+ (function (lambda () (interactive)
+ (send-string-to-terminal
+ (concat "\ea23R" (1+ (frame-width)) "C\eG0")))))
+
+;;; wyse50.el ends here