]> git.eshelyaron.com Git - emacs.git/commitdiff
(tag-exact-match-p): Return true if TAG is the explicit tag name.
authorRoland McGrath <roland@gnu.org>
Mon, 6 Sep 1993 22:15:21 +0000 (22:15 +0000)
committerRoland McGrath <roland@gnu.org>
Mon, 6 Sep 1993 22:15:21 +0000 (22:15 +0000)
lisp/progmodes/etags.el

index 452d9adfd0d0d0d23de0ee20bdc329c57e4d8ea5..93fa039c505704c1de833dddb3a8199bc4a64996 100644 (file)
@@ -1070,10 +1070,14 @@ See documentation of variable `tags-file-name'."
 ;; 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.