annotate lisp/term/vt-control.el @ 5697:40fbceabaafd

menubar-items.el (default-menubar): Reorganize. Add PROBLEMS to toplevel. New "More about XEmacs" submenu for NEWS, licensing, etc. New "Recent History" menu for messages, lossage, etc. Get rid of ugly and unexpressive ellipses.
author Stephen J. Turnbull <stephen@xemacs.org>
date Mon, 24 Dec 2012 03:08:33 +0900
parents 308d34e9f07d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 ;;; vt-control.el --- Common VTxxx control functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 ;; Copyright (C) 1993, 1994 Free Software Foundation, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 ;; Author: Rob Riepel <riepel@networking.stanford.edu>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 ;; Keywords: terminals
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 0
diff changeset
9 ;; This file is part of XEmacs.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 0
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: 0
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: 0
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: 0
diff changeset
14 ;; option) any later version.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 0
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: 0
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: 0
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: 0
diff changeset
19 ;; for more details.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20
376386a54a3c Import from CVS: tag r19-14
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: 0
diff changeset
22 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 ;;; Commentary:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 ;; The functions contained in this file send various VT control codes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 ;; to the terminal where emacs is running. The following functions are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 ;; available.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 ;; Function Action
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 ;; vt-wide set wide screen (132 characters)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 ;; vt-narrow set narrow screen (80 characters)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 ;; vt-toggle-screen toggle wide/narrow screen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 ;; vt-keypad-on set applications keypad on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 ;; vt-keypad-off set applications keypad off
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 ;; vt-numlock toggle applications keypad on/off
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 ;;; Usage:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 ;; To use enable these functions, simply load this file.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 ;; Note: vt-control makes no effort to determine how the terminal is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 ;; initially set. It assumes the terminal starts with a width
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 ;; of 80 characters and the applications keypad enabled. Nor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 ;; does vt-control try to restore the terminal when emacs is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 ;; killed or suspended.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 ;;; Code:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 ;;; Global variables
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 (defvar vt-applications-keypad-p t
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 "If non-nil, keypad is in applications mode.")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 (defvar vt-wide-p nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 "If non-nil, the screen is 132 characters wide.")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 ;;; Screen width functions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 (defun vt-wide nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 "Set the screen 132 characters wide."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 (send-string-to-terminal "\e[?3h")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 (set-frame-width (selected-frame) 132)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 (setq vt-wide-p t))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 (defun vt-narrow nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 "Set the screen 80 characters wide."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 (send-string-to-terminal "\e[?3l")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 (set-frame-width (selected-frame) 80)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 (setq vt-wide-p nil))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77 (defun vt-toggle-screen nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 "Toggle between 80 and 132 character screen width."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 (if vt-wide-p (vt-narrow) (vt-wide)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 ;;; Applications keypad functions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 (defun vt-keypad-on (&optional tell)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86 "Turn on the VT applications keypad."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 (send-string-to-terminal "\e[\e=")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89 (setq vt-applications-keypad-p t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90 (if (or tell (interactive-p)) (message "Applications keypad enabled.")))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92 (defun vt-keypad-off (&optional tell)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 "Turn off the VT applications keypad."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 (interactive "p")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 (send-string-to-terminal "\e[\e>")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96 (setq vt-applications-keypad-p nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 (if (or tell (interactive-p)) (message "Applications keypad disabled.")))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99 (defun vt-numlock nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100 "Toggle VT application keypad on and off."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 (if vt-applications-keypad-p (vt-keypad-off (interactive-p))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 (vt-keypad-on (interactive-p))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 ;;; vt-control.el ends here