changeset 14888:b256ebb2110a

(te-terminal-name-prefix): Change from "emacs-virtual" to "emacs-em", so that things will work on systems which allow only short terminal-type names. (terminal-emulator): Delete the hyphen between te-terminal-name-prefix and the width and height of the window. (te-create-terminfo): Reformat the terminfo entry slightly. (te-terminfo-directory): New variable. (te-create-terminfo, te-tic-sentinel): Use te-terminfo-directory.
author Richard M. Stallman <rms@gnu.org>
date Wed, 27 Mar 1996 00:11:39 +0000
parents 11a44a4c4bfe
children acc4f62dbeb0
files lisp/terminal.el
diffstat 1 files changed, 17 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/terminal.el	Wed Mar 27 00:10:38 1996 +0000
+++ b/lisp/terminal.el	Wed Mar 27 00:11:39 1996 +0000
@@ -172,7 +172,10 @@
 (defvar te-pending-output-info nil)
 
 ;; Required to support terminfo systems
-(defconst te-terminal-name-prefix "emacs-virtual")
+(defconst te-terminal-name-prefix "emacs-em"
+  "Prefix used for terminal type names for Terminfo.")
+(defconst te-terminfo-directory "/tmp/emacs-terminfo/"
+  "Directory used for run-time terminal definition files for Terminfo.")
 (defvar te-terminal-name nil)
 
 ;;;;  escape map
@@ -1100,7 +1103,7 @@
   (if (null height) (setq height (- (window-height (selected-window)) 1)))
   (terminal-mode)
   (setq te-width width te-height height)
-  (setq te-terminal-name (concat te-terminal-name-prefix "-" te-width
+  (setq te-terminal-name (concat te-terminal-name-prefix te-width
 				 te-height))
   (setq mode-line-buffer-identification
 	(list (format "Emacs terminal %dx%d: %%b  " te-width te-height)
@@ -1242,22 +1245,25 @@
 
 (defun te-create-terminfo ()
   "Create and compile a terminfo entry for the virtual terminal. This is kept
-in the /tmp directory"
+in the directory specified by `te-terminfo-directory'."
   (if (and system-uses-terminfo
-	   (not (file-exists-p (concat  "/tmp/"
+	   (not (file-exists-p (concat  te-terminfo-directory
 					(substring te-terminal-name-prefix 0 1)
 					"/" te-terminal-name))))
     (let ( (terminfo
 	    (concat
-	     (format "%s,mir, xon,cols#%d, lines#%d,"
+	     ;; The first newline avoids trouble with ncurses.
+	     (format "%s,\n\tmir, xon,cols#%d, lines#%d,"
 		     te-terminal-name te-width te-height)
 	     "bel=^P^G, clear=^P\\f, cr=^P^A, cub1=^P^B, cud1=^P\\n,"
 	     "cuf1=^P^F, cup=^P=%p1%'\\s'%+%c%p2%'\\s'%+%c,"
 	     "dch=^Pd%p1%'\\s'%+%c, dch1=^Pd!, dl=^P^K%p1%'\\s'%+%c,"
 	     "dl1=^P^K!, ed=^PC, el=^Pc, home=^P=\\s\\s,"
 	     "ich=^P_%p1%'\\s'%+%c, ich1=^P_!, il=^P^O%p1%'\\s'%+%c,"
-	     "il1=^P^O!, ind=^P\\n, nel=\\n,"))
-	   (file-name (concat "/tmp/" te-terminal-name ".tif")) )
+	     "il1=^P^O!, ind=^P\\n, nel=\\n,\n"))
+	   ;; The last newline avoids trouble with ncurses.
+	   (file-name (concat te-terminfo-directory te-terminal-name ".tif")) )
+      (make-directory te-terminfo-directory t)
       (save-excursion
 	(set-buffer (create-file-buffer file-name))
 	(insert terminfo)
@@ -1265,11 +1271,12 @@
 	(kill-buffer nil)
 	)
       (let ( (process-environment
-	      (cons (concat "TERMINFO=" "/tmp")
+	      (cons (concat "TERMINFO="
+			    (directory-file-name te-terminfo-directory))
 		    process-environment)) )
 	(set-process-sentinel (start-process "tic" nil "tic" file-name)
 			      'te-tic-sentinel))))
-    "/tmp"
+    (directory-file-name te-terminfo-directory)
 )
 
 (defun te-create-termcap ()
@@ -1306,7 +1313,7 @@
   "If tic has finished, delete the .tif file"
   (if (equal state-change "finished
 ")
-      (delete-file (concat "/tmp/" te-terminal-name ".tif"))))
+      (delete-file (concat te-terminfo-directory te-terminal-name ".tif"))))
 
 (provide 'terminal)