riece-update-short-channel-indicator
riece-update-channel-list-indicator))
-(defvar riece-channel-list-changed nil)
-
(defun riece-update-user-list-buffer ()
(save-excursion
(set-buffer riece-user-list-buffer)
(setq users (cdr users))))))))
(defun riece-update-channel-list-buffer ()
- (if riece-channel-list-changed
- (save-excursion
- (set-buffer riece-channel-list-buffer)
- (let ((inhibit-read-only t)
- buffer-read-only
- (index 1)
- (channels riece-current-channels))
- (erase-buffer)
- (while channels
- (if (car channels)
- (let ((point (point)))
- (insert (format "%2d: " index)
- (riece-format-identity (car channels))
- "\n")))
- (setq index (1+ index)
- channels (cdr channels)))))))
+ (save-excursion
+ (set-buffer riece-channel-list-buffer)
+ (let ((inhibit-read-only t)
+ buffer-read-only
+ (index 1)
+ (channels riece-current-channels))
+ (erase-buffer)
+ (while channels
+ (if (car channels)
+ (let ((point (point)))
+ (insert (riece-format-channel-list-line
+ index (car channels)))))
+ (setq index (1+ index)
+ channels (cdr channels))))))
+
+(defun riece-format-channel-list-line (index channel)
+ (or (run-hook-with-args-until-success
+ 'riece-format-channel-list-line-functions index channel)
+ (concat (format "%2d:%c" index
+ (if (riece-identity-equal channel riece-current-channel)
+ ?*
+ ? ))
+ (riece-format-identity channel)
+ "\n")))
(defun riece-update-channel-indicator ()
(setq riece-channel-indicator
"None")))
(defun riece-update-channel-list-indicator ()
- (if riece-channel-list-changed
- (if (and riece-current-channels
- ;; There is at least one channel.
- (delq nil (copy-sequence riece-current-channels)))
- (let ((index 1))
- (setq riece-channel-list-indicator
- (mapconcat
- #'identity
- (delq nil
- (mapcar
- (lambda (channel)
- (prog1
- (if channel
- (format "%d:%s" index
- (riece-format-identity channel)))
- (setq index (1+ index))))
- riece-current-channels))
- ",")))
- (setq riece-channel-list-indicator "No channel"))))
+ (if (and riece-current-channels
+ ;; There is at least one channel.
+ (delq nil (copy-sequence riece-current-channels)))
+ (let ((index 1))
+ (setq riece-channel-list-indicator
+ (mapconcat
+ #'identity
+ (delq nil
+ (mapcar
+ (lambda (channel)
+ (prog1
+ (if channel
+ (format "%d:%s" index
+ (riece-format-identity channel)))
+ (setq index (1+ index))))
+ riece-current-channels))
+ ",")))
+ (setq riece-channel-list-indicator "No channel")))
(defun riece-update-status-indicators ()
(if riece-current-channel
(setq riece-channel-buffer (get-buffer (riece-channel-buffer-name
riece-current-channel))))
(run-hooks 'riece-update-buffer-functions)
- (setq riece-channel-list-changed nil)
(force-mode-line-update t))
(defun riece-channel-buffer-name (identity)
(if channel
(riece-parse-identity channel)))
riece-default-channel-binding)))
- (riece-channel-buffer-create identity)
- (setq riece-channel-list-changed t)))
+ (riece-channel-buffer-create identity)))
(defun riece-switch-to-nearest-channel (pointer)
(let ((start riece-current-channels)
(if pointer
(setcar pointer nil))
(if (riece-identity-equal identity riece-current-channel)
- (riece-switch-to-nearest-channel pointer))
- (setq riece-channel-list-changed t)))
+ (riece-switch-to-nearest-channel pointer))))
(defun riece-redisplay-buffers (&optional force)
(riece-update-buffers)