# HG changeset patch # User Roland McGrath # Date 747353721 0 # Node ID 674082454a0cc018deadc2443a2f382d897151f9 # Parent c791d8c3bdec665cf7d4a6b7248ead54053f2c98 (tag-exact-match-p): Return true if TAG is the explicit tag name. diff -r c791d8c3bdec -r 674082454a0c lisp/progmodes/etags.el --- a/lisp/progmodes/etags.el Mon Sep 06 13:01:02 1993 +0000 +++ b/lisp/progmodes/etags.el Mon Sep 06 22:15:21 1993 +0000 @@ -1070,10 +1070,14 @@ ;; t if point is at a tag line that matches TAG "exactly". ;; point should be just after a string that matches TAG. (defun tag-exact-match-p (tag) - (and (looking-at "\\Sw.*\177") (looking-at "\\S_.*\177") ;not a symbol char - (save-excursion - (backward-char (1+ (length tag))) - (and (looking-at "\\Sw") (looking-at "\\S_"))))) + ;; The match is really exact if there is an explicit tag name. + (or (looking-at (concat "[^\177]*\177" (regexp-quote tag) "\001")) + ;; We also call it "exact" if it is surrounded by symbol boundaries. + ;; This is needed because etags does not always generate explicit names. + (and (looking-at "\\Sw.*\177") (looking-at "\\S_.*\177") + (save-excursion + (backward-char (1+ (length tag))) + (and (looking-at "\\Sw") (looking-at "\\S_")))))) ;; t if point is at a tag line that matches TAG as a word. ;; point should be just after a string that matches TAG.