[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org e8116de: Merge branch 'maint'
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org e8116de: Merge branch 'maint' |
Date: |
Sun, 16 May 2021 01:57:14 -0400 (EDT) |
branch: externals/org
commit e8116dece1e44f4adac1026f099f87572cd03e6a
Merge: 1d99f5a 589962b
Author: Bastien <bzg@gnu.org>
Commit: Bastien <bzg@gnu.org>
Merge branch 'maint'
---
lisp/org.el | 39 +++++++++++++++++++++++++++++++--------
1 file changed, 31 insertions(+), 8 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index 1df6862..f7d30b7 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8141,14 +8141,37 @@ Optional argument WITH-CASE means sort
case-sensitively."
with-case))
(defun org-sort-remove-invisible (s)
- "Remove invisible part of links and emphasis markers from string S."
- (remove-text-properties 0 (length s) org-rm-props s)
- (replace-regexp-in-string
- org-verbatim-re (lambda (m) (format "%s " (match-string 4 m)))
- (replace-regexp-in-string
- org-emph-re (lambda (m) (format " %s " (match-string 4 m)))
- (org-link-display-format s)
- t t) t t))
+ "Remove emphasis markers and any invisible property from string S.
+Assume S may contain only objects."
+ ;; org-element-interpret-data clears any text property, including
+ ;; invisible part.
+ (org-element-interpret-data
+ (let ((tree (org-element-parse-secondary-string
+ s (org-element-restriction 'paragraph))))
+ (org-element-map tree '(bold code italic link strike-through underline
verbatim)
+ (lambda (o)
+ (pcase (org-element-type o)
+ ;; Terminal object. Replace it with its value.
+ ((or `code `verbatim)
+ (let ((new (org-element-property :value o)))
+ (org-element-insert-before new o)
+ (org-element-put-property
+ new :post-blank (org-element-property :post-blank o))))
+ ;; Non-terminal objects. Splice contents.
+ (type
+ (let ((contents
+ (or (org-element-contents o)
+ (and (eq type 'link)
+ (list (org-element-property :raw-link o)))))
+ (c nil))
+ (while contents
+ (setq c (pop contents))
+ (org-element-insert-before c o))
+ (org-element-put-property
+ c :post-blank (org-element-property :post-blank o)))))
+ (org-element-extract-element o)))
+ ;; Return modified tree.
+ tree)))
(defvar org-after-sorting-entries-or-items-hook nil
"Hook that is run after a bunch of entries or items have been sorted.