In the meantime I understand better what happens. I rewrote the doc
strings and added an error message to avoid the wrong error No
priority cookie found in line for the case of org-default-priority
out of range. My previous patch is to be replaced by this one:
* org.el (org-default-priority): Document dependency on
org-priority-start-cycle-with-default.
(org-priority-start-cycle-with-default): Document dependency on
org-default-priority.
(org-priority): Error added for case of org-default-priority out of
range.
---
lisp/org.el | 20
1 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index 498c606..241fa11 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -2488,14 +2488,20 @@ Must have a larger ASCII number than
`org-highest-priority'.
(defcustom org-default-priority ?B
The default priority of TODO items.
-This is the priority an item get if no explicit priority is given.
+This is the priority an item gets if no explicit priority is given.
+When starting to cycle on an empty priority the first step in the cycle
+depends on `org-priority-start-cycle-with-default'. The resulting first
+step priority must not exceed the range from `org-highest-priority' to
+`org-lowest-priority' which means that `org-default-priority' has to be
+in this range exclusive or inclusive the range boundaries.
:group 'org-priorities
:type 'character)
(defcustom org-priority-start-cycle-with-default t
Non-nil means start with default priority when starting to cycle.
When this is nil, the first step in the cycle will be (depending on the
-command used) one higher or lower that the default priority.
+command used) one higher or lower than the default priority.
+See also `org-default-priority'.
:group 'org-priorities
:type 'boolean)
@@ -12306,12 +12312,18 @@ ACTION can be `set', `up', `down', or a character.
(if (and (not have) (eq last-command this-command))
(setq new org-lowest-priority)
(setq new (if (and org-priority-start-cycle-with-default (not have))
- org-default-priority (1- current)
+ org-default-priority (1- current)))
+ (when ( (upcase new) org-highest-priority)
+ (error
+See `org-default-priority' for range limit exceeded here
((eq action 'down)
(if (and (not have) (eq last-command this-command))
(setq new org-highest-priority)
(setq new (if (and org-priority-start-cycle-with-default (not have))
- org-default-priority (1+ current)
+ org-default-priority (1+ current)))
+ (when ( (upcase new) org-lowest-priority)
+ (error
+See `org-default-priority' for range limit exceeded here
(t (error Invalid action)))
(if (or ( (upcase new) org-highest-priority)
( (upcase new) org-lowest-priority))
--
1.7.4.2