annotate lisp/term/vt100-led.el @ 5015:d95c102a96d3

cleanups for specifier font stages, from ben-unicode-internal (preparation for eliminating shadowed warnings) -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-02-08 Ben Wing <ben@xemacs.org> * faces.c: * faces.c (face_property_matching_instance): * faces.c (ensure_face_cachel_contains_charset): * faces.h (FACE_FONT): * lisp.h: * lisp.h (enum font_specifier_matchspec_stages): * objects-msw.c: * objects-msw.c (mswindows_font_spec_matches_charset): * objects-msw.c (mswindows_find_charset_font): * objects-tty.c: * objects-tty.c (tty_font_spec_matches_charset): * objects-tty.c (tty_find_charset_font): * objects-xlike-inc.c: * objects-xlike-inc.c (XFUN): * objects-xlike-inc.c (xft_find_charset_font): * objects.c: * objects.c (font_instantiate): * objects.c (FROB): * specifier.c: * specifier.c (charset_matches_specifier_tag_set_p): * specifier.c (call_charset_predicate): * specifier.c (define_specifier_tag): * specifier.c (Fdefine_specifier_tag): * specifier.c (setup_charset_initial_specifier_tags): * specifier.c (specifier_instance_from_inst_list): * specifier.c (FROB): * specifier.c (vars_of_specifier): * specifier.h: Rename the specifier-font-matching stages in preparation for eliminating shadowed warnings, some other related fixes from ben-unicode-internal. 1. Rename raw enums: initial -> STAGE_INITIAL final -> STAGE_FINAL impossible -> NUM_MATCHSPEC_STAGES 2. Move `enum font_specifier_matchspec_stages' from specifier.h to lisp.h. 3. Whitespace changes to match coding standards. 4. Eliminate unused second argument STAGE in charset predicates that don't use it -- the code that calls the charset predicates is now smart enough to supply the right number of arguments automatically. 5. Add some long(ish) comments and authorial notices, esp. in objects.c. 6. In specifier.c, change Vcharset_tag_lists from a vector over leading bytes to a hash table over charsets. This change is unnecessary currently but doesn't hurt and will be required when we merge in Unicode-internal. 7. In specifier.c, extract out the code that calls charset predicates into a function call_charset_predicate().
author Ben Wing <ben@xemacs.org>
date Mon, 08 Feb 2010 16:51:25 -0600
parents 376386a54a3c
children 0293115a14e9 308d34e9f07d
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 ;;; vt100-led.el --- functions for LED control on VT-100 terminals & clones.
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) 1988 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: Howard Gayle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 ;; Maintainer: FSF
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 ;; Keywords: hardware
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 ;; This file is part of XEmacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 ;; XEmacs is free software; you can redistribute it and/or modify it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 ;; under the terms of the GNU General Public License as published by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 ;; any later version.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 ;; XEmacs is distributed in the hope that it will be useful, but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 ;; General Public License for more details.
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
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 ;; along with XEmacs; see the file COPYING. If not, write to the Free
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 ;; Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 ;;; Code:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 (defvar led-state (make-vector 5 nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 "The internal state of the LEDs. Choices are nil, t, `flash.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 Element 0 is not used.")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 (defun led-flash (l)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 "Flash LED l."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 (aset led-state l 'flash)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 (led-update))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 (defun led-off (&optional l)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 "Turn off vt100 led number L. With no argument, turn them all off."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 (interactive "P")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 (if l
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 (aset led-state (prefix-numeric-value l) nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 (fillarray led-state nil))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 (led-update))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 (defun led-on (l)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 "Turn on LED l."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 (aset led-state l t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 (led-update))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 (defun led-update ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 "Update the terminal's LEDs to reflect the internal state."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 (let ((f "\e[?0") ; String to flash.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 (o "\e[0") ; String for steady on.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 (l 1)) ; Current LED number.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 (while (/= l 5)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 (let ((s (aref led-state l)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 (cond
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 ((eq s 'flash)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 (setq f (concat f ";" (int-to-string l))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 (s
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 (setq o (concat o ";" (int-to-string l))))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 (setq l (1+ l)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 (setq o (concat o "q" f "t"))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 (send-string-to-terminal o)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 (provide 'vt100-led)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 ;;; vt100-led.el ends here