org-element: Small refactoring

* lisp/org-element.el (org-element-swap-A-B): Small refactoring.
This commit is contained in:
Nicolas Goaziou 2012-08-14 10:18:42 +02:00
parent fdcf9dceb7
commit 16a2203f6f
1 changed files with 13 additions and 15 deletions

View File

@ -4265,21 +4265,19 @@ end of ELEM-A."
(org-indent-to-column ind-B)) (org-indent-to-column ind-B))
(insert body-A) (insert body-A)
;; Restore ex ELEM-A overlays. ;; Restore ex ELEM-A overlays.
(mapc (lambda (ov) (let ((offset (- beg-B beg-A)))
(move-overlay (mapc (lambda (ov)
(car ov) (move-overlay
(+ (nth 1 ov) (- beg-B beg-A)) (car ov) (+ (nth 1 ov) offset) (+ (nth 2 ov) offset)))
(+ (nth 2 ov) (- beg-B beg-A)))) (car overlays))
(car overlays)) (goto-char beg-A)
(goto-char beg-A) (delete-region beg-A end-A)
(delete-region beg-A end-A) (insert body-B)
(insert body-B) ;; Restore ex ELEM-B overlays.
;; Restore ex ELEM-B overlays. (mapc (lambda (ov)
(mapc (lambda (ov) (move-overlay
(move-overlay (car ov) (car ov) (- (nth 1 ov) offset) (- (nth 2 ov) offset)))
(+ (nth 1 ov) (- beg-A beg-B)) (cdr overlays)))
(+ (nth 2 ov) (- beg-A beg-B))))
(cdr overlays))
(goto-char (org-element-property :end elem-B))))) (goto-char (org-element-property :end elem-B)))))