]> git.eshelyaron.com Git - emacs.git/commitdiff
(flymake-buildfile-dirs): Remove.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 20 Jul 2007 04:09:08 +0000 (04:09 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 20 Jul 2007 04:09:08 +0000 (04:09 +0000)
(flymake-find-buildfile): Use locate-dominating-file.

lisp/ChangeLog
lisp/progmodes/flymake.el

index 7c9bb50d3d02b7a726b0c216f698ad4ad522e7f1..4f297834a950b5159d1cd0a48d578f8ffcfeb5f7 100644 (file)
@@ -1,5 +1,8 @@
 2007-07-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * progmodes/flymake.el (flymake-buildfile-dirs): Remove.
+       (flymake-find-buildfile): Use locate-dominating-file.
+
        * vc.el (vc-delistify): Use mapconcat.
        (vc-do-command): Minor simplification.
        (vc-expand-dirs): Use push.
index 4903d7d26ec3f911c4510f0a48770a1f3e8a3ffd..7e353247b040c6a74a7ad16744f32e000c9c7432 100644 (file)
@@ -325,11 +325,6 @@ Return nil if we cannot, non-nil if we can."
   (or (nth 2 (flymake-get-file-name-mode-and-masks file-name))
       'flymake-get-real-file-name))
 
-(defcustom flymake-buildfile-dirs '("." ".." "../.." "../../.." "../../../.." "../../../../.." "../../../../../.." "../../../../../../.." "../../../../../../../.." "../../../../../../../../.." "../../../../../../../../../.." "../../../../../../../../../../..")
-  "Dirs to look for buildfile."
-  :group 'flymake
-  :type '(repeat (string)))
-
 (defvar flymake-find-buildfile-cache (flymake-makehash 'equal))
 
 (defun flymake-get-buildfile-from-cache (dir-name)
@@ -346,19 +341,15 @@ Return nil if we cannot, non-nil if we can."
 Buildfile includes Makefile, build.xml etc.
 Return its file name if found, or nil if not found."
   (or (flymake-get-buildfile-from-cache source-dir-name)
-      (let* ((dirs flymake-buildfile-dirs)
-             (buildfile-dir          nil)
-             (found                  nil))
-        (while (and (not found) dirs)
-          (setq buildfile-dir (concat source-dir-name (car dirs)))
-          (when (file-exists-p (expand-file-name buildfile-name buildfile-dir))
-            (setq found t))
-          (setq dirs (cdr dirs)))
-        (if found
+      (let* ((file (locate-dominating-file
+                    source-dir-name
+                    (concat "\\`" (regexp-quote buildfile-name) "\\'"))))
+        (if file
             (progn
-              (flymake-log 3 "found buildfile at %s/%s" buildfile-dir buildfile-name)
-              (flymake-add-buildfile-to-cache source-dir-name buildfile-dir)
-              buildfile-dir)
+              (flymake-log 3 "found buildfile at %s" file)
+              (setq file (file-name-directory file))
+              (flymake-add-buildfile-to-cache source-dir-name file)
+              file)
           (progn
             (flymake-log 3 "buildfile for %s not found" source-dir-name)
             nil)))))