changeset 45923:fe953746c5e8

(tag-implicit-name-match-p): New function. (etags-recognize-tags-table): Use it for implicit tag names.
author Francesco Potortì <pot@gnu.org>
date Thu, 20 Jun 2002 11:27:01 +0000
parents 8ad2c225979d
children 06d327567aae
files lisp/progmodes/etags.el
diffstat 1 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/etags.el	Thu Jun 20 11:26:02 2002 +0000
+++ b/lisp/progmodes/etags.el	Thu Jun 20 11:27:01 2002 +0000
@@ -1196,6 +1196,7 @@
 	       (find-tag-tag-order . (tag-exact-file-name-match-p
                                       tag-file-name-match-p
 				      tag-exact-match-p
+				      tag-implicit-name-match-p
 				      tag-symbol-match-p
 				      tag-word-match-p
 				      tag-partial-file-name-match-p
@@ -1505,6 +1506,17 @@
       ;; We are not on the explicit tag name, but perhaps it follows.
       (looking-at (concat "[^\177\n]*\177" (regexp-quote tag) "\001"))))
 
+;; t if point is at a tag line that has an implicit name.
+;; point should be just after a string that matches TAG.
+(defun tag-implicit-name-match-p (tag)
+  ;; Look at the comment of the make_tag function in lib-src/etags.c for
+  ;; a textual description of the four rules.
+  (and (string-match "^[^ \t()=,;]+$" tag) ;rule #1
+       (looking-at "[ \t()=,;]?\177")	;rules #2 and #4
+       (save-excursion
+	 (backward-char (1+ (length tag)))
+	 (looking-at "[\n \t()=,;]"))))	;rule #3
+
 ;; t if point is at a tag line that matches TAG as a symbol.
 ;; point should be just after a string that matches TAG.
 (defun tag-symbol-match-p (tag)