From c09ad0cabde922374c1a34350595a3141ab7f806 Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Fri, 24 Dec 2021 15:27:00 +0200 Subject: [PATCH] Fix the bug with duplicate entries in xref output * lisp/progmodes/etags.el (xref-backend-definitions): Make sure to save the changed intermediate value of the list (bug#52734). --- lisp/progmodes/etags.el | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index f53b09d9e8c..a63c3f33974 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -2084,14 +2084,15 @@ file name, add `tag-partial-file-name-match-p' to the list value.") (definitions (etags--xref-find-definitions symbol)) same-file-definitions) (when (and etags-xref-prefer-current-file file) - (cl-delete-if - (lambda (definition) - (when (equal file - (xref-location-group - (xref-item-location definition))) - (push definition same-file-definitions) - t)) - definitions) + (setq definitions + (cl-delete-if + (lambda (definition) + (when (equal file + (xref-location-group + (xref-item-location definition))) + (push definition same-file-definitions) + t)) + definitions)) (setq definitions (nconc (nreverse same-file-definitions) definitions))) definitions)) -- 2.39.2