Mercurial > emacs
diff lisp/progmodes/etags.el @ 449:4a1a5ad2d9d0
*** empty log message ***
author | Eric S. Raymond <esr@snark.thyrsus.com> |
---|---|
date | Sun, 08 Dec 1991 09:58:46 +0000 |
parents | 066d9d0dd901 |
children | 0bac8c701777 |
line wrap: on
line diff
--- a/lisp/progmodes/etags.el Sun Dec 08 07:04:21 1991 +0000 +++ b/lisp/progmodes/etags.el Sun Dec 08 09:58:46 1991 +0000 @@ -151,46 +151,11 @@ (interactive (if current-prefix-arg '(nil t) (find-tag-tag "Find tag: "))) - (let (buffer file linebeg startpos) - (save-excursion - (visit-tags-table-buffer) - (if (not next) - (goto-char (point-min)) - (setq tagname last-tag)) - (setq last-tag tagname) - (while (progn - (if (not (search-forward tagname nil t)) - (error "No %sentries containing %s" - (if next "more " "") tagname)) - (not (looking-at "[^\n\177]*\177")))) - (search-forward "\177") - (setq file (expand-file-name (file-of-tag) - (file-name-directory tags-file-name))) - (setq linebeg - (buffer-substring (1- (point)) - (save-excursion (beginning-of-line) (point)))) - (search-forward ",") - (setq startpos (read (current-buffer)))) + (let ((tagbuf (find-tag-noselect tagname nil next))) (if other-window - (find-file-other-window file) - (find-file file)) - (widen) - (push-mark) - (let ((offset 1000) - found - (pat (concat "^" (regexp-quote linebeg)))) - (or startpos (setq startpos (point-min))) - (while (and (not found) - (progn - (goto-char (- startpos offset)) - (not (bobp)))) - (setq found - (re-search-forward pat (+ startpos offset) t)) - (setq offset (* 3 offset))) - (or found - (re-search-forward pat nil t) - (error "%s not found in %s" pat file))) - (beginning-of-line)) + (switch-to-buffer-other-window tagbuf) + (switch-to-buffer tagbuf)) + ) (setq tags-loop-form '(find-tag nil t)) ;; Return t in case used as the tags-loop-form. t)