summaryrefslogtreecommitdiff
path: root/lisp/progmodes/xref.el
diff options
context:
space:
mode:
authorDmitry Gutov <dgutov@yandex.ru>2020-08-27 00:54:28 +0300
committerDmitry Gutov <dgutov@yandex.ru>2020-08-27 00:56:16 +0300
commitc601211e0d2f5174b5e748115a785d583235fe6e (patch)
tree5ca94a76e59da01c9053c79f553520ed601506fe /lisp/progmodes/xref.el
parent7f6dba00edcccd6510185108a5c4bbb010393230 (diff)
downloademacs-c601211e0d2f5174b5e748115a785d583235fe6e.tar.gz
emacs-c601211e0d2f5174b5e748115a785d583235fe6e.tar.bz2
emacs-c601211e0d2f5174b5e748115a785d583235fe6e.zip
Unbreak dired-do-find-regexp in Emacs 26
* lisp/progmodes/xref.el (xref--show-xrefs): Support the old convention (bug#42967).
Diffstat (limited to 'lisp/progmodes/xref.el')
-rw-r--r--lisp/progmodes/xref.el10
1 files changed, 10 insertions, 0 deletions
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 4da7b4ef301..264c750f019 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -963,6 +963,16 @@ Accepts the same arguments as `xref-show-xrefs-function'."
(defun xref--show-xrefs (fetcher display-action)
(xref--push-markers)
+ (unless (functionp fetcher)
+ ;; Old convention.
+ (let ((xrefs fetcher))
+ (setq fetcher
+ (lambda ()
+ (if (eq xrefs 'called-already)
+ (user-error "Refresh is not supported")
+ (prog1
+ xrefs
+ (setq xrefs 'called-already)))))))
(funcall xref-show-xrefs-function fetcher
`((window . ,(selected-window))
(display-action . ,display-action))))