annotate lisp/term/vt-control.el @ 5885:c8bbb32fe124

Always return a string, #'current-message. lisp/ChangeLog addition: 2015-04-04 Aidan Kehoe <kehoea@parhasard.net> * gutter-items.el (append-progress-feedback): * gutter-items.el (abort-progress-feedback): Correct comments in both these functions, it's the progress stack being adjusted, not the message stack. * simple.el (message-stack): Describe my recent change in the structure of this. * simple.el (current-message): Adjust the implementation of this to always return the string displayed.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 04 Apr 2015 13:49:30 +0100
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