aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/server.el12
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/server.el b/lisp/server.el
index 9c841071a99..bf7d4a5d358 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -271,7 +271,7 @@ Prefix arg means just kill any existing server communications subprocess."
271 (while server-frames 271 (while server-frames
272 (let ((frame (cadar server-frames))) 272 (let ((frame (cadar server-frames)))
273 (setq server-frames (cdr server-frames)) 273 (setq server-frames (cdr server-frames))
274 (when frame-live-p frame (delete-frame frame 'force)))) 274 (when (frame-live-p frame) (delete-frame frame 'force))))
275 (unless leave-dead 275 (unless leave-dead
276 (if server-process 276 (if server-process
277 (server-log (message "Restarting server"))) 277 (server-log (message "Restarting server")))
@@ -314,7 +314,7 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"."
314 (coding-system (and default-enable-multibyte-characters 314 (coding-system (and default-enable-multibyte-characters
315 (or file-name-coding-system 315 (or file-name-coding-system
316 default-file-name-coding-system))) 316 default-file-name-coding-system)))
317 client nowait eval 317 client nowait eval newframe
318 (files nil) 318 (files nil)
319 (lineno 1) 319 (lineno 1)
320 (columnno 0)) 320 (columnno 0))
@@ -336,6 +336,7 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"."
336 (setq request ""))))) 336 (setq request "")))))
337 ;; Open a new frame at the client. ARG is the name of the pseudo tty. 337 ;; Open a new frame at the client. ARG is the name of the pseudo tty.
338 ((and (equal "-pty" arg) (string-match "\\([^ ]*\\) \\([^ ]*\\) " request)) 338 ((and (equal "-pty" arg) (string-match "\\([^ ]*\\) \\([^ ]*\\) " request))
339 (setq newframe t)
339 (let ((pty (server-unquote-arg (match-string 1 request))) 340 (let ((pty (server-unquote-arg (match-string 1 request)))
340 (type (server-unquote-arg (match-string 2 request)))) 341 (type (server-unquote-arg (match-string 2 request))))
341 (setq request (substring request (match-end 0))) 342 (setq request (substring request (match-end 0)))
@@ -364,7 +365,7 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"."
364 (if eval 365 (if eval
365 (condition-case err 366 (condition-case err
366 (let ((v (eval (car (read-from-string arg))))) 367 (let ((v (eval (car (read-from-string arg)))))
367 (when v 368 (when (and (not newframe v))
368 (with-temp-buffer 369 (with-temp-buffer
369 (let ((standard-output (current-buffer))) 370 (let ((standard-output (current-buffer)))
370 (pp v) 371 (pp v)
@@ -382,7 +383,7 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"."
382 (server-visit-files files client nowait) 383 (server-visit-files files client nowait)
383 (run-hooks 'post-command-hook)) 384 (run-hooks 'post-command-hook))
384 ;; CLIENT is now a list (CLIENTNUM BUFFERS...) 385 ;; CLIENT is now a list (CLIENTNUM BUFFERS...)
385 (if (null (cdr client)) 386 (if (and (not newframe) (null (cdr client)))
386 ;; This client is empty; get rid of it immediately. 387 ;; This client is empty; get rid of it immediately.
387 (progn 388 (progn
388 (let ((frame (assq (car client) server-frames))) 389 (let ((frame (assq (car client) server-frames)))
@@ -607,7 +608,8 @@ Arg NEXT-BUFFER is a suggestion; if it is a live buffer, use it."
607 ;; since we've already effectively done that. 608 ;; since we've already effectively done that.
608 (if (null next-buffer) 609 (if (null next-buffer)
609 (if server-clients 610 (if server-clients
610 (server-switch-buffer (nth 1 (car server-clients)) killed-one) 611 (let ((buffer (nth 1 (car server-clients))))
612 (and buffer (server-switch-buffer buffer killed-one)))
611 (unless (or killed-one (window-dedicated-p (selected-window))) 613 (unless (or killed-one (window-dedicated-p (selected-window)))
612 (switch-to-buffer (other-buffer)) 614 (switch-to-buffer (other-buffer))
613 (message "No server buffers remain to edit"))) 615 (message "No server buffers remain to edit")))