# HG changeset patch # User Roland McGrath # Date 760946077 0 # Node ID c9b9301060738688948deab41bb956c4cd9e0ca4 # Parent ffe51baf272871ecb287372e9754e555c942b298 (etags-goto-tag-location): First go directly to STARTPOS and see if PAT is right there. diff -r ffe51baf2728 -r c9b930106073 lisp/progmodes/etags.el --- a/lisp/progmodes/etags.el Fri Feb 11 02:52:17 1994 +0000 +++ b/lisp/progmodes/etags.el Fri Feb 11 05:54:37 1994 +0000 @@ -959,6 +959,11 @@ (forward-line 1) (cons tag-text startpos))) +;; TAG-INFO is a cons (TEXT . POSITION) where TEXT is the initial part of a +;; line containing the tag and POSITION is the character position of TEXT +;; within the file (starting from 1). If the tag isn't exactly at the +;; given position then look around that position using a search window +;; which expands until it hits the start of file. (defun etags-goto-tag-location (tag-info) (let ((startpos (cdr tag-info)) ;; This constant is 1/2 the initial search window. @@ -972,6 +977,9 @@ (regexp-quote (car tag-info))))) (or startpos (setq startpos (point-min))) + ;; First see if the tag is right at the specified location. + (goto-char startpos) + (setq found (looking-at pat)) (while (and (not found) (progn (goto-char (- startpos offset))