diff options
| author | Eric S. Raymond | 1993-03-11 09:00:25 +0000 |
|---|---|---|
| committer | Eric S. Raymond | 1993-03-11 09:00:25 +0000 |
| commit | ef61be135dfced7c19da291de05fc969a25fd34a (patch) | |
| tree | 88692b26f094576453987caf6aff52c8b3452005 | |
| parent | 48e3c9a2ef020ff5ca4b6bfcce9148b0262d7653 (diff) | |
| download | emacs-ef61be135dfced7c19da291de05fc969a25fd34a.tar.gz emacs-ef61be135dfced7c19da291de05fc969a25fd34a.zip | |
Added headers, commented out code the duplicates startup effects.
| -rw-r--r-- | lisp/term/vt100.el | 135 |
1 files changed, 85 insertions, 50 deletions
diff --git a/lisp/term/vt100.el b/lisp/term/vt100.el index a3092ea42fa..658ab4820f9 100644 --- a/lisp/term/vt100.el +++ b/lisp/term/vt100.el | |||
| @@ -1,53 +1,86 @@ | |||
| 1 | ;;;; Define VT100 function key escape sequences in function-key-map. | 1 | ;;; vt100.el --- define VT100 function key sequences in function-key-map |
| 2 | 2 | ||
| 3 | 3 | ;; Author: FSF | |
| 4 | ;;; CSI sequences - those that start with "\e[". | 4 | ;; Keywords: terminals |
| 5 | (define-prefix-command 'vt100-CSI-prefix) | 5 | |
| 6 | (define-key function-key-map "\e[" 'vt100-CSI-prefix) | 6 | ;; Copyright (C) 1989 Free Software Foundation, Inc. |
| 7 | 7 | ||
| 8 | (define-key vt100-CSI-prefix "A" [up]) | 8 | ;; This file is part of GNU Emacs. |
| 9 | (define-key vt100-CSI-prefix "B" [down]) | 9 | |
| 10 | (define-key vt100-CSI-prefix "C" [right]) | 10 | ;; GNU Emacs is distributed in the hope that it will be useful, |
| 11 | (define-key vt100-CSI-prefix "D" [left]) | 11 | ;; but WITHOUT ANY WARRANTY. No author or distributor |
| 12 | 12 | ;; accepts responsibility to anyone for the consequences of using it | |
| 13 | (defun enable-arrow-keys () | 13 | ;; or for whether it serves any particular purpose or works at all, |
| 14 | "Enable the use of the VT100 arrow keys for cursor motion. | 14 | ;; unless he says so in writing. Refer to the GNU Emacs General Public |
| 15 | Because of the nature of the VT100, this unavoidably breaks | 15 | ;; License for full details. |
| 16 | the standard Emacs command ESC [; therefore, it is not done by default, | 16 | |
| 17 | but only if you give this command." | 17 | ;; Everyone is granted permission to copy, modify and redistribute |
| 18 | (interactive) | 18 | ;; GNU Emacs, but only under the conditions described in the |
| 19 | (global-unset-key "\e[")) | 19 | ;; GNU Emacs General Public License. A copy of this license is |
| 20 | 20 | ;; supposed to have been given to you along with GNU Emacs so you | |
| 21 | 21 | ;; can know your rights and responsibilities. It should be in a | |
| 22 | 22 | ;; file named COPYING. Among other things, the copyright notice | |
| 23 | ;;; SS3 sequences - those that start with "\eO". | 23 | ;; and this notice must be preserved on all copies. |
| 24 | (define-prefix-command 'vt100-SS3-prefix) | 24 | |
| 25 | (define-key function-key-map "\eO" 'vt100-SS3-prefix) | 25 | ;;; Commentary: |
| 26 | 26 | ||
| 27 | (define-key vt100-SS3-prefix "A" [up]) | 27 | ;; Uses the Emacs 19 terminal initialization features --- won't work with 18. |
| 28 | (define-key vt100-SS3-prefix "B" [down]) ; down-arrow | 28 | |
| 29 | (define-key vt100-SS3-prefix "C" [right]) ; right-arrow | 29 | ;; Handles all VT100 clones, including the Apollo terminal. Also handles |
| 30 | (define-key vt100-SS3-prefix "D" [left]) ; left-arrow | 30 | ;; the VT200 --- its PF- and arrow- keys are different, but all those |
| 31 | (define-key vt100-SS3-prefix "M" [kp-enter]) ; Enter | 31 | ;; are really set up by the terminal initialization code, which mines them |
| 32 | (define-key vt100-SS3-prefix "P" [kp-f1]) ; PF1 | 32 | ;; out of termcap. This package is here to define the keypad comma, dash |
| 33 | (define-key vt100-SS3-prefix "Q" [kp-f2]) ; PF2 | 33 | ;; and period (which aren't in termcap's repertoire) and the function for |
| 34 | (define-key vt100-SS3-prefix "R" [kp-f3]) ; PF3 | 34 | ;; changing from 80 to 132 columns & vv. |
| 35 | (define-key vt100-SS3-prefix "S" [kp-f4]) ; PF4 | 35 | |
| 36 | (define-key vt100-SS3-prefix "l" [kp-separator]) ; , | 36 | ;;; Code: |
| 37 | (define-key vt100-SS3-prefix "m" [kp-subtract]) ; - | 37 | |
| 38 | (define-key vt100-SS3-prefix "n" [kp-period]) ; . | 38 | ;; CSI sequences - those that start with "\e[". |
| 39 | (define-key vt100-SS3-prefix "p" [kp-0]) ; 0 | 39 | ;; Termcap or terminfo should set these up automatically |
| 40 | (define-key vt100-SS3-prefix "q" [kp-1]) ; 1 | 40 | ;; (if (boundp 'vt100-CSI-prefix) |
| 41 | (define-key vt100-SS3-prefix "r" [kp-2]) ; 2 | 41 | ;; nil |
| 42 | (define-key vt100-SS3-prefix "s" [kp-3]) ; 3 | 42 | ;; (define-prefix-command 'vt100-CSI-prefix) |
| 43 | (define-key vt100-SS3-prefix "t" [kp-4]) ; 4 | 43 | ;; (define-key function-key-map "\e[" 'vt100-CSI-prefix) |
| 44 | (define-key vt100-SS3-prefix "u" [kp-5]) ; 5 | 44 | ;; |
| 45 | (define-key vt100-SS3-prefix "v" [kp-6]) ; 6 | 45 | ;; (define-key vt100-CSI-prefix "A" [up]) |
| 46 | (define-key vt100-SS3-prefix "w" [kp-7]) ; 7 | 46 | ;; (define-key vt100-CSI-prefix "B" [down]) |
| 47 | (define-key vt100-SS3-prefix "x" [kp-8]) ; 8 | 47 | ;; (define-key vt100-CSI-prefix "C" [right]) |
| 48 | (define-key vt100-SS3-prefix "y" [kp-9]) ; 9 | 48 | ;; (define-key vt100-CSI-prefix "D" [left]) |
| 49 | 49 | ;; ) | |
| 50 | 50 | ||
| 51 | ;; SS3 sequences - those that start with "\eO". | ||
| 52 | (if (boundp 'vt100-SS3-prefix) | ||
| 53 | nil | ||
| 54 | (define-prefix-command 'vt100-SS3-prefix) | ||
| 55 | (define-key function-key-map "\eO" 'vt100-SS3-prefix) | ||
| 56 | |||
| 57 | ;; These will typically be set up automatically by termcap or terminfo | ||
| 58 | ;; (define-key vt100-SS3-prefix "A" [up]) ; up-arrow | ||
| 59 | ;; (define-key vt100-SS3-prefix "B" [down]) ; down-arrow | ||
| 60 | ;; (define-key vt100-SS3-prefix "C" [right]) ; right-arrow | ||
| 61 | ;; (define-key vt100-SS3-prefix "D" [left]) ; left-arrow | ||
| 62 | ;; (define-key vt100-SS3-prefix "M" [kp-enter]) ; Enter | ||
| 63 | ;; (define-key vt100-SS3-prefix "P" [kp-f1]) ; PF1 | ||
| 64 | ;; (define-key vt100-SS3-prefix "Q" [kp-f2]) ; PF2 | ||
| 65 | ;; (define-key vt100-SS3-prefix "R" [kp-f3]) ; PF3 | ||
| 66 | ;; (define-key vt100-SS3-prefix "S" [kp-f4]) ; PF4 | ||
| 67 | ;; (define-key vt100-SS3-prefix "p" [kp-0]) ; 0 | ||
| 68 | ;; (define-key vt100-SS3-prefix "q" [kp-1]) ; 1 | ||
| 69 | ;; (define-key vt100-SS3-prefix "r" [kp-2]) ; 2 | ||
| 70 | ;; (define-key vt100-SS3-prefix "s" [kp-3]) ; 3 | ||
| 71 | ;; (define-key vt100-SS3-prefix "t" [kp-4]) ; 4 | ||
| 72 | ;; (define-key vt100-SS3-prefix "u" [kp-5]) ; 5 | ||
| 73 | ;; (define-key vt100-SS3-prefix "v" [kp-6]) ; 6 | ||
| 74 | ;; (define-key vt100-SS3-prefix "w" [kp-7]) ; 7 | ||
| 75 | ;; (define-key vt100-SS3-prefix "x" [kp-8]) ; 8 | ||
| 76 | ;; (define-key vt100-SS3-prefix "y" [kp-9]) ; 9 | ||
| 77 | |||
| 78 | ;; Neither termcap nor terminfo will set these | ||
| 79 | (define-key vt100-SS3-prefix "l" [kp-separator]) ; , | ||
| 80 | (define-key vt100-SS3-prefix "m" [kp-subtract]) ; - | ||
| 81 | (define-key vt100-SS3-prefix "n" [kp-period]) ; . | ||
| 82 | ) | ||
| 83 | |||
| 51 | ;;; Controlling the screen width. | 84 | ;;; Controlling the screen width. |
| 52 | (defconst vt100-wide-mode (= (frame-width) 132) | 85 | (defconst vt100-wide-mode (= (frame-width) 132) |
| 53 | "t if vt100 is in 132-column mode.") | 86 | "t if vt100 is in 132-column mode.") |
| @@ -60,3 +93,5 @@ but only if you give this command." | |||
| 60 | (> (prefix-numeric-value arg) 0))) | 93 | (> (prefix-numeric-value arg) 0))) |
| 61 | (send-string-to-terminal (if vt100-wide-mode "\e[?3h" "\e[?3l")) | 94 | (send-string-to-terminal (if vt100-wide-mode "\e[?3h" "\e[?3l")) |
| 62 | (set-frame-width (if vt100-wide-mode 132 80))) | 95 | (set-frame-width (if vt100-wide-mode 132 80))) |
| 96 | |||
| 97 | ;;; vt100.el ends here | ||