From: Francesco Potortì Date: Thu, 20 Jun 2002 11:27:01 +0000 (+0000) Subject: (tag-implicit-name-match-p): New function. X-Git-Tag: ttn-vms-21-2-B4~14530 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d30ffe0ed2861927b9db9dfc61f62eec7cbd38c7;p=emacs.git (tag-implicit-name-match-p): New function. (etags-recognize-tags-table): Use it for implicit tag names. --- diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index a4aeaa2e3fe..ed9959a1c02 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1196,6 +1196,7 @@ where they were found." (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 @@ where they were found." ;; 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)