From 2d53f8783ff8e48d91809741adab6a2402587fad Mon Sep 17 00:00:00 2001 From: Eli Zaretskii <eliz@gnu.org> Date: Sat, 16 Sep 2017 13:02:31 +0300 Subject: [PATCH] Fix order of sorted overlays returned by 'overlays-at' * src/buffer.c (Foverlays_at): If SORTED is non-nil, reverse the list of results, to have their order as per the documentation. (Bug#28390) * etc/NEWS: Mention the change in the behavior of overlays-at. --- etc/NEWS | 8 ++++++++ src/buffer.c | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index ce828043bb7..a042ce92aff 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1336,6 +1336,14 @@ Affected functions include add-name-to-file, copy-directory, copy-file, format-write-file, gnus-copy-file, make-symbolic-link, rename-file, thumbs-rename-images, and write-file. +--- +** The list returned by 'overlays-at' is now in decreasing priority order. +The documentation of this function always said the order should be +that of decreasing priority, if the 2nd argument of the function is +non-nil, but the code returned the list in the increasing order of +priority instead. Now the code does what the documentation says it +should do. + * Lisp Changes in Emacs 26.1 diff --git a/src/buffer.c b/src/buffer.c index bc28ac7d1aa..76670b89545 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -4179,6 +4179,12 @@ If SORTED is non-nil, then sort them by decreasing priority. */) /* Make a list of them all. */ result = Flist (noverlays, overlay_vec); + /* The doc string says the list should be in decreasing order of + priority, so we reverse the list, because sort_overlays sorts in + the increasing order of priority. */ + if (!NILP (sorted)) + result = Fnreverse (result); + xfree (overlay_vec); return result; } -- 2.39.5