From bbb2ef510ae8fbf28296c8968b99a24408c7c3ce Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Mon, 25 Jul 2011 15:32:52 +0200 Subject: [PATCH] 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. --- 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 -- 1.7.2.5