view lisp/vt100-led.el @ 9249:909ae53a446d

(vc-backend-checkin): When CVS checks in a file, it is immediately checked out again, so set vc-checkout-time. (vc-fetch-properties): CVS 1.4A1 says "Repository revision". (vc-locking-user): Do something sensible when the backend is CVS. May return a numerical UID or a string when CVS is used. (vc-dired-reformat-line): Handle numerical arguments. (vc-backend-checkout): Don't extract CVS files twice. (vc-next-action-on-file): Handle return value from vc-backend-merge-news correctly. (vc-rename-file): Fixed call to vc-backend-dispatch. (vc-make-buffer-writable-hook): New hook, for CVS only. (vc-header-alist): Added header for CVS. (vc-next-action-on-file): Added support for CVS. (vc-next-action, vc-checkin, vc-revert-buffer): Doc fixes. (vc-rename-file): Disable if the backend is CVS. (vc-log-info): New arguments: LAST and FLAGS, passed on to vc-do-command. All callers updated. (vc-fetch-properties): Implement support for CVS files. (vc-backend-checkin): Args REV and COMMENT no longer optional. Implement support for CVS. (vc-backend-revert): Implement support for CVS. (vc-backend-diff): Treat files which are added, but not yet committed, specially (diff them against /dev/null). (vc-backend-merge-news): New function. (vc-log-mode): Talk a little about CVS in the comment. (vc-log-info): Simplify code. (vc-do-command): New argument LAST. All callers updated. Legal values for LAST are 'MASTER and 'BASE. (vc-backend-dispatch): New argument C, used by CVS. All callers updated, but many just passes an (error "NYI") form. (vc-backend-admin): Issue a "cvs add" (but not a "cvs commit"). (vc-backend-checkout, vc-backend-logentry-check, vc-backend-print-log, vc-backend-assign-name, vc-backend-diff, vc-check-headers): Handle CVS. (vc-backend-steal, vc-backend-uncheck): Give error if using CVS. (vc-backend-diff): Fixed typo in SCCS code.
author Richard M. Stallman <rms@gnu.org>
date Mon, 03 Oct 1994 21:57:47 +0000
parents 2cdce064065f
children 83f275dcd93a
line wrap: on
line source

;;; vt100-led.el --- functions for LED control on VT-100 terminals & clones.

;; Copyright (C) 1988 Free Software Foundation, Inc.

;; Author: Howard Gayle
;; Maintainer: FSF
;; Keywords: hardware

;; This file is part of GNU Emacs.

;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

;;; Code:

(defvar led-state (make-vector 5 nil)
   "The internal state of the LEDs.  Choices are nil, t, `flash.
Element 0 is not used.")

(defun led-flash (l)
  "Flash LED l."
  (aset led-state l 'flash)
  (led-update))

(defun led-off (&optional l)
  "Turn off vt100 led number L.  With no argument, turn them all off."
  (interactive "P")
  (if l
      (aset led-state (prefix-numeric-value l) nil)
    (fillarray led-state nil))
  (led-update))

(defun led-on (l)
  "Turn on LED l."
  (aset led-state l t)
  (led-update))

(defun led-update ()
  "Update the terminal's LEDs to reflect the internal state."
  (let ((f "\e[?0")			; String to flash.
	(o "\e[0")			; String for steady on.
	(l 1))				; Current LED number.
    (while (/= l 5)
      (let ((s (aref led-state l)))
	(cond
	 ((eq s 'flash)
	  (setq f (concat f ";" (int-to-string l))))
	 (s
	  (setq o (concat o ";" (int-to-string l))))))
      (setq l (1+ l)))
    (setq o (concat o "q" f "t"))
    (send-string-to-terminal o)))

(provide 'vt100-led)

;;; vt100-led.el ends here