Mercurial > emacs
changeset 65473:ea119ac3951f
(command-line): Try calling various terminal-init-foo-bar
functions by stripping hyphenated suffixes from $TERM.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Mon, 12 Sep 2005 15:47:31 +0000 |
parents | c27f3688e1dc |
children | dba2088fc82f |
files | lisp/startup.el |
diffstat | 1 files changed, 15 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/startup.el Mon Sep 12 15:37:44 2005 +0000 +++ b/lisp/startup.el Mon Sep 12 15:47:31 2005 +0000 @@ -976,20 +976,28 @@ (unless (or noninteractive window-system (null term-file-prefix)) - (let ((term (getenv "TERM")) + (let* ((TERM (getenv "TERM")) + (term TERM) hyphend) (while (and term (not (load (concat term-file-prefix term) t t))) ;; Strip off last hyphen and what follows, then try again (setq term - (if (setq hyphend (string-match "[-_][^-_]+$" term)) + (if (setq hyphend (string-match "[-_][^-_]+\\'" term)) (substring term 0 hyphend) nil))) - (when term - ;; The terminal file has been loaded, now call the terminal - ;; specific initialization function. - (let ((term-init-func (intern (concat "terminal-init-" term)))) - (when (fboundp term-init-func) + (setq term TERM) + ;; The terminal file has been loaded, now call the terminal specific + ;; initialization function. + (while term + (let ((term-init-func (intern-soft (concat "terminal-init-" term)))) + (if (not (fboundp term-init-func)) + ;; Strip off last hyphen and what follows, then try again + (setq term + (if (setq hyphend (string-match "[-_][^-_]+\\'" term)) + (substring term 0 hyphend) + nil)) + (setq term nil) (funcall term-init-func)))))) ;; Update the out-of-memory error message based on user's key bindings