From 669e01b5f630b74f417f12ebebed76c9553dae9b Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 23 May 2015 12:05:21 -0400 Subject: [PATCH] tags-completion-at-point-function: Don't trust the find-tag function * lisp/progmodes/etags.el (tags-completion-at-point-function): Don't trust the find-tag function. --- lisp/progmodes/etags.el | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 7a87377503d..60ea456d57c 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -805,15 +805,16 @@ If no tags table is loaded, do nothing and return nil." case-fold-search)) (pattern (funcall (or find-tag-default-function (get major-mode 'find-tag-default-function) - 'find-tag-default))) + #'find-tag-default))) beg) (when pattern (save-excursion (forward-char (1- (length pattern))) - (search-backward pattern) - (setq beg (point)) - (forward-char (length pattern)) - (list beg (point) (tags-lazy-completion-table) :exclusive 'no)))))) + ;; The find-tag function might be overly optimistic. + (when (search-backward pattern nil t) + (setq beg (point)) + (forward-char (length pattern)) + (list beg (point) (tags-lazy-completion-table) :exclusive 'no))))))) (defun find-tag-tag (string) "Read a tag name, with defaulting and completion." -- 2.39.2