summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Dominik <carsten.dominik@gmail.com>2009-04-08 17:01:54 +0200
committerCarsten Dominik <carsten.dominik@gmail.com>2009-04-08 17:01:54 +0200
commit99c7dacd668a76f242071cdce7f772841e913e64 (patch)
tree0dd47a982dab007c650696253a29d75b7be218fe
parent31446d85a32eaea0d5028149b418199989fe86a5 (diff)
downloadorg-mode-99c7dacd668a76f242071cdce7f772841e913e64.tar.gz
Dependencies: New property NOBLOCKING
A NOBLOCKING property makes sure that an entry is never blocked by whatever function in org-blocker-hook.
-rwxr-xr-xlisp/ChangeLog5
-rw-r--r--lisp/org-agenda.el14
-rw-r--r--lisp/org.el3
3 files changed, 16 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index bbcd839..d877e3d 100755
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,10 @@
2009-04-08 Carsten Dominik <carsten.dominik@gmail.com>
+ * org.el (org-todo): Honor the NOBLOCKING property.
+
+ * org-agenda.el (org-agenda-dim-blocked-tasks): Honor the
+ NOBLOCKING property.
+
* org.el (org-scan-tags): Fix bug in tag scanner
2009-04-07 Carsten Dominik <carsten.dominik@gmail.com>
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index e2af459..31521d9 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -2424,12 +2424,14 @@ bind it in the options section.")
(not (with-current-buffer (marker-buffer marker)
(save-excursion
(goto-char marker)
- (run-hook-with-args-until-failure
- 'org-blocker-hook
- (list :type 'todo-state-change
- :position marker
- :from 'todo
- :to 'done))))))
+ (if (org-entry-get nil "NOBLOCKING")
+ t ;; Never block this entry
+ (run-hook-with-args-until-failure
+ 'org-blocker-hook
+ (list :type 'todo-state-change
+ :position marker
+ :from 'todo
+ :to 'done)))))))
(if org-blocked-by-checkboxes (setq invis1 nil))
(setq b (if invis1 (max (point-min) (1- (point))) (point))
e (point-at-eol)
diff --git a/lisp/org.el b/lisp/org.el
index e322209..6bf06e8 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -8797,6 +8797,9 @@ For calling through lisp, arg is also interpreted in the following way:
(case-fold-search nil))
(when (equal arg '(64))
(setq arg nil org-blocker-hook nil))
+ (when (and org-blocker-hook
+ (org-entry-get nil "NOBLOCKING"))
+ (setq org-blocker-hook nil))
(save-excursion
(catch 'exit
(org-back-to-heading)