Patch to record a note for removal of SCHEDULED or DEADLINE property.

-- 
Paul Holcomb                               *pholcomb    \@      cpoint  net*
GPG key fingerprint          2B62 05AE EE74 845A 705F  D716 28C4 FE1C 088F CFAC
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 27af308..c57b71c 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -2060,7 +2060,10 @@ When nil, only the date will be recorded."
     (state . "State %-12s from %-12S %t")
     (note .  "Note taken on %t")
     (reschedule .  "Rescheduled from %S on %t")
+    (delschedule .  "Not scheduled, was %S on %t")
     (redeadline .  "New deadline from %S on %t")
+    (deldeadline .  "Removed deadline, was %S on %t")
+    (created .  "CREATED %t")
     (clock-out . ""))
   "Headings for notes added to entries.
 The value is an alist, with the car being a symbol indicating the note
@@ -2074,6 +2077,7 @@ empty string.
 
 In fact, it is not a good idea to change the `state' entry, because
 agenda log mode depends on the format of these entries."
+
   :group  'org-todo
   :group  'org-progress
   :type '(list :greedy t
@@ -2083,8 +2087,10 @@ agenda log mode depends on the format of these entries."
                       state) string)
          (cons (const :tag "Heading when just taking a note" note) string)
          (cons (const :tag "Heading when clocking out" clock-out) string)
+         (cons (const :tag "Heading when an item is no longer scheduled" 
delschedule) string)
          (cons (const :tag "Heading when rescheduling" reschedule) string)
-         (cons (const :tag "Heading when changing deadline" redeadline) 
string)))
+         (cons (const :tag "Heading when changing deadline"  redeadline) string
+               (cons (const :tag "Heading when deleting a deadline" 
deldeadline) string))))
 
 (unless (assq 'note org-log-note-headings)
   (push '(note . "%t") org-log-note-headings))
@@ -10644,6 +10650,9 @@ scheduling will use the corresponding date."
   (let ((old-date (org-entry-get nil "DEADLINE")))
     (if remove
        (progn
+         (when (and old-date org-log-redeadline)
+           (org-add-log-setup 'deldeadline nil old-date 'findpos
+                              org-log-redeadline))
          (org-remove-timestamp-with-keyword org-deadline-string)
          (message "Item no longer has a deadline."))
       (if (org-get-repeat)
@@ -10665,6 +10674,9 @@ scheduling will use the corresponding date."
   (let ((old-date (org-entry-get nil "SCHEDULED")))
     (if remove
        (progn
+         (when (and old-date org-log-reschedule)
+           (org-add-log-setup 'delschedule nil old-date 'findpos
+                              org-log-reschedule))
          (org-remove-timestamp-with-keyword org-scheduled-string)
          (message "Item is no longer scheduled."))
       (if (org-get-repeat)
@@ -10919,8 +10931,12 @@ EXTRA is additional text that will be inserted into 
the notes buffer."
                              (or org-log-note-state "")))
                     ((eq org-log-note-purpose 'reschedule)
                      "rescheduling")
+                    ((eq org-log-note-purpose 'delschedule)
+                     "no longer scheduled")
                     ((eq org-log-note-purpose 'redeadline)
                      "changing deadline")
+                    ((eq org-log-note-purpose 'deldeadline)
+                     "removing deadline")
                     ((eq org-log-note-purpose 'note)
                      "this entry")
                     (t (error "This should not happen")))))
_______________________________________________
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