Undo the last change.
authorueno <ueno>
Sat, 31 May 2003 01:30:47 +0000 (01:30 +0000)
committerueno <ueno>
Sat, 31 May 2003 01:30:47 +0000 (01:30 +0000)
lisp/ChangeLog
lisp/riece-commands.el

index 981dc49..4def359 100644 (file)
@@ -1,9 +1,5 @@
 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.
index 004490f..3661cfb 100644 (file)
   "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."