Mercurial > emacs
comparison lisp/server.el @ 82985:8d7be2534cbc
Delete server frames on server restart.
lisp/server.el (server-start): Delete any remaining opened frames of
the previous server.
(server-sentinel, server-process-filter): Force deleting the frame.
(server-buffer-done): Ditto.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-25
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Tue, 30 Dec 2003 17:42:02 +0000 |
parents | 56e4b7166995 |
children | 1682917e56b4 |
comparison
equal
deleted
inserted
replaced
82984:3b1f99f17618 | 82985:8d7be2534cbc |
---|---|
185 ;; Remove PROC from the list of clients. | 185 ;; Remove PROC from the list of clients. |
186 (when client | 186 (when client |
187 (setq server-clients (delq client server-clients)) | 187 (setq server-clients (delq client server-clients)) |
188 (let ((frame (assq (car client) server-frames))) | 188 (let ((frame (assq (car client) server-frames))) |
189 (setq server-frames (delq frame server-frames)) | 189 (setq server-frames (delq frame server-frames)) |
190 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame)))) | 190 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame) 'force))) |
191 (dolist (buf (cdr client)) | 191 (dolist (buf (cdr client)) |
192 (with-current-buffer buf | 192 (with-current-buffer buf |
193 ;; Remove PROC from the clients of each buffer. | 193 ;; Remove PROC from the clients of each buffer. |
194 (setq server-buffer-clients (delq proc server-buffer-clients)) | 194 (setq server-buffer-clients (delq proc server-buffer-clients)) |
195 ;; Kill the buffer if necessary. | 195 ;; Kill the buffer if necessary. |
265 (condition-case () (delete-file server-socket-name) (error nil)) | 265 (condition-case () (delete-file server-socket-name) (error nil)) |
266 ;; If this Emacs already had a server, clear out associated status. | 266 ;; If this Emacs already had a server, clear out associated status. |
267 (while server-clients | 267 (while server-clients |
268 (let ((buffer (nth 1 (car server-clients)))) | 268 (let ((buffer (nth 1 (car server-clients)))) |
269 (server-buffer-done buffer))) | 269 (server-buffer-done buffer))) |
270 ;; Delete any remaining opened frames of the previous server. | |
271 (while server-frames | |
272 (let ((frame (cadar server-frames))) | |
273 (setq server-frames (cdr server-frames)) | |
274 (when frame-live-p frame (delete-frame frame 'force)))) | |
270 (unless leave-dead | 275 (unless leave-dead |
271 (if server-process | 276 (if server-process |
272 (server-log (message "Restarting server"))) | 277 (server-log (message "Restarting server"))) |
273 (letf (((default-file-modes) ?\700)) | 278 (letf (((default-file-modes) ?\700)) |
274 (setq server-process | 279 (setq server-process |
380 (if (null (cdr client)) | 385 (if (null (cdr client)) |
381 ;; This client is empty; get rid of it immediately. | 386 ;; This client is empty; get rid of it immediately. |
382 (progn | 387 (progn |
383 (let ((frame (assq (car client) server-frames))) | 388 (let ((frame (assq (car client) server-frames))) |
384 (setq server-frames (delq frame server-frames)) | 389 (setq server-frames (delq frame server-frames)) |
385 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame)))) | 390 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame) 'force))) |
386 (delete-process proc) | 391 (delete-process proc) |
387 (server-log "Close empty client" proc)) | 392 (server-log "Close empty client" proc)) |
388 ;; We visited some buffer for this client. | 393 ;; We visited some buffer for this client. |
389 (or nowait (push client server-clients)) | 394 (or nowait (push client server-clients)) |
390 (unless (or isearch-mode (minibufferp)) | 395 (unless (or isearch-mode (minibufferp)) |
469 ;; If client now has no pending buffers, | 474 ;; If client now has no pending buffers, |
470 ;; tell it that it is done, and forget it entirely. | 475 ;; tell it that it is done, and forget it entirely. |
471 (unless (cdr client) | 476 (unless (cdr client) |
472 (let ((frame (assq (car client) server-frames))) | 477 (let ((frame (assq (car client) server-frames))) |
473 (setq server-frames (delq frame server-frames)) | 478 (setq server-frames (delq frame server-frames)) |
474 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame)))) | 479 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame) 'force))) |
475 (delete-process (car client)) | 480 (delete-process (car client)) |
476 (server-log "Close" (car client)) | 481 (server-log "Close" (car client)) |
477 (setq server-clients (delq client server-clients)))) | 482 (setq server-clients (delq client server-clients)))) |
478 (setq old-clients (cdr old-clients))) | 483 (setq old-clients (cdr old-clients))) |
479 (if (and (bufferp buffer) (buffer-name buffer)) | 484 (if (and (bufferp buffer) (buffer-name buffer)) |