On Fri, Aug 6, 2010 at 4:12 PM, Carsten Dominik <carsten.domi...@gmail.com>wrote:
> > On Aug 6, 2010, at 10:30 AM, Bastien wrote: > > Rustom Mody <rustompm...@gmail.com> writes: >> >> Why is it that if org-agenda-files is a list the list should have >>> absolute file names whereas when it (points to) a single file >>> containing the names those names are allowed to be relative to >>> org-directory? >>> >> >> I guess this is a small historical contingency. We might indeed allow >> relative filenames when `org-agenda-files' is a list. >> > > I agree and would welcome a patch for this. > > Changing this behavior is going to be a significant one as far as the current users are concerned. I started working towards a patch for this and now I am thinking how not to break existing functionality. Or should we force everyone to be relative to org-directory? Here is the simple patch which straight away expands the file names with org-directory. * org.el: + org-expand-file-list () Expand the list of agenda files in "org-agenda-files" with "org-directory" as base directory. + org-agenda-files () Call org-expand-file-list() if "org-agenda-files" is a list. Thanks and Regards Noorul > - Carsten > > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode >
diff --git a/lisp/org.el b/lisp/org.el index 19b28a3..532da83 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -15379,7 +15379,7 @@ used by the agenda files. If ARCHIVE is `ifmode', do this only if (cond ((and (not unrestricted) (get 'org-agenda-files 'org-restrict))) ((stringp org-agenda-files) (org-read-agenda-file-list)) - ((listp org-agenda-files) org-agenda-files) + ((listp org-agenda-files) (org-expand-file-list)) (t (error "Invalid value of `org-agenda-files'"))))) (setq files (apply 'append (mapcar (lambda (f) @@ -15468,6 +15468,16 @@ un-expanded file names." e))) (org-split-string (buffer-string) "[ \t\r\n]*?[\r\n][ \t\r\n]*"))))) +(defun org-expand-file-list () + "Expand the list of agenda files in `org-agenda-files' with +`org-directory' as base directory." + (when (listp org-agenda-files) + (mapcar + (lambda (f) + (let ((e (expand-file-name + (substitute-in-file-name f) org-directory))) + e)) org-agenda-files))) + ;;;###autoload (defun org-cycle-agenda-files () "Cycle through the files in `org-agenda-files'.
_______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode