(nnheader-find-etc-directory): Find the newest one.
authorKatsumi Yamaoka <yamaoka@jpl.org>
Tue, 16 Dec 2003 09:54:15 +0000 (09:54 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Tue, 16 Dec 2003 09:54:15 +0000 (09:54 +0000)
lisp/ChangeLog
lisp/nnheader.el

index a96e6c9..42ae134 100644 (file)
@@ -1,3 +1,7 @@
+2003-12-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * nnheader.el (nnheader-find-etc-directory): Find the newest one.
+
 2003-12-16  Simon Josefsson  <jas@extundo.com>
 
        * sha1-el.el (autoload): Don't use ignore-errors.
index b475905..01b573c 100644 (file)
@@ -869,13 +869,15 @@ without formatting."
   "Return the file size of FILE or 0."
   (or (nth 7 (file-attributes file)) 0))
 
-(defun nnheader-find-etc-directory (package &optional file)
+(defun nnheader-find-etc-directory (package &optional file first)
   "Go through `load-path' and find the \"../etc/PACKAGE\" directory.
 This function will look in the parent directory of each `load-path'
 entry, and look for the \"etc\" directory there.
-If FILE, find the \".../etc/PACKAGE\" file instead."
+If FILE, find the \".../etc/PACKAGE\" file instead.
+If FIRST is non-nil, return the directory or the file found at the
+first.  Otherwise, find the newest one, though it may take a time."
   (let ((path load-path)
-       dir result)
+       dir results)
     ;; We try to find the dir by looking at the load path,
     ;; stripping away the last component and adding "etc/".
     (while path
@@ -887,10 +889,14 @@ If FILE, find the \".../etc/PACKAGE\" file instead."
                           "etc/" package
                           (if file "" "/"))))
               (or file (file-directory-p dir)))
-         (setq result dir
-               path nil)
+         (progn
+           (or (member dir results)
+               (push dir results))
+           (setq path (if first nil (cdr path))))
        (setq path (cdr path))))
-    result))
+    (if (or first (not (cdr results)))
+       (car results)
+      (car (sort results 'file-newer-than-file-p)))))
 
 (eval-when-compile
   (defvar ange-ftp-path-format)