2014-02-26 Glenn Morris <rgm@gnu.org>
+ 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)
(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))
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)))
(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.
;; 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.