(riece-mini-send-message): Use riece-format-identity.
[riece] / lisp / riece-mini.el
index d540d17..f9f7587 100644 (file)
@@ -1,4 +1,4 @@
-;;; riece-mini.el --- "riece on minibuffer" add-on
+;;; riece-mini.el --- use Riece only on the minibuffer
 ;; Copyright (C) 2003 OHASHI Akira
 
 ;; Author: OHASHI Akira <bg66@koka-in.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.
 
 ;;; Commentary:
 
+;; NOTE: This is an add-on module for Riece.
+
 ;; This add-on shows arrival messages to minibuffer. And you can send
 ;; message using minibuffer.
 ;;
 ;;; Code:
 
 (require 'riece-message)
+(require 'riece-biff)
 
 (defgroup riece-mini nil
-  "riece on minibuffer"
+  "Use Riece only on the minibuffer."
   :group 'riece)
 
-(defcustom riece-mini-backlog-size 10
+(defcustom riece-mini-backlog-size 5
   "*Line numbers for logging back log."
   :type 'integer
   :group 'riece-mini)
 (defvar riece-mini-backlog-history nil)
 (defvar riece-mini-backlog-shown nil)
 
-(defvar riece-mini-enabled nil)
-
 (defconst riece-mini-description
-  "Send arrival messages to minibuffer")
+  "Use Riece only on the minibuffer.")
 
-(defmacro riece-mini-message-no-log (string &rest args)
+(defun riece-mini-message-no-log (string &rest args)
   "Like `message', except that message logging is disabled."
   (if (featurep 'xemacs)
       (if args
-         `(display-message 'no-log (format ,string ,@args))
-       `(display-message 'no-log ,string))
-    `(let (message-log-max)
-       (message ,string ,@args))))
+         (display-message 'no-log (apply #'format string args))
+       (display-message 'no-log string))
+    (let (message-log-max)
+      (apply #'message string args))))
 
 (defun riece-mini-display-message-function (message)
   "Show arrival messages to minibuffer."
@@ -81,7 +82,7 @@
            (cdr riece-mini-backlog-history)))
     (setq riece-mini-backlog-history
          (reverse (cons string (reverse riece-mini-backlog-history))))
-    (when (and riece-mini-enabled
+    (when (and (get 'riece-mini 'riece-addon-enabled)
               (not (or (eq (window-buffer (selected-window))
                            (get-buffer riece-command-buffer))
                        (riece-message-own-p message)
@@ -103,7 +104,8 @@ If twice (C-u C-u), then ask the channel."
             "Channel/User: " riece-current-channels nil t))
           (arg (or riece-mini-last-channel riece-current-channel))
           (t riece-current-channel)))
-        (message (read-string (format "Message to %s: " target))))
+        (message (read-string (format "Message to %s: "
+                                      (riece-format-identity target)))))
     (unless (equal message "")
       (riece-switch-to-channel target)
       (riece-send-string
@@ -126,6 +128,9 @@ If twice (C-u C-u), then ask the channel."
       (let ((max-mini-window-height height)
            (resize-mini-windows t))
        (setq riece-mini-backlog-shown t)
+       (when (and (memq 'riece-biff riece-addons)
+                  (get 'riece-biff 'riece-addon-enabled))
+         (riece-biff-clear))
        (riece-mini-message-no-log
         "%s" (mapconcat #'identity riece-mini-backlog-history "\n"))))))
 
@@ -135,16 +140,19 @@ If twice (C-u C-u), then ask the channel."
       (setq riece-mini-backlog-shown nil)
       (riece-mini-message-no-log ""))))
 
+(defun riece-mini-requires ()
+  (if (memq 'riece-biff riece-addons)
+      '(riece-biff)))
+
 (defun riece-mini-insinuate ()
   (add-hook 'riece-after-display-message-functions
            'riece-mini-display-message-function)
   (add-hook 'pre-command-hook 'riece-mini-pre-command))
 
-(defun riece-mini-enable ()
-  (setq riece-mini-enabled t))
-
-(defun riece-mini-disable ()
-  (setq riece-mini-enabled nil))
+(defun riece-mini-uninstall ()
+  (remove-hook 'riece-after-display-message-functions
+              'riece-mini-display-message-function)
+  (remove-hook 'pre-command-hook 'riece-mini-pre-command))
 
 (provide 'riece-mini)