summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <n.goaziou@gmail.com>2012-08-14 10:18:42 +0200
committerNicolas Goaziou <n.goaziou@gmail.com>2012-08-14 10:18:42 +0200
commit16a2203f6f97a0afc7277cc4459817d2e79195d8 (patch)
tree3875804e23a430b7e52c1121288997359b635303
parentfdcf9dceb7c5e9b61aea199a4025f43f56a1f68a (diff)
downloadorg-mode-16a2203f6f97a0afc7277cc4459817d2e79195d8.tar.gz
org-element: Small refactoring
* lisp/org-element.el (org-element-swap-A-B): Small refactoring.
-rw-r--r--lisp/org-element.el28
1 files changed, 13 insertions, 15 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el
index 1fb993f..e5e692a 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -4265,21 +4265,19 @@ end of ELEM-A."
(org-indent-to-column ind-B))
(insert body-A)
;; Restore ex ELEM-A overlays.
- (mapc (lambda (ov)
- (move-overlay
- (car ov)
- (+ (nth 1 ov) (- beg-B beg-A))
- (+ (nth 2 ov) (- beg-B beg-A))))
- (car overlays))
- (goto-char beg-A)
- (delete-region beg-A end-A)
- (insert body-B)
- ;; Restore ex ELEM-B overlays.
- (mapc (lambda (ov)
- (move-overlay (car ov)
- (+ (nth 1 ov) (- beg-A beg-B))
- (+ (nth 2 ov) (- beg-A beg-B))))
- (cdr overlays))
+ (let ((offset (- beg-B beg-A)))
+ (mapc (lambda (ov)
+ (move-overlay
+ (car ov) (+ (nth 1 ov) offset) (+ (nth 2 ov) offset)))
+ (car overlays))
+ (goto-char beg-A)
+ (delete-region beg-A end-A)
+ (insert body-B)
+ ;; Restore ex ELEM-B overlays.
+ (mapc (lambda (ov)
+ (move-overlay
+ (car ov) (- (nth 1 ov) offset) (- (nth 2 ov) offset)))
+ (cdr overlays)))
(goto-char (org-element-property :end elem-B)))))