[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 286a8fb798 01/10: org-element-insert-before: Fix re
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 286a8fb798 01/10: org-element-insert-before: Fix return value when setting plain-text |
Date: |
Thu, 29 Feb 2024 06:58:53 -0500 (EST) |
branch: externals/org
commit 286a8fb7985cd699eaa62a7239c5093c3b82366b
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>
org-element-insert-before: Fix return value when setting plain-text
* lisp/org-element-ast.el (org-element-set-element): When setting
plain-text node, return the new node instead of immutable old one.
* testing/lisp/test-org-element.el (test-org-element/set): Add test.
---
lisp/org-element-ast.el | 7 +++++--
testing/lisp/test-org-element.el | 9 +++++++++
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/lisp/org-element-ast.el b/lisp/org-element-ast.el
index 4c1391ec4e..fba6b37e66 100644
--- a/lisp/org-element-ast.el
+++ b/lisp/org-element-ast.el
@@ -1131,8 +1131,11 @@ The function takes care of setting `:parent' property
for NEW."
(eq new-type 'plain-text))
;; We cannot replace OLD with NEW since strings are not mutable.
;; We take the long path.
- (progn (org-element-insert-before new old)
- (org-element-extract old))
+ (progn
+ (org-element-insert-before new old)
+ (org-element-extract old)
+ ;; We will return OLD.
+ (setq old new))
;; Since OLD is going to be changed into NEW by side-effect, first
;; make sure that every element or object within NEW has OLD as
;; parent.
diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el
index 93754bae50..23d3d695c9 100644
--- a/testing/lisp/test-org-element.el
+++ b/testing/lisp/test-org-element.el
@@ -755,6 +755,15 @@ Some other text
(text (org-element-map tree 'plain-text 'identity nil t)))
(org-element-set text "b")
(org-element-map tree 'plain-text 'identity nil t)))))
+ ;; Replace string inside anonymous element with another string.
+ (let* ((parent (org-element-create 'anonymous nil "test"))
+ (str (car (org-element-contents parent))))
+ (let ((return (org-element-set str "repl"))
+ (new (car (org-element-contents parent))))
+ ;; Return the modified value.
+ (should (eq return new))
+ (should (equal new "repl"))
+ (should (eq (org-element-parent new) parent))))
;; KEEP-PROPS
(should
(org-element-property
- [elpa] externals/org updated (755fef38f5 -> ac49228040), ELPA Syncer, 2024/02/29
- [elpa] externals/org c841be9656 07/10: lisp/ol.el (org-target-link-regexp-limit): Bump value, ELPA Syncer, 2024/02/29
- [elpa] externals/org 6ef0154576 09/10: org-up-heading-safe: Return true level, ignoring org-odd-levels-only, ELPA Syncer, 2024/02/29
- [elpa] externals/org 9029470eb9 04/10: fixup! oc-basic.el: Drop {...} when rendering Bibtex entries, ELPA Syncer, 2024/02/29
- [elpa] externals/org dd4d05a159 05/10: ob-tangle: Add flag to optionally remove files before writing, ELPA Syncer, 2024/02/29
- [elpa] externals/org ac49228040 10/10: Merge branch 'bugfix', ELPA Syncer, 2024/02/29
- [elpa] externals/org ac1ed2bf85 03/10: lisp/org-colview.el: Fix computing summary with low-level first child, ELPA Syncer, 2024/02/29
- [elpa] externals/org 731d16f9e9 08/10: org-table-to-lisp: Preserve text properties, ELPA Syncer, 2024/02/29
- [elpa] externals/org d2df9624ce 02/10: oc-basic.el: Drop {...} when rendering Bibtex entries, ELPA Syncer, 2024/02/29
- [elpa] externals/org 286a8fb798 01/10: org-element-insert-before: Fix return value when setting plain-text,
ELPA Syncer <=
- [elpa] externals/org 341a01a07d 06/10: Work around regexp size limitation for large number of link targets, ELPA Syncer, 2024/02/29