mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-21 06:55:35 +00:00
ox: Do not choke on incomplete OPTIONS items
* lisp/ox.el (org-export--parse-option-keyword): Prevent "End of file during parsing" error when an OPTIONS item is incomplete. * lisp/org-lint.el (org-lint-unknown-options-item): Check for incomplete options items. * testing/lisp/test-org-lint.el (test-org-lint/unknown-options-item): Add test.
This commit is contained in:
parent
f99f26306c
commit
7116914427
@ -671,7 +671,7 @@ Use \"export %s\" instead"
|
||||
(when (string= (org-element-property :key k) "OPTIONS")
|
||||
(let ((value (org-element-property :value k))
|
||||
(start 0))
|
||||
(while (string-match "\\(.+?\\):\\((.*?)\\|\\S-*\\)[ \t]*"
|
||||
(while (string-match "\\(.+?\\):\\((.*?)\\|\\S-+\\)?[ \t]*"
|
||||
value
|
||||
start)
|
||||
(setf start (match-end 0))
|
||||
@ -679,7 +679,11 @@ Use \"export %s\" instead"
|
||||
(unless (member item allowed)
|
||||
(push (list (org-element-property :post-affiliated k)
|
||||
(format "Unknown OPTIONS item \"%s\"" item))
|
||||
reports))))))))
|
||||
reports))
|
||||
(unless (match-string 2 value)
|
||||
(push (list (org-element-property :post-affiliated k)
|
||||
(format "Missing value for option item %S" item))
|
||||
reports))))))))
|
||||
reports))
|
||||
|
||||
(defun org-lint-invalid-macro-argument-and-template (ast)
|
||||
|
@ -1386,7 +1386,7 @@ e.g., `org-export-create-backend'. It specifies which back-end
|
||||
specific items to read, if any."
|
||||
(let ((line
|
||||
(let ((s 0) alist)
|
||||
(while (string-match "\\(.+?\\):\\((.*?)\\|\\S-*\\)[ \t]*" options s)
|
||||
(while (string-match "\\(.+?\\):\\((.*?)\\|\\S-+\\)[ \t]*" options s)
|
||||
(setq s (match-end 0))
|
||||
(push (cons (match-string 1 options)
|
||||
(read (match-string 2 options)))
|
||||
|
@ -313,6 +313,9 @@ This is not a node property
|
||||
"Test `org-lint-unknown-options-item' checker."
|
||||
(should
|
||||
(org-test-with-temp-text "#+options: foobarbaz:t"
|
||||
(org-lint '(unknown-options-item))))
|
||||
(should
|
||||
(org-test-with-temp-text "#+options: H:"
|
||||
(org-lint '(unknown-options-item)))))
|
||||
|
||||
(ert-deftest test-org-lint/invalid-macro-argument-and-template ()
|
||||
|
Loading…
Reference in New Issue
Block a user