diff options
author | Nicolas Goaziou <n.goaziou@gmail.com> | 2012-08-14 10:18:42 +0200 |
---|---|---|
committer | Nicolas Goaziou <n.goaziou@gmail.com> | 2012-08-14 10:18:42 +0200 |
commit | 16a2203f6f97a0afc7277cc4459817d2e79195d8 (patch) | |
tree | 3875804e23a430b7e52c1121288997359b635303 | |
parent | fdcf9dceb7c5e9b61aea199a4025f43f56a1f68a (diff) | |
download | org-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.el | 28 |
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))))) |