forked from mirrors/org-mode
Move `org-replace-escapes' into "org-macs.el"
* lisp/org.el (org-replace-escapes): Move function... * lisp/org-macs.el: ...there.
This commit is contained in:
parent
ccfea3d8e5
commit
9cf2040313
|
@ -1011,6 +1011,33 @@ as-is if removal failed."
|
|||
(or (cdr entry) "") template t t)))
|
||||
template))
|
||||
|
||||
(defun org-replace-escapes (string table)
|
||||
"Replace %-escapes in STRING with values in TABLE.
|
||||
TABLE is an association list with keys like \"%a\" and string values.
|
||||
The sequences in STRING may contain normal field width and padding information,
|
||||
for example \"%-5s\". Replacements happen in the sequence given by TABLE,
|
||||
so values can contain further %-escapes if they are define later in TABLE."
|
||||
(let ((tbl (copy-alist table))
|
||||
(case-fold-search nil)
|
||||
(pchg 0)
|
||||
re rpl)
|
||||
(dolist (e tbl)
|
||||
(setq re (concat "%-?[0-9.]*" (substring (car e) 1)))
|
||||
(when (and (cdr e) (string-match re (cdr e)))
|
||||
(let ((sref (substring (cdr e) (match-beginning 0) (match-end 0)))
|
||||
(safe "SREF"))
|
||||
(add-text-properties 0 3 (list 'sref sref) safe)
|
||||
(setcdr e (replace-match safe t t (cdr e)))))
|
||||
(while (string-match re string)
|
||||
(setq rpl (format (concat (substring (match-string 0 string) 0 -1) "s")
|
||||
(cdr e)))
|
||||
(setq string (replace-match rpl t t string))))
|
||||
(while (setq pchg (next-property-change pchg string))
|
||||
(let ((sref (get-text-property pchg 'sref string)))
|
||||
(when (and sref (string-match "SREF" string pchg))
|
||||
(setq string (replace-match sref t t string)))))
|
||||
string))
|
||||
|
||||
|
||||
;;; Text properties
|
||||
|
||||
|
|
27
lisp/org.el
27
lisp/org.el
|
@ -19054,33 +19054,6 @@ Returns the number of empty lines passed."
|
|||
(goto-char (min (point) pos))
|
||||
(count-lines (point) pos)))
|
||||
|
||||
(defun org-replace-escapes (string table)
|
||||
"Replace %-escapes in STRING with values in TABLE.
|
||||
TABLE is an association list with keys like \"%a\" and string values.
|
||||
The sequences in STRING may contain normal field width and padding information,
|
||||
for example \"%-5s\". Replacements happen in the sequence given by TABLE,
|
||||
so values can contain further %-escapes if they are define later in TABLE."
|
||||
(let ((tbl (copy-alist table))
|
||||
(case-fold-search nil)
|
||||
(pchg 0)
|
||||
re rpl)
|
||||
(dolist (e tbl)
|
||||
(setq re (concat "%-?[0-9.]*" (substring (car e) 1)))
|
||||
(when (and (cdr e) (string-match re (cdr e)))
|
||||
(let ((sref (substring (cdr e) (match-beginning 0) (match-end 0)))
|
||||
(safe "SREF"))
|
||||
(add-text-properties 0 3 (list 'sref sref) safe)
|
||||
(setcdr e (replace-match safe t t (cdr e)))))
|
||||
(while (string-match re string)
|
||||
(setq rpl (format (concat (substring (match-string 0 string) 0 -1) "s")
|
||||
(cdr e)))
|
||||
(setq string (replace-match rpl t t string))))
|
||||
(while (setq pchg (next-property-change pchg string))
|
||||
(let ((sref (get-text-property pchg 'sref string)))
|
||||
(when (and sref (string-match "SREF" string pchg))
|
||||
(setq string (replace-match sref t t string)))))
|
||||
string))
|
||||
|
||||
;;; TODO: Only called once, from ox-odt which should probably use
|
||||
;;; org-export-inline-image-p or something.
|
||||
(defun org-file-image-p (file)
|
||||
|
|
Loading…
Reference in New Issue