X-Git-Url: https://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-server.el;h=d2ae3b645209e7da2a164f2e05325c6c20e966ad;hp=4d5b2449a4629ff0aa90d16bed2ed293714bd3cd;hb=8b5023845d99f72279ab7b566213a8f3f9ebe841;hpb=29eadaf23bafb853270b90c09348bff759b23fd1 diff --git a/lisp/riece-server.el b/lisp/riece-server.el index 4d5b244..d2ae3b6 100644 --- a/lisp/riece-server.el +++ b/lisp/riece-server.el @@ -63,18 +63,6 @@ the `riece-server-keyword-map' variable." (put 'riece-server-keyword-bind 'lisp-indent-function 1) (put 'riece-server-keyword-bind 'edebug-form-spec '(form body)) -(defun riece-start-server (server &optional server-name) - "Open network stream to remote irc server. -If optional argument CONFIRM is non-nil, ask the host that the server -is running on." - (if server-name - (message "Connecting to IRC server on %s..." server-name) - (message "Connecting to IRC server...")) - (prog1 (riece-open-server server server-name) - (if server-name - (message "Connecting to IRC server on %s...done" server-name) - (message "Connecting to IRC server...done")))) - (defun riece-clear-system () (while riece-buffer-list (if (and (get-buffer (car riece-buffer-list)) @@ -114,20 +102,24 @@ is running on." riece-save-variables-are-dirty t)) (cdr entry))) -(defun riece-open-server (server server-name) - "Open chat server on HOST. -If HOST is nil, use value of environment variable \"IRCSERVER\". -If optional argument SERVICE is non-nil, open by the service name." +(defun riece-open-server (server &optional server-name) + (if server-name + (message "Connecting to IRC server %s..." server-name) + (message "Connecting to IRC server...")) (riece-server-keyword-bind server (let* (selective-display (coding-system-for-read 'binary) (coding-system-for-write 'binary) (process - (funcall function "IRC" (if server-name - (format " *IRC*%s" server-name) - " *IRC*") + (funcall function "IRC" + (get-buffer-create + (if server-name + (format " *IRC*%s" server-name) + " *IRC*")) host service))) (riece-reset-process-buffer process) + (with-current-buffer (process-buffer process) + (setq riece-server-name server-name)) (set-process-sentinel process 'riece-sentinel) (set-process-filter process 'riece-filter) (if (or password @@ -137,7 +129,6 @@ If optional argument SERVICE is non-nil, open by the service name." (or password (riece-read-passwd "Password: "))))) - (setq riece-reconnect-with-password nil) (riece-process-send-string process (format "USER %s * * :%s\r\n" (user-real-login-name) @@ -148,7 +139,14 @@ If optional argument SERVICE is non-nil, open by the service name." (setq riece-last-nickname riece-real-nickname riece-nick-accepted 'sent riece-coding-system coding-system)) - process))) + (if server-name + (setq riece-server-process-alist + (cons (cons server-name process) + riece-server-process-alist)) + (setq riece-server-process process)))) + (if server-name + (message "Connecting to IRC server %s...done" server-name) + (message "Connecting to IRC server...done"))) (defun riece-reset-process-buffer (process) (save-excursion @@ -185,9 +183,9 @@ If optional argument SERVICE is non-nil, open by the service name." (if quit-message (format "QUIT :%s\r\n" quit-message) "QUIT\r\n")) - (delete-process process) (unless riece-debug - (kill-buffer (process-buffer process))))) + (kill-buffer (process-buffer process)))) + (delete-process process)) (eval-when-compile (autoload 'riece-exit "riece")) @@ -196,8 +194,9 @@ If optional argument SERVICE is non-nil, open by the service name." (let ((riece-overriding-server-name server-name) (channels riece-current-channels)) (while channels - (if (equal (riece-identity-server (car channels)) - server-name) + (if (and (car channels) + (equal (riece-identity-server (car channels)) + server-name)) (riece-part-channel (car channels))) (setq channels (cdr channels))) (riece-redisplay-buffers))