Fix -- user list buffer not updating when parts are hidden.
[riece] / lisp / riece-irc.el
index 77de700..5b56993 100644 (file)
@@ -1,4 +1,4 @@
-;;; riece-irc.el --- IRC protocol
+;;; riece-irc.el --- IRC protocol -*- lexical-binding: t -*-
 ;; Copyright (C) 1998-2004 Daiki Ueno
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
 
 ;; 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-filter)
 (require 'riece-server)
+(require 'riece-mcat)
 
 (defun riece-irc-open-server (server server-name)
   (riece-server-keyword-bind server
@@ -34,8 +35,8 @@
          (coding-system-for-write 'binary)
          process)
       (if (equal server-name "")
-         (message "Connecting to IRC server...")
-       (message "Connecting to %s..." server-name))
+         (message (riece-mcat "Connecting to IRC server..."))
+       (message (riece-mcat "Connecting to %s...") server-name))
       (condition-case error
          (setq process
                (funcall function (riece-server-process-name server-name)
                         host service))
        (error
         (if (equal server-name "")
-            (message "Connecting to IRC server...failed: %S" error)
-          (message "Connecting to %s...failed: %S" server-name error))
+            (message (riece-mcat "Connecting to IRC server...failed: %S")
+                     error)
+          (message (riece-mcat "Connecting to %s...failed: %S") server-name
+                   error))
         (signal (car error) (cdr error))))
       (if (equal server-name "")
-         (message "Connecting to IRC server...done")
-       (message "Connecting to %s...done" server-name))
+         (message (riece-mcat "Connecting to IRC server...done"))
+       (message (riece-mcat "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 (equal server-name "")
-         (message "Logging in to IRC server...")
-       (message "Logging in to %s..." server-name))
+         (message (riece-mcat "Logging in to IRC server..."))
+       (message (riece-mcat "Logging in to %s...") server-name))
       (if riece-reconnect-with-password        ;password incorrect or not set.
          (unwind-protect
              (setq password
                    (condition-case nil
                        (let (inhibit-quit)
                          (if (equal server-name "")
-                             (riece-read-passwd "Password: ")
-                           (riece-read-passwd (format "Password for %s: "
-                                                      server-name))))
+                             (riece-read-passwd (riece-mcat "Password: "))
+                           (riece-read-passwd
+                            (format (riece-mcat "Password for %s: ")
+                                    server-name))))
                      (quit
                       (if (equal server-name "")
-                          (message "Password: Quit")
-                        (message (format "Password for %s: Quit"
-                                         server-name)))
+                          (message (riece-mcat "Password: Quit"))
+                        (message (riece-mcat "Password for %s: Quit")
+                                 server-name))
                       'quit)))
            (setq riece-reconnect-with-password nil)))
       (if (eq password 'quit)
        (if password
            (riece-process-send-string process
                                       (format "PASS %s\r\n" password)))
+       (riece-process-send-string process (format "NICK %s\r\n" nickname))
+       (unless realname
+         (setq realname (riece-mcat "No information given")))
+       (if coding
+           (setq realname (encode-coding-string realname
+                                                (if (consp coding)
+                                                    (cdr coding)
+                                                  coding))))
        (riece-process-send-string process
                                   (format "USER %s * * :%s\r\n"
-                                          (if (and username
-                                                   (not (string-match
-                                                         "[\0\r\n @]"
-                                                         username)))
-                                              username
-                                            (user-real-login-name))
-                                          (or realname
-                                              username
-                                              "No information given")))
-       (riece-process-send-string process (format "NICK %s\r\n" nickname))
+                                          (or username
+                                              (user-real-login-name))
+                                          realname))
        (with-current-buffer (process-buffer process)
          (setq riece-last-nickname riece-real-nickname
                riece-nick-accepted 'sent
                           (if (rassq process riece-server-process-alist)
                               (delete-process process)))
                         process))
-  (riece-process-send-string process
-                            (if message
-                                (format "QUIT :%s\r\n" message)
-                              "QUIT\r\n")))
+  (let ((server-name (with-current-buffer (process-buffer process)
+                      riece-server-name)))
+    (if (equal server-name "")
+       (message (riece-mcat "Sending QUIT..."))
+      (message (riece-mcat "Sending QUIT to \"%s\"...") server-name))
+    (riece-process-send-string process
+                              (if message
+                                  (format "QUIT :%s\r\n" message)
+                                "QUIT\r\n"))
+    (if (equal server-name "")
+       (message (riece-mcat "Sending QUIT...done"))
+      (message (riece-mcat "Sending QUIT to \"%s\"...done") server-name))))
+
+(provide 'riece-irc)
 
-(provide 'riece-irc)
\ No newline at end of file
+;;; riece-irc.el ends here