mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-28 07:45:00 +00:00
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.
This commit is contained in:
parent
fac8492664
commit
4c55786d9b
12
lisp/subr.el
12
lisp/subr.el
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user