Suppress compiler warnings.
[elisp/riece.git] / lisp / riece-display.el
index be7952f..5d20012 100644 (file)
@@ -29,8 +29,7 @@
 (require 'riece-misc)
 (require 'riece-layout)
 (require 'riece-signal)
-
-(autoload 'derived-mode-class "derived")
+(require 'riece-mcat)
 
 (defvar riece-channel-buffer-format "*Channel:%s*"
   "Format of channel message buffer.")
@@ -280,7 +279,7 @@ Local to the buffer in `riece-buffer-list'.")
   (setq riece-channel-indicator
        (if riece-current-channel
            (riece-format-identity riece-current-channel)
-         "None")))
+         (riece-mcat "None"))))
 
 (defun riece-update-long-channel-indicator ()
   (setq riece-long-channel-indicator
@@ -292,7 +291,7 @@ Local to the buffer in `riece-buffer-list'.")
                  riece-current-channel
                  (riece-format-identity riece-current-channel)))
              (riece-format-identity riece-current-channel))
-         "None")))
+         (riece-mcat "None"))))
 
 (defun riece-format-identity-for-channel-list-indicator (index identity)
   (or (run-hook-with-args-until-success
@@ -330,7 +329,7 @@ Local to the buffer in `riece-buffer-list'.")
          (setq pointer (cdr (cdr pointer))))
        (setq riece-channel-list-indicator
              (riece-normalize-modeline-string riece-channel-list-indicator)))
-    (setq riece-channel-list-indicator "No channel")))
+    (setq riece-channel-list-indicator (riece-mcat "No channel"))))
 
 (defun riece-update-status-indicators ()
   (let ((server-name (riece-current-server-name)))
@@ -347,15 +346,17 @@ Local to the buffer in `riece-buffer-list'.")
                           (riece-user-get-operator riece-real-nickname))
                      "O"
                    "-")
-                 riece-user-indicator
-                 (riece-format-identity
-                  (riece-make-identity riece-real-nickname riece-server-name)
-                  t))))))
+                 )
+           (if riece-real-nickname
+               (setq riece-user-indicator
+                     (riece-format-identity
+                      (riece-make-identity riece-real-nickname
+                                           riece-server-name)
+                      t)))))))
   (walk-windows
    (lambda (window)
      (with-current-buffer (window-buffer window)
-       (if (eq (derived-mode-class major-mode)
-              'riece-dialogue-mode)
+       (if (riece-derived-mode-p 'riece-dialogue-mode)
           (setq riece-freeze-indicator
                 (if (eq riece-freeze 'own)
                     "f"
@@ -421,10 +422,9 @@ Local to the buffer in `riece-buffer-list'.")
       (riece-channel-mode)
       (let (buffer-read-only)
        (riece-insert-info (current-buffer)
-                          (concat "Created on "
+                          (format (riece-mcat "Created on %s\n")
                                   (funcall riece-format-time-function
-                                           (current-time))
-                                  "\n"))
+                                           (current-time))))
        (run-hook-with-args 'riece-channel-buffer-create-functions identity)))
     (current-buffer)))
 
@@ -483,10 +483,12 @@ Local to the buffer in `riece-buffer-list'.")
 
 (defun riece-part-channel (identity)
   (let ((pointer (riece-identity-member identity riece-current-channels)))
-    (if pointer
-       (setcar pointer nil))
+    (unless pointer
+      (error "No such channel!"))
+    (setcar pointer nil)
     (if (riece-identity-equal identity riece-current-channel)
-       (riece-switch-to-nearest-channel pointer))
+       (riece-switch-to-nearest-channel pointer)
+      (riece-emit-signal 'channel-list-changed))
     (funcall riece-buffer-dispose-function (riece-channel-buffer identity))))
 
 (defun riece-redisplay-buffers (&optional force)