[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] [PATCH 1/3] org.el: Remove duplicate code in `org-clone-subtre
From: |
David Maus |
Subject: |
[Orgmode] [PATCH 1/3] org.el: Remove duplicate code in `org-clone-subtree-with-time-shift'. |
Date: |
Sat, 22 May 2010 16:10:33 +0200 |
Operating on the clone (e.g. remove/recreated ID property) is
independent on whether the subtree is cloned with time shift or not.
---
lisp/org.el | 40 ++++++++++++++--------------------------
1 files changed, 14 insertions(+), 26 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index 6dcc520..c6d928b 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -7213,30 +7213,18 @@ and still retain the repeater to cover future instances
of the task."
(setq nmin 0 nmax (1+ nmax) n-no-remove nmax))
(goto-char end)
(loop for n from nmin to nmax do
- (if (not doshift)
- (setq task (if (not idprop) template
- (with-temp-buffer
- (insert template)
- (org-mode)
- (goto-char (point-min))
- (if org-clone-delete-id
- (org-entry-delete nil "ID")
- (org-id-get-create t))
- (while (re-search-forward
- org-property-drawer-re nil t)
- (org-remove-empty-drawer-at
- "PROPERTIES" (point)))
- (buffer-string))))
- (with-temp-buffer
- (insert template)
- (org-mode)
- (goto-char (point-min))
- (and idprop (if org-clone-delete-id
- (org-entry-delete nil "ID")
- (org-id-get-create t)))
- (while (re-search-forward org-property-drawer-re nil t)
- (org-remove-empty-drawer-at "PROPERTIES" (point)))
- (goto-char (point-min))
+ ;; prepare clone
+ (with-temp-buffer
+ (insert template)
+ (org-mode)
+ (goto-char (point-min))
+ (and idprop (if org-clone-delete-id
+ (org-entry-delete nil "ID")
+ (org-id-get-create t)))
+ (while (re-search-forward org-property-drawer-re nil t)
+ (org-remove-empty-drawer-at "PROPERTIES" (point)))
+ (goto-char (point-min))
+ (when doshift
(while (re-search-forward org-ts-regexp-both nil t)
(org-timestamp-change (* n shift-n) shift-what))
(unless (= n n-no-remove)
@@ -7245,8 +7233,8 @@ and still retain the repeater to cover future instances
of the task."
(save-excursion
(goto-char (match-beginning 0))
(if (looking-at "<[^<>\n]+\\( +\\+[0-9]+[dwmy]\\)")
- (delete-region (match-beginning 1) (match-end 1))))))
- (setq task (buffer-string))))
+ (delete-region (match-beginning 1) (match-end 1)))))))
+ (setq task (buffer-string)))
(insert task))
(goto-char beg)))
--
1.7.1