mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-07 12:20:39 -08:00
(command-line): Try calling various terminal-init-foo-bar
functions by stripping hyphenated suffixes from $TERM.
This commit is contained in:
parent
595f66af31
commit
c7dc8ae18a
1 changed files with 15 additions and 7 deletions
|
|
@ -976,20 +976,28 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
|
|||
(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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue