]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid calling tty-setup-hook twice
authorGlenn Morris <rgm@gnu.org>
Wed, 26 Feb 2014 19:40:56 +0000 (14:40 -0500)
committerGlenn Morris <rgm@gnu.org>
Wed, 26 Feb 2014 19:40:56 +0000 (14:40 -0500)
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
lisp/ChangeLog
lisp/faces.el
lisp/startup.el

index 4748767f93991a4cabb23a90a4545ed41114aa17..510784e459ab0d9aeed74549eb54843af9765bcd 100644 (file)
@@ -1,5 +1,12 @@
 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)
 
index 985355ade091e03aea2ee30a50ca3cbb9b474e3e..e008993b49ff7103ce95c6f9c0fb485011a01457 100644 (file)
@@ -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.
index 9c9f23ba9a615cc2481227cee7a397954d15445e..531cba2af557a1af701f5583d2dfe35987e8306a 100644 (file)
@@ -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.