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.
This commit is contained in:
Nicolas Goaziou 2012-10-29 11:31:19 +01:00
parent 99110c60a6
commit a8c026cb26
2 changed files with 6 additions and 1 deletions

View File

@ -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

View File

@ -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)