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 itself.
Weird discovery: in the "full" document, the state change is blocked. But, the state change works if I narrow the buffer on that leaf subtree... > Anybody having an idea, or able to suggest some more tests to do, based on the > above input? Best regards, Seb -- Sébastien Vauban _______________________________________________ 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