;; point should be just after a string that matches TAG.
(defun tag-exact-match-p (tag)
;; The match is really exact if there is an explicit tag name.
- (or (looking-at (concat "[^\177\n]*\177" (regexp-quote tag) "\001"))
+ (or (and (eq (char-after (point)) ?\001)
+ (eq (char-after (- (point) (length tag)) ?\177)))
+ ;; We are not on the explicit tag name, but perhaps it follows.
+ (looking-at (concat "[^\177\n]*\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")