diff options
author | Bastien Guerry <bzg@altern.org> | 2011-07-25 15:32:52 +0200 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2011-07-25 15:44:22 +0200 |
commit | bbb2ef510ae8fbf28296c8968b99a24408c7c3ce (patch) | |
tree | b4dd5f1b4157e34c2dc59e0927daf055d4bf0fee | |
parent | 642c6667666f1f86f8a461e7bbbc8a2e7510b4b9 (diff) | |
download | org-mode-bbb2ef510ae8fbf28296c8968b99a24408c7c3ce.tar.gz |
org-exp: Handle recursively included setup files correctly.
* org-exp.el (org-infile-export-plist): Handle recursively
included setup files. The value of the last included file
always takes precedence over previous values.
Thanks to Stefan Vollmar for signaling this bug.
-rw-r--r-- | lisp/org-exp.el | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lisp/org-exp.el b/lisp/org-exp.el index 3e7e54b..f5dba50 100644 --- a/lisp/org-exp.el +++ b/lisp/org-exp.el @@ -746,7 +746,7 @@ modified) list.") (case-fold-search t) p key val text options mathjax a pr style latex-header latex-class macros letbind - ext-setup-or-nil setup-contents (start 0)) + ext-setup-or-nil setup-file setup-dir setup-contents (start 0)) (while (or (and ext-setup-or-nil (string-match re ext-setup-or-nil start) (setq start (match-end 0))) @@ -793,11 +793,14 @@ modified) list.") ((string-equal key "MACRO") (push val macros)) ((equal key "SETUPFILE") - (setq setup-contents (org-file-contents - (expand-file-name - (org-remove-double-quotes - (org-trim val))) - 'noerror)) + (setq setup-file (org-remove-double-quotes (org-trim val)) + ;; take care of recursive inclusion of setupfiles + setup-file (if (or (file-name-absolute-p val) (not setup-dir)) + (expand-file-name setup-file) + (let ((default-directory setup-dir)) + (expand-file-name setup-file)))) + (setq setup-dir (file-name-directory setup-file)) + (setq setup-contents (org-file-contents setup-file 'noerror)) (if (not ext-setup-or-nil) (setq ext-setup-or-nil setup-contents start 0) (setq ext-setup-or-nil |