diff options
author | Bastien Guerry <bzg@altern.org> | 2013-02-16 23:04:12 +0100 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2013-02-16 23:04:12 +0100 |
commit | c4d8d26d1d3891a0f7aa6a380f0a8c875d4614d2 (patch) | |
tree | dc57f46efff1366c7985c90b14d3b8a886ddff9d | |
parent | 3128edcbf8b5548bfef274524e64f3add6c4e11b (diff) | |
download | org-mode-c4d8d26d1d3891a0f7aa6a380f0a8c875d4614d2.tar.gz |
org.el (org-toggle-ordered-property): Delete the drawer "PROPERTIES" if empty
* org.el (org-entry-delete, org-delete-property): New optional
arg delete-empty-drawer, a string, to delete any empty drawer
with that name.
(org-toggle-ordered-property): Delete the drawer "PROPERTIES"
if empty.
-rw-r--r-- | lisp/org.el | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/lisp/org.el b/lisp/org.el index beb52c2..76c2dca 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -12106,7 +12106,7 @@ See variable `org-track-ordered-property-with-tag'." (org-back-to-heading) (if (org-entry-get nil "ORDERED") (progn - (org-delete-property "ORDERED") + (org-delete-property "ORDERED" "PROPERTIES") (and tag (org-toggle-tag tag 'off)) (message "Subtasks can be completed in arbitrary order")) (org-entry-put nil "ORDERED" "t") @@ -14908,8 +14908,10 @@ If yes, return this value. If not, return the current value of the variable." (read prop) (symbol-value var)))) -(defun org-entry-delete (pom property) - "Delete the property PROPERTY from entry at point-or-marker POM." +(defun org-entry-delete (pom property &optional delete-empty-drawer) + "Delete the property PROPERTY from entry at point-or-marker POM. +When optional argument DELETE-EMPTY-DRAWER is a string, it defines +an empty drawer to delete." (org-with-point-at pom (if (member property org-special-properties) nil ; cannot delete these properties. @@ -14921,6 +14923,9 @@ If yes, return this value. If not, return the current value of the variable." (cdr range) t)) (progn (delete-region (match-beginning 0) (1+ (point-at-eol))) + (and delete-empty-drawer + (org-remove-empty-drawer-at + delete-empty-drawer (car range))) t) nil))))) @@ -15350,15 +15355,17 @@ in the current file." (unless (equal (org-entry-get nil property) value) (org-entry-put nil property value)))) -(defun org-delete-property (property) - "In the current entry, delete PROPERTY." +(defun org-delete-property (property &optional delete-empty-drawer) + "In the current entry, delete PROPERTY. +When optional argument DELETE-EMPTY-DRAWER is a string, it defines +an empty drawer to delete." (interactive (let* ((completion-ignore-case t) (prop (org-icompleting-read "Property: " (org-entry-properties nil 'standard)))) (list prop))) (message "Property %s %s" property - (if (org-entry-delete nil property) + (if (org-entry-delete nil property delete-empty-drawer) "deleted" "was not present in the entry"))) |