From: yamaoka Date: Tue, 16 Dec 2003 09:56:30 +0000 (+0000) Subject: Synch to Gnus 200312160954. X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61cb2156a310318b1e82a5e66c121bd992d11762;p=elisp%2Fgnus.git- Synch to Gnus 200312160954. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a96e6c9..42ae134 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2003-12-16 Katsumi Yamaoka + + * nnheader.el (nnheader-find-etc-directory): Find the newest one. + 2003-12-16 Simon Josefsson * sha1-el.el (autoload): Don't use ignore-errors. diff --git a/lisp/nnheader.el b/lisp/nnheader.el index 07cbbe9..49f2ba5 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -1473,13 +1473,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 @@ -1491,10 +1493,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)