[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org f63cbd3 34/41: lisp/org.el: Fix bug in `org-sort-re
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org f63cbd3 34/41: lisp/org.el: Fix bug in `org-sort-remove-invisible' |
Date: |
Sun, 16 May 2021 04:57:22 -0400 (EDT) |
branch: externals/org
commit f63cbd36c550bb8172f1ff5ab4903f40b901fc5d
Author: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Commit: Bastien <bzg@gnu.org>
lisp/org.el: Fix bug in `org-sort-remove-invisible'
* lisp/org.el (org-sort-remove-invisible): Rewrite using
`org-element-interpret-data' to clean invisible parts more
rigorously.
Link: https://orgmode.org/list/87a6qg1rjx.fsf@posteo.net/
---
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.
- [elpa] externals/org 3f59ea9 20/41: Add a test for known bug in org-element-cache, (continued)
- [elpa] externals/org 3f59ea9 20/41: Add a test for known bug in org-element-cache, ELPA Syncer, 2021/05/16
- [elpa] externals/org b183315 21/41: Set org-adapt-indentation explicitly in some tests, ELPA Syncer, 2021/05/16
- [elpa] externals/org 33027f9 17/41: New command `org-refile-reverse' bound to C-c C-M-w, ELPA Syncer, 2021/05/16
- [elpa] externals/org e53572e 18/41: Fix code typo in 06c064e9, ELPA Syncer, 2021/05/16
- [elpa] externals/org c6d1150 19/41: Fix code typo in 06c064e9 (take 2), ELPA Syncer, 2021/05/16
- [elpa] externals/org f0447de 22/41: Set org-adapt-indentation explicitly in some tests, ELPA Syncer, 2021/05/16
- [elpa] externals/org cbc450d 31/41: lisp/org-list.el: Fix bug wrt updating statistics, ELPA Syncer, 2021/05/16
- [elpa] externals/org 81c7a2d 23/41: lisp/org-agenda.el: Use "09:00" instead of " 9:00", ELPA Syncer, 2021/05/16
- [elpa] externals/org 72894cd 24/41: Allow moving inlinetasks using org-metaup/down, ELPA Syncer, 2021/05/16
- [elpa] externals/org c77066d 32/41: etc/ORG-NEWS: Add a news entry about ditaa.jar not being bundled, ELPA Syncer, 2021/05/16
- [elpa] externals/org f63cbd3 34/41: lisp/org.el: Fix bug in `org-sort-remove-invisible',
ELPA Syncer <=
- [elpa] externals/org 8f39743 16/41: Use cache in org-up-heading-safe, ELPA Syncer, 2021/05/16
- [elpa] externals/org 83ab852 27/41: etc/ORG-NEWS: Various enhancements, ELPA Syncer, 2021/05/16
- [elpa] externals/org ee40458 25/41: lisp/ox-latex.el: Allow arbitrary float environments, ELPA Syncer, 2021/05/16
- [elpa] externals/org 336efd6 37/41: lisp/*: Use version number when obsoleting, ELPA Syncer, 2021/05/16
- [elpa] externals/org fdd7072 38/41: Merge branch 'master' of code.orgmode.org:bzg/org-mode, ELPA Syncer, 2021/05/16
- [elpa] externals/org 70d98b5 41/41: Merge branch 'master' of code.orgmode.org:bzg/org-mode, ELPA Syncer, 2021/05/16
- [elpa] externals/org df9b509 28/41: lisp/org-attach-git.el: New option `org-attach-git-dir', ELPA Syncer, 2021/05/16
- [elpa] externals/org c7be27d 29/41: Merge remote-tracking branch 'savannah/bugfix', ELPA Syncer, 2021/05/16
- [elpa] externals/org 91373e1 26/41: ox-latex.el: Support specific attributes for verse block, ELPA Syncer, 2021/05/16
- [elpa] externals/org ef495b7 30/41: ox-html: Fix typography in a docstring, ELPA Syncer, 2021/05/16