From a8c026cb26b7e2ed27d52e1637c3e219e163ec94 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 29 Oct 2012 11:31:19 +0100 Subject: [PATCH] org-export: Explicit error when using invalid syntax for INCLUDE keywords * contrib/lisp/org-export.el (org-export-expand-include-keyword): Error out when file isn't specified within double quotes. * testing/lisp/test-org-export.el: Add test. --- contrib/lisp/org-export.el | 3 ++- testing/lisp/test-org-export.el | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/contrib/lisp/org-export.el b/contrib/lisp/org-export.el index 134f1d064..647518b27 100644 --- a/contrib/lisp/org-export.el +++ b/contrib/lisp/org-export.el @@ -2771,7 +2771,7 @@ working directory. It is used to properly resolve relative paths." (let ((case-fold-search t)) (goto-char (point-min)) - (while (re-search-forward "^[ \t]*#\\+INCLUDE: \\(.*\\)" nil t) + (while (re-search-forward "^[ \t]*#\\+INCLUDE: +\\(.*\\)[ \t]*$" nil t) (when (eq (org-element-type (save-match-data (org-element-at-point))) 'keyword) (beginning-of-line) @@ -2803,6 +2803,7 @@ paths." ;; Remove keyword. (delete-region (point) (progn (forward-line) (point))) (cond + ((not file) (error "Invalid syntax in INCLUDE keyword")) ((not (file-readable-p file)) (error "Cannot include file %s" file)) ;; Check if files has already been parsed. Look after ;; inclusion lines too, as different parts of the same file diff --git a/testing/lisp/test-org-export.el b/testing/lisp/test-org-export.el index 74a580db0..8b9f31928 100644 --- a/testing/lisp/test-org-export.el +++ b/testing/lisp/test-org-export.el @@ -386,6 +386,10 @@ text (ert-deftest test-org-export/expand-include () "Test file inclusion in an Org buffer." + ;; Error when file isn't specified. + (should-error + (org-test-with-temp-text "#+INCLUDE: dummy.org" + (org-export-expand-include-keyword))) ;; Full insertion with recursive inclusion. (org-test-with-temp-text (format "#+INCLUDE: \"%s/examples/include.org\"" org-test-dir) -- 2.11.4.GIT