# HG changeset patch # User Stefan Monnier # Date 971033130 0 # Node ID 035ce2227d76a7d68c47dbdcbcdf3d11a45ed9f7 # Parent bb71607dc3db9308a552386aea261e465cfa0b18 Docstring fixes. (initialize-new-tags-table): Use run-hook-with-args-until-success. (find-tag): Use pop-to-buffer if switch-to-buffer failed. diff -r bb71607dc3db -r 035ce2227d76 lisp/progmodes/etags.el --- a/lisp/progmodes/etags.el Sun Oct 08 19:12:52 2000 +0000 +++ b/lisp/progmodes/etags.el Sun Oct 08 19:25:30 2000 +0000 @@ -22,6 +22,8 @@ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. +;;; Commentary: + ;;; Code: (require 'ring) @@ -81,7 +83,7 @@ "List of tags tables to search, computed from `tags-table-list'. This includes tables implicitly included by other tables. The list is not always complete: the included tables of a table are not known until that -table is read into core. An element that is `t' is a placeholder +table is read into core. An element that is t is a placeholder indicating that the preceding element is a table that has not been read into core and might contain included tables to search. See `tags-table-check-computed-list'.") @@ -144,7 +146,7 @@ TO-SEARCH). For each triple, `tags-apropos' processes TO-SEARCH and lists tags from it. TO-SEARCH should be an alist, obarray, or symbol. If it is a symbol, the symbol's value is used. -TITLE. a string, is a title used to label the additional list of tags. +TITLE, a string, is a title used to label the additional list of tags. FUNCTION is a function to call when a symbol is selected in the *Tags List* buffer. It will be called with one argument SYMBOL which is the symbol being selected. @@ -190,7 +192,7 @@ (defvar tags-table-format-hooks '(etags-recognize-tags-table tags-recognize-empty-tags-table) - "List of functions to be called in a tags table buffer to identify the type of tags table. + "Hook to be called in a tags table buffer to identify the type of tags table. The functions are called in order, with no arguments, until one returns non-nil. The function should make buffer-local bindings of the format-parsing tags function variables if successful.") @@ -200,7 +202,7 @@ (defvar tags-table-files-function nil "Function to do the work of `tags-table-files' (which see).") (defvar tags-completion-table-function nil - "Function to build the tags-completion-table.") + "Function to build the `tags-completion-table'.") (defvar snarf-tag-function nil "Function to get info about a matched tag for `goto-tag-location-function'.") (defvar goto-tag-location-function nil @@ -240,11 +242,7 @@ ;; are global. ;; Value is t if we have found a valid tags table buffer. - (let ((hooks tags-table-format-hooks)) - (while (and hooks - (not (funcall (car hooks)))) - (setq hooks (cdr hooks))) - hooks)) + (run-hook-with-args-until-success 'tags-table-format-hooks)) ;;;###autoload (defun visit-tags-table (file &optional local) @@ -886,7 +884,10 @@ See documentation of variable `tags-file-name'." (interactive (find-tag-interactive "Find tag: ")) - (switch-to-buffer (find-tag-noselect tagname next-p regexp-p))) + (let ((buf (find-tag-noselect tagname next-p regexp-p))) + (condition-case nil + (switch-to-buffer buf) + (error (pop-to-buffer buf))))) ;;;###autoload (define-key esc-map "." 'find-tag) ;;;###autoload @@ -1629,7 +1630,7 @@ ;;;###autoload (defun tags-query-replace (from to &optional delimited file-list-form start end) - "Query-replace-regexp FROM with TO through all files listed in tags table. + "`Query-replace-regexp' FROM with TO through all files listed in tags table. Third arg DELIMITED (prefix arg) means replace only word-delimited matches. If you exit (\\[keyboard-quit] or ESC), you can resume the query-replace with the command \\[tags-loop-continue].