-(eval-when-compile
- (autoload 'riece-exit "riece"))
-(defun riece-close-server (server-name &optional quit-message)
- ;; Remove channels which belong to the server.
- (let ((riece-overriding-server-name server-name)
- (channels riece-current-channels))
- (while channels
- (if (and (car channels)
- (equal (riece-identity-server (car channels))
- server-name))
- (riece-part-channel (car channels)))
- (setq channels (cdr channels)))
- (riece-redisplay-buffers))
- ;; Close now.
- (let (process)
- (if server-name
- (let ((entry (assoc server-name riece-server-process-alist)))
- (setq process (cdr entry)
- riece-server-process-alist
- (delq entry riece-server-process-alist)))
- (setq process riece-server-process
- riece-server-process nil))
- (riece-close-server-process process quit-message)
- ;; If no server process is available, exit.
- (if (and (null riece-server-process)
- (null riece-server-process-alist))
- (riece-exit))))
-
-(defun riece-close-all-server (&optional quit-message)
- (let ((process-list
- (delq nil (cons riece-server-process
- (mapcar #'cdr riece-server-process-alist)))))
- (while process-list
- (riece-close-server-process (car process-list) quit-message)
- (setq process-list (cdr process-list)))
- (setq riece-server-process nil
- riece-server-process-alist nil)
- (riece-exit)))