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)