428
+ − 1 ;;; tty-init.el --- initialization code for tty's
+ − 2
+ − 3 ;; Copyright (C) 1994, 1997 Free Software Foundation, Inc.
+ − 4 ;; Copyright (C) 1996 Ben Wing <ben@xemacs.org>.
+ − 5
+ − 6 ;; Maintainer: XEmacs Development Team
+ − 7 ;; Keywords: terminals, dumped
+ − 8
+ − 9 ;; This file is part of XEmacs.
+ − 10
+ − 11 ;; XEmacs is free software; you can redistribute it and/or modify
+ − 12 ;; it under the terms of the GNU General Public License as published by
+ − 13 ;; the Free Software Foundation; either version 2, or (at your option)
+ − 14 ;; any later version.
+ − 15
+ − 16 ;; XEmacs is distributed in the hope that it will be useful,
+ − 17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+ − 18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ − 19 ;; GNU General Public License for more details.
+ − 20
+ − 21 ;; You should have received a copy of the GNU General Public License
+ − 22 ;; along with XEmacs; see the file COPYING. If not, write to the
+ − 23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ − 24 ;; Boston, MA 02111-1307, USA.
+ − 25
+ − 26 ;;; Synched up with: Not synched.
+ − 27
+ − 28 ;;; Commentary:
+ − 29
+ − 30 ;; This file is dumped with XEmacs (when TTY support is compiled in).
+ − 31
+ − 32 ;;; Code:
+ − 33
+ − 34 (defvar pre-tty-win-initted nil)
+ − 35
+ − 36 ;; called both from init-tty-win and from the C code.
+ − 37 (defun init-pre-tty-win ()
+ − 38 "Initialize TTY at startup (pre). Don't call this."
502
+ − 39 (with-fboundp 'register-tty-color
+ − 40 (unless pre-tty-win-initted
+ − 41 (register-tty-color "black" "\e[30m" "\e[40m")
+ − 42 (register-tty-color "red" "\e[31m" "\e[41m")
+ − 43 (register-tty-color "green" "\e[32m" "\e[42m")
+ − 44 (register-tty-color "yellow" "\e[33m" "\e[43m")
+ − 45 (register-tty-color "blue" "\e[34m" "\e[44m")
+ − 46 (register-tty-color "magenta" "\e[35m" "\e[45m")
+ − 47 (register-tty-color "cyan" "\e[36m" "\e[46m")
+ − 48 (register-tty-color "white" "\e[37m" "\e[47m")
428
+ − 49
502
+ − 50 ;; Define `highlighted' tty colors
+ − 51 (register-tty-color "darkgrey" "\e[1;30m" "\e[1;40m")
+ − 52 (register-tty-color "brightred" "\e[1;31m" "\e[1;41m")
+ − 53 (register-tty-color "brightgreen" "\e[1;32m" "\e[1;42m")
+ − 54 (register-tty-color "brightyellow" "\e[1;33m" "\e[1;43m")
+ − 55 (register-tty-color "brightblue" "\e[1;34m" "\e[1;44m")
+ − 56 (register-tty-color "brightmagenta" "\e[1;35m" "\e[1;45m")
+ − 57 (register-tty-color "brightcyan" "\e[1;36m" "\e[1;46m")
+ − 58 (register-tty-color "brightwhite" "\e[1;37m" "\e[1;47m")
428
+ − 59
502
+ − 60 (setq pre-tty-win-initted t))))
428
+ − 61
+ − 62 ;; called both from init-tty-win and from the C code.
+ − 63 ;; we have to do this for every created TTY console.
+ − 64 (defun init-post-tty-win (console)
+ − 65 "Initialize TTY at console creation time (post). Don't call this."
+ − 66 ;; load the appropriate term-type-specific Lisp file.
+ − 67 ;; we don't do this at startup here so that the user can
+ − 68 ;; override term-file-prefix. (startup.el does it after
+ − 69 ;; loading the init file.)
+ − 70 (if (featurep 'mule)
502
+ − 71 (declare-fboundp (init-mule-tty-win)))
428
+ − 72 (when init-file-loaded
+ − 73 ;; temporarily select the console so that the changes
+ − 74 ;; to function-key-map are made for the right console.
+ − 75 (let ((foobar (selected-console)))
+ − 76 (unwind-protect
+ − 77 (progn
+ − 78 (select-console console)
+ − 79 (load-terminal-library))
+ − 80 (select-console foobar)))))
+ − 81
+ − 82 (defvar tty-win-initted nil)
+ − 83
+ − 84 (defun init-tty-win ()
+ − 85 "Initialize TTY at startup. Don't call this."
+ − 86 (unless tty-win-initted
+ − 87 (init-pre-tty-win)
+ − 88 (make-tty-device nil nil)
+ − 89 (init-post-tty-win (selected-console))
+ − 90 (setq tty-win-initted t)))
+ − 91
+ − 92 (defun make-frame-on-tty (tty &optional props)
+ − 93 "Create a frame on the TTY connection named TTY.
+ − 94 TTY should be a TTY device name such as \"/dev/ttyp3\" (as returned by
+ − 95 the `tty' command in that TTY), or nil for the standard input/output
+ − 96 of the running XEmacs process.
+ − 97
+ − 98 PROPS should be a plist of properties, as in the call to `make-frame'.
+ − 99
+ − 100 This function opens a connection to the TTY or reuses an existing
+ − 101 connection.
+ − 102
+ − 103 This function is a trivial wrapper around `make-frame-on-device'."
+ − 104 (interactive "sMake frame on TTY: ")
+ − 105 (if (equal tty "") (setq tty nil))
+ − 106 (make-frame-on-device 'tty tty props))
+ − 107
+ − 108 ;;; tty-init.el ends here