[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org ad62379984: org-export: Allow "string with spaces"
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org ad62379984: org-export: Allow "string with spaces" as #+OPTIONS: values |
Date: |
Wed, 16 Nov 2022 23:57:53 -0500 (EST) |
branch: externals/org
commit ad623799849177cc837e344d89bbfc654bf389dd
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>
org-export: Allow "string with spaces" as #+OPTIONS: values
* lisp/ox.el (org-export--parse-option-keyword): Allow `read'ing the
option value as far as needed. Do not restrict the value to the first
whitespace only. This way, one can use Elisp strings with all the
escaping options as values.
* testing/lisp/test-ox.el (test-org-export/parse-option-keyword): Add
test for option value with a space inside.
Reported-by: Pierre BalayƩ <pierrebalaye@gmail.com>
Link:
https://list.orgmode.org/orgmode/CANpQAF-n+4xhNvL8aaP8j2gJ70vbu80wmh9a4Oj0BxNHA5-yDA@mail.gmail.com/
---
lisp/ox.el | 17 +++++++++--------
testing/lisp/test-ox.el | 5 ++++-
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/lisp/ox.el b/lisp/ox.el
index 770f867402..c1a1ad83ed 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -1404,14 +1404,15 @@ Optional argument BACKEND is an export back-end, as
returned by,
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)
- (setq s (match-end 0))
- (let ((value (match-string 2 options)))
- (when value
- (push (cons (match-string 1 options)
- (read value))
- alist))))
+ (let (value alist)
+ (with-temp-buffer
+ (insert options)
+ (goto-char (point-min))
+ (while (re-search-forward "\\s-*\\(.+?\\):" nil t)
+ (when (looking-at-p "\\S-")
+ (push (cons (match-string 1)
+ (read (current-buffer))) ; moves point
+ alist))))
alist))
;; Priority is given to back-end specific options.
(all (append (org-export-get-all-options backend)
diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el
index 42867919b4..a78cc727c1 100644
--- a/testing/lisp/test-ox.el
+++ b/testing/lisp/test-ox.el
@@ -198,7 +198,10 @@ num:2 <:active")))
(should
(let ((options (org-export--parse-option-keyword "H: num:t")))
(and (not (plist-get options :headline-levels))
- (plist-get options :section-numbers)))))
+ (plist-get options :section-numbers))))
+ ;; Parse spaces inside brackets.
+ (let ((options (org-export--parse-option-keyword "html-postamble:\"test
space\"" 'html)))
+ (should (equal "test space" (plist-get options :html-postamble)))))
(ert-deftest test-org-export/get-inbuffer-options ()
"Test reading all standard export keywords."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org ad62379984: org-export: Allow "string with spaces" as #+OPTIONS: values,
ELPA Syncer <=