From: Glenn Morris Date: Wed, 26 Feb 2014 19:40:56 +0000 (-0500) Subject: Avoid calling tty-setup-hook twice X-Git-Tag: emacs-24.3.90~357^2~7^2~8 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1d491ef203a07bf570436b8f7f47b965eee1cd2b;p=emacs.git Avoid calling tty-setup-hook twice eg if a term file explicitly calls tty-run-terminal-initialization * lisp/faces.el (tty-run-terminal-initialization): Add run-hook argument. (tty-create-frame-with-faces): Use it. * lisp/startup.el (command-line): Pass run-hook argument to tty-run-terminal-initialization. Fixes: debbugs:16859 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4748767f939..510784e459a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,12 @@ 2014-02-26 Glenn Morris + Avoid calling tty-setup-hook twice, eg if a term file + explicitly calls tty-run-terminal-initialization. (Bug#16859) + * faces.el (tty-run-terminal-initialization): Add run-hook argument. + (tty-create-frame-with-faces): Use it. + * startup.el (command-line): Pass run-hook argument + to tty-run-terminal-initialization. + * dired.el (dired-restore-desktop-buffer): Demote errors; eg in case a glob match fails. (Bug#16884) diff --git a/lisp/faces.el b/lisp/faces.el index 985355ade09..e008993b49f 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -2080,7 +2080,7 @@ If PARAMETERS contains a `reverse' parameter, handle that." (unless (terminal-parameter frame 'terminal-initted) (set-terminal-parameter frame 'terminal-initted t) (set-locale-environment nil frame) - (tty-run-terminal-initialization frame)) + (tty-run-terminal-initialization frame nil t)) (frame-set-background-mode frame t) (face-set-after-frame-default frame parameters) (setq success t)) @@ -2110,11 +2110,13 @@ the above example." Specifically, `tty-run-terminal-initialization' runs this. This can be used to fine tune the `input-decode-map', for example.") -(defun tty-run-terminal-initialization (frame &optional type) +(defun tty-run-terminal-initialization (frame &optional type run-hook) "Run the special initialization code for the terminal type of FRAME. The optional TYPE parameter may be used to override the autodetected -terminal type to a different value. As a final step, this runs the -hook `tty-setup-hook'. +terminal type to a different value. + +If optional argument RUN-HOOK is non-nil, then as a final step, +this runs the hook `tty-setup-hook'. If you set `term-file-prefix' to nil, this function does nothing." (setq type (or type (tty-type frame))) @@ -2139,7 +2141,7 @@ If you set `term-file-prefix' to nil, this function does nothing." (when (fboundp term-init-func) (funcall term-init-func)) (set-terminal-parameter frame 'terminal-initted term-init-func) - (run-hooks 'tty-setup-hook))))) + (if run-hook (run-hooks 'tty-setup-hook)))))) ;; Called from C function init_display to initialize faces of the ;; dumped terminal frame on startup. diff --git a/lisp/startup.el b/lisp/startup.el index 9c9f23ba9a6..531cba2af55 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1286,7 +1286,7 @@ the `--debug-init' option to view a complete error backtrace." ;; User init file can set term-file-prefix to nil to prevent this. (unless (or noninteractive initial-window-system) - (tty-run-terminal-initialization (selected-frame))) + (tty-run-terminal-initialization (selected-frame) nil t)) ;; Update the out-of-memory error message based on user's key bindings ;; for save-some-buffers.