Switch add-to-ordered-list to eql

* doc/lispref/lists.texi (List Variables): Update documentation.

* lisp/subr.el (add-to-ordered-list): Switch to eql (bug#45539).
This commit is contained in:
Lars Ingebrigtsen 2020-12-30 04:48:13 +01:00
parent dc308c80ee
commit b4fd857ead
3 changed files with 5 additions and 3 deletions

View file

@ -812,7 +812,7 @@ This function sets the variable @var{symbol} by inserting
@var{element} into the old value, which must be a list, at the
position specified by @var{order}. If @var{element} is already a
member of the list, its position in the list is adjusted according
to @var{order}. Membership is tested using @code{eq}.
to @var{order}. Membership is tested using @code{eql}.
This function returns the resulting list, whether updated or not.
The @var{order} is typically a number (integer or float), and the

View file

@ -1861,6 +1861,8 @@ directory instead of the default directory.
* Incompatible Lisp Changes in Emacs 28.1
** 'add-to-ordered-list' now uses 'eql' instead of 'eq'.
** 'set-process-buffer' now updates the process mark.
The mark will be set to point to the end of the new buffer.

View file

@ -1973,7 +1973,7 @@ can do the job."
(defun add-to-ordered-list (list-var element &optional order)
"Add ELEMENT to the value of LIST-VAR if it isn't there yet.
The test for presence of ELEMENT is done with `eq'.
The test for presence of ELEMENT is done with `eql'.
The resulting list is reordered so that the elements are in the
order given by each element's numeric list order. Elements
@ -1993,7 +1993,7 @@ The return value is the new value of LIST-VAR."
(let ((ordering (get list-var 'list-order)))
(unless ordering
(put list-var 'list-order
(setq ordering (make-hash-table :weakness 'key :test 'eq))))
(setq ordering (make-hash-table :weakness 'key))))
(when order
(puthash element (and (numberp order) order) ordering))
(unless (memq element (symbol-value list-var))