When non-nil, clones of a subtree don't inherit the ID property.
Otherwise they do and it will be set to a new unique identifier.
---
 lisp/ChangeLog |    3 +++
 lisp/org.el    |   16 ++++++++++++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ec2fa36..ba65761 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -4,6 +4,9 @@
        when cache was cleared.
        (org-clone-subtree-with-time-shift): Maybe create ID property
        in cloned subtrees.
+       (org-clone-delete-id): New customization variable.
+       (org-clone-subtree-with-time-shift): Use customization
+       variable `org-clone-delete-id'.
 
 2010-05-17  Carsten Dominik  <carsten.domi...@gmail.com>
 
diff --git a/lisp/org.el b/lisp/org.el
index 64da60a..88d636d 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -105,6 +105,13 @@
 (require 'org-footnote)
 
 ;;;; Customization variables
+(defcustom org-clone-delete-id nil
+  "Remove ID property of clones of a subtree.
+When non-nil, clones of a subtree don't inherit the ID property.
+Otherwise they inherit the ID property with a new unique
+identifier."
+  :type 'boolean
+  :group 'org-id)
 
 ;;; Version
 
@@ -7204,13 +7211,18 @@ and still retain the repeater to cover future instances 
of the task."
                           (with-temp-buffer
                             (insert template)
                             (org-mode)
-                            (org-id-get-create t)
+                            (goto-char (point-min))
+                            (if org-clone-delete-id
+                                (org-entry-delete nil "ID")
+                              (org-id-get-create t))
                             (buffer-string))))
            (with-temp-buffer
              (insert template)
              (org-mode)
              (goto-char (point-min))
-             (if idprop (org-id-get-create t))
+             (and idprop (if org-clone-delete-id
+                             (org-entry-delete nil "ID")
+                           (org-id-get-create t)))
              (while (re-search-forward org-ts-regexp-both nil t)
                (org-timestamp-change (* n shift-n) shift-what))
              (unless (= n n-no-remove)
-- 
1.7.1


_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to