Removed aliases for encode-coding-string & decode-coding-string since
[riece] / lisp / riece-000.el
index 9a442f2..277cae5 100644 (file)
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Code:
 
 (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"))
+  (autoload 'riece-default-handle-numeric-reply "riece-handle"))
 (defun riece-handle-default-000-message (prefix number name string)
   (setq riece-nick-accepted 'ok)
   (riece-default-handle-numeric-reply
 (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"))
+      (error (riece-mcat "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"))
   (if (equal riece-server-name "")
-      (message "Logging in to IRC server...done")
-    (message "Logging in to %s...done" riece-server-name))
+      (message (riece-mcat "Logging in to IRC server...done"))
+    (message (riece-mcat "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-channel 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)