;;; Code:
-(eval-when-compile (require 'riece-message))
+(require 'riece-message)
+(require 'riece-commands)
(defvar riece-unread-channels nil)
(defun riece-unread-display-message-function (message)
(unless (or (riece-message-own-p message)
- (and (equal (riece-message-target message) riece-current-channel)
- (eq (window-buffer (selected-window))
- (get-buffer riece-command-buffer))))
+ (equal (riece-message-target message) riece-current-channel))
(setq riece-unread-channels
(delete (riece-message-target message) riece-unread-channels))
(add-to-list 'riece-unread-channels
buffer-read-only)
(goto-char (point-min))
(while (not (eobp))
- (if (looking-at "\\( ?[0-9]+:\\)\\([ !]\\)\\(.+\\)")
- (let ((channel (match-string 3)))
+ (if (looking-at "\\( ?[0-9]+:\\)\\(.\\)\\(.+\\)")
+ (let ((channel (save-match-data
+ (riece-parse-identity (match-string 3)))))
(replace-match
(concat "\\1"
(if (member channel riece-unread-channels)
"!"
- " ")
+ "\\2")
"\\3"))))
(forward-line))))))
'riece-unread-display-message-function)
(add-hook 'riece-channel-switch-hook
'riece-unread-channel-switch-hook)
- (add-hook 'riece-update-buffers-hook
- 'riece-unread-update-channel-list-buffer)
+ (add-hook 'riece-update-buffer-functions
+ 'riece-unread-update-channel-list-buffer t)
(define-key riece-command-mode-map
"\C-c\C-u" 'riece-unread-switch-to-channel)
(define-key riece-dialogue-mode-map