Function: org-macro-escape-arguments
org-macro-escape-arguments is a byte-compiled function defined in
org-macro.el.gz.
Signature
(org-macro-escape-arguments &rest ARGS)
Documentation
Build macro's arguments string from ARGS.
ARGS are strings. Return value is a string with arguments
properly escaped and separated with commas. This is the opposite
of org-macro-extract-arguments.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-macro.el.gz
(defun org-macro-escape-arguments (&rest args)
"Build macro's arguments string from ARGS.
ARGS are strings. Return value is a string with arguments
properly escaped and separated with commas. This is the opposite
of `org-macro-extract-arguments'."
(let ((s ""))
(dolist (arg (reverse args) (substring s 1))
(setq s
(concat
","
(replace-regexp-in-string
"\\(\\\\*\\),"
(lambda (m)
(concat (make-string (1+ (* 2 (length (match-string 1 m)))) ?\\)
","))
;; If a non-terminal argument ends on backslashes, make
;; sure to also escape them as they will be followed by
;; a comma.
(concat arg (and (not (equal s ""))
(string-match "\\\\+\\'" arg)
(match-string 0 arg)))
nil t)
s)))))