X-Git-Url: http://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-server.el;h=0182813161361bada1f60fbd2b8593d3e89e68c4;hp=3d6e3668388fc5310a065194c8acb32998890c7a;hb=b3b111c08ece2cc499656fcb321bf25ad52f3d0d;hpb=14b2f20ab2cf572cdf1113747dbc9d52c5aee374 diff --git a/lisp/riece-server.el b/lisp/riece-server.el index 3d6e366..0182813 100644 --- a/lisp/riece-server.el +++ b/lisp/riece-server.el @@ -27,6 +27,8 @@ (require 'riece-options) (require 'riece-globals) ;for server local variables. (require 'riece-coding) ;riece-default-coding-system +(require 'riece-identity) +(require 'riece-compat) (eval-and-compile (defvar riece-server-keyword-map @@ -60,22 +62,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-clear-system () - (while riece-buffer-list - (if (and (get-buffer (car riece-buffer-list)) - (buffer-live-p (car riece-buffer-list))) - (funcall riece-buffer-dispose-function (car riece-buffer-list))) - (setq riece-buffer-list (cdr riece-buffer-list))) - (setq riece-current-channels nil - riece-current-channel nil - riece-user-indicator nil - riece-channel-indicator "None" - riece-channel-list-indicator "No channel" - riece-away-indicator "-" - riece-operator-indicator "-" - riece-freeze-indicator "-") - (delete-other-windows)) - (defun riece-server-parse-string (string) "Convert a STRING set as `riece-server' and return a property list." (when (or (string-match "^\\[\\([^]]+\\)\\]:?\\([0-9]*\\)" string) @@ -139,29 +125,36 @@ the `riece-server-keyword-map' variable." (riece-process-send-string process string))) (defun riece-open-server (server server-name) - (if (equal server-name "") - (message "Connecting to IRC server...") - (message "Connecting to %s..." server-name)) (riece-server-keyword-bind server - (let* (selective-display - (coding-system-for-read 'binary) - (coding-system-for-write 'binary) - (process + (let (selective-display + (coding-system-for-read 'binary) + (coding-system-for-write 'binary) + process) + (if (equal server-name "") + (message "Connecting to IRC server...") + (message "Connecting to %s..." server-name)) + (setq process (funcall function (riece-server-process-name server-name) (concat " *IRC*" server-name) - host service))) + host service)) + (if (equal server-name "") + (message "Connecting to IRC server...done") + (message "Connecting to %s...done" server-name)) (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 - riece-reconnect-with-password) + (if (equal server-name "") + (message "Logging in to IRC server...") + (message "Logging in to %s..." server-name)) + (if riece-reconnect-with-password ;password incorrect or not set. + (unwind-protect + (setq password (riece-read-passwd "Password: ")) + (setq riece-reconnect-with-password nil))) + (if password (riece-process-send-string process - (format "PASS %s\r\n" - (or password - (riece-read-passwd - "Password: "))))) + (format "PASS %s\r\n" password))) (riece-process-send-string process (format "USER %s * * :%s\r\n" (user-real-login-name) @@ -173,10 +166,7 @@ the `riece-server-keyword-map' variable." riece-nick-accepted 'sent riece-coding-system coding)) (setq riece-process-list - (cons process riece-process-list)))) - (if (equal server-name "") - (message "Connecting to IRC server...done") - (message "Connecting to %s...done" server-name))) + (cons process riece-process-list))))) (defun riece-reset-process-buffer (process) (save-excursion