From 16a2203f6f97a0afc7277cc4459817d2e79195d8 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 14 Aug 2012 10:18:42 +0200 Subject: [PATCH] org-element: Small refactoring * lisp/org-element.el (org-element-swap-A-B): Small refactoring. --- lisp/org-element.el | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index 1fb993fb9..e5e692afb 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)))))