|
@@ -3247,15 +3247,18 @@ a plist with `:key', `:args', `:begin', `:end', `:value' and
|
|
|
|
|
|
Assume point is at the macro."
|
|
|
(save-excursion
|
|
|
- (when (looking-at "{{{\\([a-zA-Z][-a-zA-Z0-9_]*\\)\\(([ \t\n]*\\([^\000]*?\\))\\)?}}}")
|
|
|
+ (when (looking-at "{{{\\([a-zA-Z][-a-zA-Z0-9_]*\\)\\((\\([^\000]*?\\))\\)?}}}")
|
|
|
(let ((begin (point))
|
|
|
(key (downcase (match-string-no-properties 1)))
|
|
|
(value (match-string-no-properties 0))
|
|
|
(post-blank (progn (goto-char (match-end 0))
|
|
|
(skip-chars-forward " \t")))
|
|
|
(end (point))
|
|
|
- (args (let ((args (match-string-no-properties 3)))
|
|
|
- (and args (org-macro-extract-arguments args)))))
|
|
|
+ (args (pcase (match-string-no-properties 3)
|
|
|
+ (`nil nil)
|
|
|
+ (a (org-macro-extract-arguments
|
|
|
+ (replace-regexp-in-string
|
|
|
+ "[ \t\r\n]+" " " (org-trim a)))))))
|
|
|
(list 'macro
|
|
|
(list :key key
|
|
|
:value value
|
|
@@ -3266,7 +3269,11 @@ Assume point is at the macro."
|
|
|
|
|
|
(defun org-element-macro-interpreter (macro _)
|
|
|
"Interpret MACRO object as Org syntax."
|
|
|
- (org-element-property :value macro))
|
|
|
+ (format "{{{%s%s}}}"
|
|
|
+ (org-element-property :key macro)
|
|
|
+ (pcase (org-element-property :args macro)
|
|
|
+ (`nil "")
|
|
|
+ (args (format "(%s)" (apply #'org-macro-escape-arguments args))))))
|
|
|
|
|
|
|
|
|
;;;; Radio-target
|