BSD 4_4_Lite1 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 18 Feb 1987 01:00:25 +0000 (17:00 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 18 Feb 1987 01:00:25 +0000 (17:00 -0800)
Work on file usr/src/contrib/emacs-18.57/lisp/term/vt100.el

Synthesized-from: CSRG/cd2/4.4BSD-Lite1

usr/src/contrib/emacs-18.57/lisp/term/vt100.el [new file with mode: 0644]

diff --git a/usr/src/contrib/emacs-18.57/lisp/term/vt100.el b/usr/src/contrib/emacs-18.57/lisp/term/vt100.el
new file mode 100644 (file)
index 0000000..435157c
--- /dev/null
@@ -0,0 +1,66 @@
+;; Map VT100 function key escape sequences
+;; into the standard slots in function-keymap.
+
+(require 'keypad)
+
+(defvar CSI-map nil
+  "The CSI-map maps the CSI function keys on the VT100 keyboard.
+The CSI keys are the arrow keys.")
+
+(if (not CSI-map)
+    (progn
+     (setq CSI-map (lookup-key global-map "\e["))
+     (if (not (keymapp CSI-map))
+        (setq CSI-map (make-sparse-keymap)))  ;; <ESC>[ commands
+
+     (setup-terminal-keymap CSI-map
+           '(("A" . ?u)           ; up arrow
+             ("B" . ?d)           ; down-arrow
+             ("C" . ?r)           ; right-arrow
+             ("D" . ?l)))))       ; left-arrow
+
+(defun enable-arrow-keys ()
+  "Enable the use of the VT100 arrow keys for cursor motion.
+Because of the nature of the VT100, this unavoidably breaks
+the standard Emacs command ESC [; therefore, it is not done by default,
+but only if you give this command."
+  (interactive)
+  (global-set-key "\e[" CSI-map))
+
+(defvar SS3-map nil
+  "SS3-map maps the SS3 function keys on the VT100 keyboard.
+The SS3 keys are the numeric keypad keys in keypad application mode
+\(DECKPAM).  SS3 is DEC's name for the sequence <ESC>O which is
+the common prefix of what these keys transmit.")
+
+(if (not SS3-map)
+    (progn
+
+     (setq SS3-map (lookup-key global-map "\eO"))
+     (if (not (keymapp SS3-map))
+        (setq SS3-map (make-keymap)))  ;; <ESC>O commands
+     (setup-terminal-keymap SS3-map
+           '(("A" . ?u)           ; up arrow
+             ("B" . ?d)           ; down-arrow
+             ("C" . ?r)           ; right-arrow
+             ("D" . ?l)           ; left-arrow
+             ("M" . ?e)           ; Enter
+             ("P" . ?\C-a)        ; PF1
+             ("Q" . ?\C-b)        ; PF2
+             ("R" . ?\C-c)        ; PF3
+             ("S" . ?\C-d)        ; PF4
+             ("l" . ?,)           ; ,
+             ("m" . ?-)           ; -
+             ("n" . ?.)           ; .
+             ("p" . ?0)           ; 0
+             ("q" . ?1)           ; 1
+             ("r" . ?2)           ; 2
+             ("s" . ?3)           ; 3
+             ("t" . ?4)           ; 4
+             ("u" . ?5)           ; 5
+             ("v" . ?6)           ; 6
+             ("w" . ?7)           ; 7
+             ("x" . ?8)           ; 8
+             ("y" . ?9)))         ; 9
+
+     (define-key global-map "\eO" SS3-map)))