* riece-mini.el (riece-mini-backlog-size): Change default value.
[riece] / lisp / riece-mini.el
index c18609b..1b23e6a 100644 (file)
@@ -46,7 +46,7 @@
   "riece on 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)
 
 (defun riece-mini-display-message-function (message)
   "Show arrival messages to minibuffer."
-  (when (and riece-mini-enabled
-            (not (or (eq (window-buffer (selected-window))
-                         (get-buffer riece-command-buffer))
-                     (riece-message-own-p message)
-                     (active-minibuffer-window))))
-    (unless (riece-message-type message)
-      (setq riece-mini-last-channel (riece-message-target message)))
-    (let ((string (concat (format-time-string "%H:%M") " "
-                         (riece-format-message message t))))
-      (riece-mini-message-no-log "%s" string)
-      (when (>= (length riece-mini-backlog-history)
-               riece-mini-backlog-size)
-       (pop riece-mini-backlog-history))
-      (push string riece-mini-backlog-history))))
+  (let ((string (concat (format-time-string "%H:%M") " "
+                       (riece-format-message message t))))
+    (when (string-match "\\(.*\\)$" string)
+      (setq string (riece-match-string-no-properties 1 string)))
+    (while (>= (length riece-mini-backlog-history)
+              riece-mini-backlog-size)
+      (setq riece-mini-backlog-history
+           (cdr riece-mini-backlog-history)))
+    (setq riece-mini-backlog-history
+         (reverse (cons string (reverse riece-mini-backlog-history))))
+    (when (and riece-mini-enabled
+              (not (or (eq (window-buffer (selected-window))
+                           (get-buffer riece-command-buffer))
+                       (riece-message-own-p message)
+                       (active-minibuffer-window))))
+      (unless (riece-message-type message)
+       (setq riece-mini-last-channel (riece-message-target message)))
+      (riece-mini-message-no-log "%s" string))))
 
 (defun riece-mini-send-message (arg)
   "Send message using minibuffer.
@@ -113,12 +117,17 @@ If twice (C-u C-u), then ask the channel."
 (defun riece-mini-show-backlog ()
   "Send back logs to minibuffer."
   (interactive)
-  (let ((max-mini-window-height riece-mini-backlog-size)
-       (resize-mini-windows t))
-    (when riece-mini-backlog-history
-      (setq riece-mini-backlog-shown t)
-      (riece-mini-message-no-log
-       (mapconcat 'identity (reverse riece-mini-backlog-history) "")))))
+  (when riece-mini-backlog-history
+    (let ((height (1+ riece-mini-backlog-size)))
+      (mapc #'(lambda (string)
+               (setq height (+ height
+                               (/ (length string) (window-width)))))
+           riece-mini-backlog-history)
+      (let ((max-mini-window-height height)
+           (resize-mini-windows t))
+       (setq riece-mini-backlog-shown t)
+       (riece-mini-message-no-log
+        "%s" (mapconcat #'identity riece-mini-backlog-history "\n"))))))
 
 (defun riece-mini-pre-command ()
   (when riece-mini-backlog-shown