* lisp/icomplete.el (icomplete-forward-completions)
authorJambunathan K <kjambunathan@gmail.com>
Fri, 8 Feb 2013 07:53:55 +0000 (09:53 +0200)
committerJuri Linkov <juri@jurta.org>
Fri, 8 Feb 2013 07:53:55 +0000 (09:53 +0200)
(icomplete-backward-completions): Handle corner case.

Fixes: debbugs:13602

lisp/ChangeLog
lisp/icomplete.el

index 4211901..f2a8dee 100644 (file)
@@ -1,3 +1,8 @@
+2013-02-08  Jambunathan K  <kjambunathan@gmail.com>
+
+       * icomplete.el (icomplete-forward-completions)
+       (icomplete-backward-completions): Handle corner case (bug#13602).
+
 2013-02-07  Michael Albinus  <michael.albinus@gmx.de>
 
        * vc/vc-hooks.el (vc-find-file-hook): `buffer-file-truename' can
index 9407de4..8e4dd69 100644 (file)
@@ -167,8 +167,9 @@ Second entry becomes the first and can be selected with
   (interactive)
   (let* ((comps (completion-all-sorted-completions))
         (last (last comps)))
-    (setcdr last (cons (car comps) (cdr last)))
-    (completion--cache-all-sorted-completions (cdr comps))))
+    (when comps
+      (setcdr last (cons (car comps) (cdr last)))
+      (completion--cache-all-sorted-completions (cdr comps)))))
 
 (defun icomplete-backward-completions ()
   "Step backward completions by one entry.
@@ -178,7 +179,7 @@ Last entry becomes the first and can be selected with
   (let* ((comps (completion-all-sorted-completions))
         (last-but-one (last comps 2))
         (last (cdr last-but-one)))
-    (when last
+    (when (consp last)               ; At least two elements in comps
       (setcdr last-but-one (cdr last))
       (push (car last) comps)
       (completion--cache-all-sorted-completions comps))))