Browse Source

Provide customization variable `org-clone-delete-id'.

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.
David Maus 15 years ago
parent
commit
c1751071fc
2 changed files with 17 additions and 2 deletions
  1. 3 0
      lisp/ChangeLog
  2. 14 2
      lisp/org.el

+ 3 - 0
lisp/ChangeLog

@@ -12,6 +12,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.dominik@gmail.com>
 

+ 14 - 2
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
 
@@ -7205,13 +7212,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)