Commit 4c55786d authored by Shigeru Fukaya's avatar Shigeru Fukaya Committed by Paul Eggert

Fix infinite loop in delete-consecutive-dups

* lisp/subr.el (delete-consecutive-dups): Work even if the last
element is nil (Bug#20588).  Avoid rescan of a circular list in
deletion of last element.
parent fac84926
......@@ -440,16 +440,16 @@ one is kept."
First and last elements are considered consecutive if CIRCULAR is
non-nil."
(let ((tail list) last)
(while (consp tail)
(while (cdr tail)
(if (equal (car tail) (cadr tail))
(setcdr tail (cddr tail))
(setq last (car tail)
(setq last tail
tail (cdr tail))))
(if (and circular
(cdr list)
(equal last (car list)))
(nbutlast list)
list)))
last
(equal (car tail) (car list)))
(setcdr last nil)))
list)
(defun number-sequence (from &optional to inc)
"Return a sequence of numbers from FROM to TO (both inclusive) as a list.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment