]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix up previous visit-tags-table change
authorHong Xu <hong@topbug.net>
Wed, 9 Oct 2019 05:03:33 +0000 (07:03 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Wed, 9 Oct 2019 05:03:33 +0000 (07:03 +0200)
* lisp/progmodes/etags.el (visit-tags-table): Reimplement
`tags--find-default-tags-dir-recursively' using the much simpler
`locate-dominating-file'. Following up bug#37518.

lisp/progmodes/etags.el

index 906ab37c6b9f9d178a0e283d0451db2a8f15e822..6784894ba87e033fc788ba71b6e4e4c81776e718 100644 (file)
@@ -274,19 +274,6 @@ buffer-local and set them to nil."
   (setq buffer-undo-list t)
   (initialize-new-tags-table))
 
-(defun tags--find-default-tags-dir-recursively (current-dir)
-  "Find the directory in which the default TAGS file lives.
-It is the first directory that contains a file named TAGS
-encountered when recursively searching upward from CURRENT-DIR."
-  (let ((tag-filename (expand-file-name "TAGS" current-dir)))
-    (if (file-exists-p tag-filename)
-        current-dir
-      (let ((parent-dir
-             (file-name-directory (directory-file-name current-dir))))
-        (if (string= parent-dir current-dir)  ;; root dir is reached
-            nil
-          (tags--find-default-tags-dir-recursively parent-dir))))))
-
 ;;;###autoload
 (defun visit-tags-table (file &optional local)
   "Tell tags commands to use tags table file FILE.
@@ -301,7 +288,7 @@ in is given a local value of this variable which is the name of the tags
 file the tag was in."
   (interactive
    (let ((default-tag-dir
-           (or (tags--find-default-tags-dir-recursively default-directory)
+           (or (locate-dominating-file default-directory "TAGS")
                default-directory)))
      (list (read-file-name
             "Visit tags table (default TAGS): "