[-- Attachment #1.1: Type: text/plain, Size: 1441 bytes --]
On Fri, Aug 6, 2010 at 4:12 PM, Carsten Dominik
<carsten.dominik@gmail.com>wrote:
>
> On Aug 6, 2010, at 10:30 AM, Bastien wrote:
>
> Rustom Mody <rustompmody@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
>
[-- Attachment #1.2: Type: text/html, Size: 2631 bytes --]
[-- Attachment #2: org-agenda-files.txt --]
[-- Type: text/plain, Size: 1110 bytes --]
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'.
[-- Attachment #3: Type: text/plain, Size: 201 bytes --]
_______________________________________________
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