From: Chong Yidong Date: Fri, 20 Apr 2012 10:04:19 +0000 (+0800) Subject: * lisp/server.el (server-execute): Respect initial-buffer-choice X-Git-Tag: emacs-24.2.90~471^2~335 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=de6ff46dce80a715d46c34ff46f01a28afb63db9;p=emacs.git * 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 --- diff --git a/etc/NEWS b/etc/NEWS index 16b9f75c503..b2c487ba15b 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 c9cece95445..947ae6f17f6 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 123fea3743a..f9c8ea5c577 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