Hi,
Sébastien Vauban wrote:
I've a really weird exception occurring: change state from TODO to DONE is
blocked... while I'm on a leaf of the Org tree!?
Debugger entered--Lisp error: (error #(TODO state change from TODO to DONE
blocked 23 27 (face org-todo) 31 35 (face org-done)))
signal(error (#(TODO state change from TODO to DONE blocked 23 27 (face
org-todo) 31 35 (face org-done
error(TODO state change from %s to %s blocked #(TODO 0 4 (face
org-todo)) #(DONE 0 4 (face org-done)))
(if (interactive-p) (error TODO state change from %s to %s blocked this
state) (message TODO state change from %s to %s blocked this state) (throw
(quote exit) nil))
(if (save-excursion (save-match-data ...)) nil (if (interactive-p) (error
TODO state change from %s to %s blocked this state) (message TODO state
change from %s to %s blocked this state) (throw ... nil)))
(unless (save-excursion (save-match-data ...)) (if (interactive-p) (error
TODO state change from %s to %s blocked this state) (message TODO state
change from %s to %s blocked this state) (throw ... nil)))
(progn (setq org-last-todo-state-is-todo (not ...)) (unless (save-excursion
...) (if ... ... ... ...)))
(if org-blocker-hook (progn (setq org-last-todo-state-is-todo ...) (unless
... ...)))
(when org-blocker-hook (setq org-last-todo-state-is-todo (not ...)) (unless
(save-excursion ...) (if ... ... ... ...)))
(let* ((match-data ...) (startpos ...) (logging ...) (org-log-done
org-log-done) (org-log-repeat org-log-repeat) (org-todo-log-states
org-todo-log-states) (this ...) (hl-pos ...) (head ...) (ass ...) (interpret
...) (done-word ...) (final-done-word ...) (last-state ...)
(completion-ignore-case t) (member ...) (tail ...) (state ...) (state ...)
(next ...) (change-plist ...) dolog now-done-p) (when org-blocker-hook (setq
org-last-todo-state-is-todo ...) (unless ... ...)) (store-match-data
match-data) (replace-match next t t) (unless (pos-visible-in-window-p hl-pos)
(message TODO state changed to %s ...)) (unless head (setq head ... ass ...
interpret ... done-word ... final-done-word ...)) (when (memq arg ...)
(message Keyword-Set %d/%d: %s ... ... ...)) (setq
org-last-todo-state-is-todo (not ...)) (setq now-done-p (and ... ...)) (and
logging (org-local-logging logging)) (when (and ... ... ...) (setq dolog ...)
(if ... ...) (when ... ...) (when ... ... ...) (when ... ...))
(org-todo-trigger-tag-changes state) (and org-auto-align-tags (not
org-setting-tags) (org-set-tags nil t)) (when org-provide-todo-statistics
(org-update-parent-todo-statistics)) (run-hooks (quote
org-after-todo-state-change-hook)) (if (and arg ...) (setq head ...))
(put-text-property (point-at-bol) (point-at-eol) (quote org-todo-head) head)
(when now-done-p (when ... ...) (org-auto-repeat-maybe state)) (if (and ...
... ... ...) (progn ... ...)) (when org-trigger-hook (save-excursion ...)))
(catch (quote exit) (org-back-to-heading t) (if (looking-at outline-regexp)
(goto-char ...)) (or (looking-at ...) (looking-at *)) (let* (... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... dolog
now-done-p) (when org-blocker-hook ... ...) (store-match-data match-data)
(replace-match next t t) (unless ... ...) (unless head ...) (when ... ...)
(setq org-last-todo-state-is-todo ...) (setq now-done-p ...) (and logging
...) (when ... ... ... ... ... ...) (org-todo-trigger-tag-changes state) (and
org-auto-align-tags ... ...) (when org-provide-todo-statistics ...)
(run-hooks ...) (if ... ...) (put-text-property ... ... ... head) (when
now-done-p ... ...) (if ... ...) (when org-trigger-hook ...)))
(save-excursion (catch (quote exit) (org-back-to-heading t) (if ... ...)
(or ... ...) (let* ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ...)))
(let ((org-blocker-hook org-blocker-hook) (case-fold-search nil)) (when
(equal arg ...) (setq arg nil org-blocker-hook nil)) (when (and
org-blocker-hook ...) (setq org-blocker-hook nil)) (save-excursion (catch ...
... ... ... ...)))
org-todo(nil)
call-interactively(org-todo)
(cond ((commandp org-speed-command) (setq this-command org-speed-command)
(call-interactively org-speed-command)) ((functionp org-speed-command)
(funcall org-speed-command)) ((and org-speed-command ...) (eval
org-speed-command)) (t (let ... ...)))
(cond ((and org-use-speed-commands ...) (cond ... ... ... ...)) ((and ...
... ... ...) (let ... ... ... ... ...)) (t (setq org-table-may-need-update t)
(self-insert-command N) (org-fix-tags-on-the-fly) (if
org-self-insert-cluster-for-undo ...)))
org-self-insert-command(1)
call-interactively(org-self-insert-command nil nil)
I absolutely don't understand which conditions are met for provoking that
strange reaction.
Taking that leaf and putting it in a blanco Org file allows me to do the state
change. So, it's not related to the headline