2003-05-31 Daiki Ueno <ueno@unixuser.org>
- * riece-commands.el (riece-command-next-channel): Circularly
- follow the channel list.
- (riece-command-previous-channel): Ditto.
-
* riece-url.el: Fix usage.
* riece-inlines.el (string-list-member-ignore-case): Remove docstring.
"Select the next channel."
(interactive)
(when (> (length riece-current-channels) 1)
- (let ((channels (copy-sequence riece-current-channels)))
- (setcdr (last channels) channels) ;make a circular link
- (riece-command-switch-to-channel
- (nth 1 (string-list-member-ignore-case
- riece-current-channel channels))))))
+ (let ((pointer (cdr (string-list-member-ignore-case
+ riece-current-channel
+ riece-current-channels))))
+ (while (and pointer
+ (null (car pointer)))
+ (setq pointer (cdr pointer)))
+ (if (car pointer)
+ (riece-command-switch-to-channel (car pointer))
+ (error "No such channel!")))))
(defun riece-command-previous-channel ()
"Select the previous channel."
(interactive)
(when (> (length riece-current-channels) 1)
- (let ((channels (nreverse (copy-sequence riece-current-channels))))
- (setcdr (last channels) channels) ;make a circular link
- (riece-command-switch-to-channel
- (nth 1 (string-list-member-ignore-case
- riece-current-channel channels))))))
+ (let ((pointer (string-list-member-ignore-case
+ riece-current-channel
+ riece-current-channels))
+ (start riece-current-channels)
+ channel)
+ (while (and start (not (eq start pointer)))
+ (if (car start)
+ (setq channel (car start)))
+ (setq start (cdr start)))
+ (if channel
+ (riece-command-switch-to-channel channel)
+ (error "No such channel!")))))
(defun riece-command-select-command-buffer ()
"Select the command buffer."