[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org dfeff03c5a: lisp/org-element-ast.el (org-element-co
|
From: |
ELPA Syncer |
|
Subject: |
[elpa] externals/org dfeff03c5a: lisp/org-element-ast.el (org-element-copy): Fix altering source element |
|
Date: |
Wed, 3 Jan 2024 09:58:41 -0500 (EST) |
branch: externals/org
commit dfeff03c5ab0be64b8bf7baeea46a617b7dd004a
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>
lisp/org-element-ast.el (org-element-copy): Fix altering source element
* testing/lisp/test-org-element.el (test-org-element/copy): Add new
test case.
Reported-by: gerard.vermeulen@posteo.net
Link: https://orgmode.org/list/e0252d664af25728243734d67432ad64@posteo.net
---
lisp/org-element-ast.el | 4 ++--
testing/lisp/test-org-element.el | 8 +++++++-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/lisp/org-element-ast.el b/lisp/org-element-ast.el
index 4c2f431fe3..2186480bed 100644
--- a/lisp/org-element-ast.el
+++ b/lisp/org-element-ast.el
@@ -810,8 +810,8 @@ When DATUM is `plain-text', all the properties are removed."
(org-element-put-property (car tail) :parent node-copy)
(setq tail (cdr tail)))
node-copy))
- (_
- (let ((node-copy (copy-sequence datum)))
+ (type
+ (let ((node-copy (append (list type (copy-sequence (cadr datum)))
(copy-sequence (cddr datum)))))
;; Copy `:standard-properties'
(when-let ((parray (org-element-property-raw :standard-properties
node-copy)))
(org-element-put-property node-copy :standard-properties
(copy-sequence parray)))
diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el
index 063827e9f6..a97d863c83 100644
--- a/testing/lisp/test-org-element.el
+++ b/testing/lisp/test-org-element.el
@@ -794,7 +794,13 @@ Some other text
(should-not (org-element-copy nil))
;; Return a copy secondary strings.
(should (equal '("text") (org-element-copy '("text"))))
- (should-not (eq '("text") (org-element-copy '("text")))))
+ (should-not (eq '("text") (org-element-copy '("text"))))
+ ;; Do not alter the source.
+ (org-test-with-temp-text "*bold*"
+ (let* ((source (org-element-context))
+ (copy (org-element-copy source)))
+ (should-not (org-element-parent copy))
+ (should (org-element-parent source)))))
| [Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org dfeff03c5a: lisp/org-element-ast.el (org-element-copy): Fix altering source element,
ELPA Syncer <=