From de6ff46dce80a715d46c34ff46f01a28afb63db9 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 20 Apr 2012 18:04:19 +0800 Subject: [PATCH] * lisp/server.el (server-execute): Respect initial-buffer-choice if it is a string and there are no files to open. (server-create-window-system-frame, server-create-tty-frame): Don't switch buffers here. Fixes: debbugs:2825 --- etc/NEWS | 4 ++++ lisp/ChangeLog | 7 +++++++ lisp/server.el | 20 +++++++++----------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 16b9f75c50..b2c487ba15 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -53,6 +53,10 @@ automatically when setting `imagemagick-types-inhibit'. *** Setting `imagemagick-types-inhibit' to t now disables the use of ImageMagick to view images, set +** String values for `initial-buffer-choice' also apply to emacsclient +frames, if emacsclient is only told to open a new frame without +specifying any file to visit or expression to evaluate. + * Editing Changes in Emacs 24.2 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c9cece9544..947ae6f17f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2012-04-20 Chong Yidong + + * server.el (server-execute): Respect initial-buffer-choice if it + is a string and there are no files to open (Bug#2825). + (server-create-window-system-frame, server-create-tty-frame): + Don't switch buffers here. + 2012-04-20 Dan Nicolaescu * battery.el (battery-echo-area-format): Display remaining time diff --git a/lisp/server.el b/lisp/server.el index 123fea3743..f9c8ea5c57 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -821,10 +821,6 @@ This handles splitting the command if it would be bigger than (select-frame frame) (process-put proc 'frame frame) (process-put proc 'terminal (frame-terminal frame)) - - ;; Display *scratch* by default. - (switch-to-buffer (get-buffer-create "*scratch*") 'norecord) - frame)) (defun server-create-window-system-frame (display nowait proc parent-id @@ -857,9 +853,6 @@ This handles splitting the command if it would be bigger than (select-frame frame) (process-put proc 'frame frame) (process-put proc 'terminal (frame-terminal frame)) - - ;; Display *scratch* by default. - (switch-to-buffer (get-buffer-create "*scratch*") 'norecord) frame))) (defun server-goto-toplevel (proc) @@ -1230,12 +1223,17 @@ The following commands are accepted by the client: ;; including code that needs to wait. (with-local-quit (condition-case err - (let* ((buffers - (when files - (server-visit-files files proc nowait)))) - + (let ((buffers (server-visit-files files proc nowait))) (mapc 'funcall (nreverse commands)) + ;; If we were told only to open a new client, obey + ;; `initial-buffer-choice' if it specifies a file. + (unless (or files commands) + (if (stringp initial-buffer-choice) + (find-file initial-buffer-choice) + (switch-to-buffer (get-buffer-create "*scratch*") + 'norecord))) + ;; Delete the client if necessary. (cond (nowait -- 2.20.1