;;; Code:
-(eval-when-compile (require 'riece-inlines))
-
(require 'riece-misc)
(require 'riece-filter) ;riece-default-handle-message
(require 'riece-version)
+(require 'riece-commands) ;riece-command-join
(eval-when-compile
(autoload 'riece-default-handle-numeric-reply "riece-filter"))
(defun riece-handle-001-message (prefix number name string)
"RPL_WELCOME \"Welcome to the Internet Relay Network <nick>!<user>@<host>\""
+ (if riece-real-server-name
+ (error "Already registered"))
(setq riece-real-server-name prefix
riece-real-nickname name
riece-real-userhost nil)
+ ;; Before sending USERHOST, register myself with riece-obarray
+ ;; because it may take some time.
+ (riece-get-user name)
(riece-send-string (format "USERHOST %s\r\n" riece-real-nickname))
(riece-insert-info
(list riece-dialogue-buffer riece-others-buffer)
- (concat (substring string 1) "\n")))
+ (concat (substring string 1) "\n"))
+ (if (equal riece-server-name "")
+ (message "Logging in to IRC server...done")
+ (message "Logging in to %s...done" riece-server-name))
+ (let ((channel-list riece-startup-channel-list)
+ entry identity)
+ (while channel-list
+ (unless (listp (setq entry (car channel-list)))
+ (setq entry (list (car channel-list))))
+ (if (equal (riece-identity-server
+ (setq identity (riece-parse-identity (car entry))))
+ riece-server-name)
+ (riece-command-join identity (nth 1 entry)))
+ (setq channel-list (cdr channel-list))))
+ (run-hooks 'riece-after-login-hook))
(defun riece-handle-004-message (prefix number name string)
"RPL_MYINFO \"<umodes> <chnlmodes>\""