comparison lisp/server.el @ 83517:b6689e223e2f

Merged from emacs@sv.gnu.org Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-273 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-274 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-275 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-276 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-277 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-278 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-279 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-280 Update etc/MORE.STUFF. * emacs@sv.gnu.org/emacs--devo--0--patch-281 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-282 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-283 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-284 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-101 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-557
author Karoly Lorentey <lorentey@elte.hu>
date Wed, 17 May 2006 18:05:02 +0000
parents 1321f6cfb389 06de67179ba1
children 46b1096093f5
comparison
equal deleted inserted replaced
83516:1321f6cfb389 83517:b6689e223e2f
413 (yes-or-no-p 413 (yes-or-no-p
414 "The current server still has clients; delete them? ")) 414 "The current server still has clients; delete them? "))
415 ;; It is safe to get the user id now. 415 ;; It is safe to get the user id now.
416 (setq server-socket-dir (or server-socket-dir 416 (setq server-socket-dir (or server-socket-dir
417 (format "/tmp/emacs%d" (user-uid)))) 417 (format "/tmp/emacs%d" (user-uid))))
418 ;; Make sure there is a safe directory in which to place the socket.
419 (server-ensure-safe-dir server-socket-dir)
420 ;; kill it dead! 418 ;; kill it dead!
421 (if server-process 419 (if server-process
422 (condition-case () (delete-process server-process) (error nil))) 420 (condition-case () (delete-process server-process) (error nil)))
423 ;; Delete the socket files made by previous server invocations. 421 ;; Delete the socket files made by previous server invocations.
424 (condition-case () 422 (condition-case ()
425 (delete-file (expand-file-name server-name server-socket-dir)) 423 (delete-file (expand-file-name server-name server-socket-dir))
426 (error nil)) 424 (error nil))
427 ;; If this Emacs already had a server, clear out associated status. 425 ;; If this Emacs already had a server, clear out associated status.
428 (while server-clients 426 (while server-clients
429 (server-delete-client (car server-clients))) 427 (server-delete-client (car server-clients)))
428 ;; Now any previous server is properly stopped.
430 (if leave-dead 429 (if leave-dead
431 (progn 430 (progn
432 (server-log (message "Server stopped")) 431 (server-log (message "Server stopped"))
433 (setq server-process nil)) 432 (setq server-process nil))
433 ;; Make sure there is a safe directory in which to place the socket.
434 (server-ensure-safe-dir server-socket-dir)
434 (if server-process 435 (if server-process
435 (server-log (message "Restarting server")) 436 (server-log (message "Restarting server"))
436 (server-log (message "Starting server"))) 437 (server-log (message "Starting server")))
437 (letf (((default-file-modes) ?\700)) 438 (letf (((default-file-modes) ?\700))
438 (add-hook 'suspend-tty-functions 'server-handle-suspend-tty) 439 (add-hook 'suspend-tty-functions 'server-handle-suspend-tty)
1026 starts server process and that is all. Invoked by \\[server-edit]." 1027 starts server process and that is all. Invoked by \\[server-edit]."
1027 (interactive "P") 1028 (interactive "P")
1028 (if (or arg 1029 (if (or arg
1029 (not server-process) 1030 (not server-process)
1030 (memq (process-status server-process) '(signal exit))) 1031 (memq (process-status server-process) '(signal exit)))
1031 (server-start nil) 1032 (server-mode 1)
1032 (apply 'server-switch-buffer (server-done)))) 1033 (apply 'server-switch-buffer (server-done))))
1033 1034
1034 (defun server-switch-buffer (&optional next-buffer killed-one) 1035 (defun server-switch-buffer (&optional next-buffer killed-one)
1035 "Switch to another buffer, preferably one that has a client. 1036 "Switch to another buffer, preferably one that has a client.
1036 Arg NEXT-BUFFER is a suggestion; if it is a live buffer, use it. 1037 Arg NEXT-BUFFER is a suggestion; if it is a live buffer, use it.
1112 1113
1113 (define-key ctl-x-map "#" 'server-edit) 1114 (define-key ctl-x-map "#" 'server-edit)
1114 1115
1115 (defun server-unload-hook () 1116 (defun server-unload-hook ()
1116 "Unload the server library." 1117 "Unload the server library."
1117 (server-start t) 1118 (server-mode -1)
1118 (remove-hook 'suspend-tty-functions 'server-handle-suspend-tty) 1119 (remove-hook 'suspend-tty-functions 'server-handle-suspend-tty)
1119 (remove-hook 'delete-frame-functions 'server-handle-delete-frame) 1120 (remove-hook 'delete-frame-functions 'server-handle-delete-frame)
1120 (remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function) 1121 (remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)
1121 (remove-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function) 1122 (remove-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function)
1122 (remove-hook 'kill-buffer-hook 'server-kill-buffer)) 1123 (remove-hook 'kill-buffer-hook 'server-kill-buffer))
1123 1124
1125 (add-hook 'kill-emacs-hook (lambda () (server-mode -1))) ;Cleanup upon exit.
1124 (add-hook 'server-unload-hook 'server-unload-hook) 1126 (add-hook 'server-unload-hook 'server-unload-hook)
1125 1127
1126 (provide 'server) 1128 (provide 'server)
1127 1129
1128 ;;; arch-tag: 1f7ecb42-f00a-49f8-906d-61995d84c8d6 1130 ;; arch-tag: 1f7ecb42-f00a-49f8-906d-61995d84c8d6
1129 ;;; server.el ends here 1131 ;;; server.el ends here