changeset 4666:674082454a0c

(tag-exact-match-p): Return true if TAG is the explicit tag name.
author Roland McGrath <roland@gnu.org>
date Mon, 06 Sep 1993 22:15:21 +0000
parents c791d8c3bdec
children dbe2da5db2f7
files lisp/progmodes/etags.el
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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.