emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: cache problem, with ECM
Date: Wed, 09 Jul 2014 10:11:15 +0200	[thread overview]
Message-ID: <m2bnsz2bq4.fsf@top-wifi.irisa.fr> (raw)

[-- Attachment #1: Type: text/plain, Size: 46570 bytes --]

Hello,

I noticed this morning, after updating org-mode to the latest version,
that I would get an error with a trace related to a cache even if a just
started emacs. It took me a while to get down to an ECM, but here it is.

The init file used:


--8<---------------cut here---------------start------------->8---
;; use with "open /Applications/Emacs.app --args -Q -l ~/tmp/init-org.el"

(add-to-list 'load-path "/Users/schmitta/projets/org-mode/lisp")

(require 'org)

(toggle-debug-on-error)

(setq org-log-into-drawer t)

(setq org-todo-keywords
       '((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d!/!)")
         (sequence "WAITING(w@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)")))
--8<---------------cut here---------------end--------------->8---

The crucial parts seem to be the 'org-log-into-drawer' and the fact that
switching out of WAITING triggers a note.

Here is an org file showing the problem

--8<---------------cut here---------------start------------->8---
#+STARTUP: hidestars
* Perso
:PROPERTIES:
:CATEGORY: Perso
:END:
** DONE bar
   :LOGBOOK:
   - State "DONE"       from "TODO"       [2014-07-06 Sun 19:22]
   :END:
  [2014-07-06 Sun 10:01]
** WAITING foo 							       :@fun:
  SCHEDULED: <2014-07-09 Wed>
  :PROPERTIES:
  :ID:       79A4028E-DBDA-49D4-AD39-BD2786EF9FBD
  :END:
* Hacking
:PROPERTIES:
:CATEGORY: Hacking
:END:
--8<---------------cut here---------------end--------------->8---

I tried removing many things (like headling before or after the issue,
the hidestars, or the tag), but removing each one makes the problem go
away.

The problem occurs when I do "C-c C-t d" on the WAITING headline, which
results in this big backtrace:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  +(nil 6 7)
  (let ((limit (+ (aref request 1) (aref request 3) extra))) (if (and threshold (< threshold limit)) (progn (throw (quote interrupt) nil))) (let ((parent (org-element--parse-to limit t time-limit))) (aset request 5 parent) (aset request 6 2) (throw (quote end-phase) nil)))
  (catch (quote end-phase) (if (equal (aref request 0) next) (progn (throw (quote quit) t))) (let ((limit (+ (aref request 1) (aref request 3) extra))) (if (and threshold (< threshold limit)) (progn (throw (quote interrupt) nil))) (let ((parent (org-element--parse-to limit t time-limit))) (aset request 5 parent) (aset request 6 2) (throw (quote end-phase) nil))))
  (progn (catch (quote end-phase) (if (equal (aref request 0) next) (progn (throw (quote quit) t))) (let ((limit (+ (aref request 1) (aref request 3) extra))) (if (and threshold (< threshold limit)) (progn (throw (quote interrupt) nil))) (let ((parent (org-element--parse-to limit t time-limit))) (aset request 5 parent) (aset request 6 2) (throw (quote end-phase) nil)))))
  (if (= (aref request 6) 1) (progn (catch (quote end-phase) (if (equal (aref request 0) next) (progn (throw (quote quit) t))) (let ((limit (+ (aref request 1) (aref request 3) extra))) (if (and threshold (< threshold limit)) (progn (throw (quote interrupt) nil))) (let ((parent (org-element--parse-to limit t time-limit))) (aset request 5 parent) (aset request 6 2) (throw (quote end-phase) nil))))))
  (catch (quote quit) (if (= (aref request 6) 0) (progn (catch (quote end-phase) (let ((beg (aref request 0)) (end (aref request 2)) (outreach (aref request 4))) (while t (if (org-element--cache-interrupt-p time-limit) (progn ...)) (let (... data data-key) (while node ...) (if data ... ...))))))) (if (= (aref request 6) 1) (progn (catch (quote end-phase) (if (equal (aref request 0) next) (progn (throw (quote quit) t))) (let ((limit (+ ... ... extra))) (if (and threshold (< threshold limit)) (progn (throw ... nil))) (let ((parent ...)) (aset request 5 parent) (aset request 6 2) (throw (quote end-phase) nil)))))) (let ((start (aref request 0)) (offset (aref request 3)) (parent (aref request 5)) (node (org-element--cache-root)) (stack (list nil)) (leftp t) exit-flag) (if (and (not parent) (zerop offset)) (progn (throw (quote quit) t))) (while node (let* ((data (progn (aref node 2))) (key (org-element--cache-key data))) (if (and leftp (progn (aref node 0)) (not (org-element--cache-key-less-p key start))) (progn (setq stack (cons node stack)) (setq node (progn ...))) (if (org-element--cache-key-less-p key start) nil (if (equal key next) (progn ...)) (if (or exit-flag ...) (progn ... ... ...)) (if (zerop offset) nil (org-element--cache-shift-positions data offset) (progn ...)) (let (...) (while ... ...) (cond ... ...) (if ... ...))) (setq node (if (setq leftp ...) (progn ...) (car ...)))))) t))
  org-element--cache-process-request([339 nil 253 6 nil nil 1] nil 334 nil 7)
  (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration)) (or extra 0)) (if next (progn (let* ((v next)) (aset v 3 (+ (aref v 3) (aref request 3)))) (aset next 2 (aref request 2)) (aset next 6 (aref request 6)))) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests)))
  (catch (quote interrupt) (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration)) (or extra 0)) (if next (progn (let* ((v next)) (aset v 3 (+ (aref v 3) (aref request 3)))) (aset next 2 (aref request 2)) (aset next 6 (aref request 6)))) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests))))
  (let ((inhibit-quit t) request next) (if org-element--cache-sync-timer (progn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt) (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration)) (or extra 0)) (if next (progn (let* ((v next)) (aset v 3 (+ ... ...))) (aset next 2 (aref request 2)) (aset next 6 (aref request 6)))) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests)))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys)))
  (save-current-buffer (set-buffer buffer) (let ((inhibit-quit t) request next) (if org-element--cache-sync-timer (progn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt) (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration)) (or extra 0)) (if next (progn (let* (...) (aset v 3 ...)) (aset next 2 (aref request 2)) (aset next 6 (aref request 6)))) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests)))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))
  (progn (save-current-buffer (set-buffer buffer) (let ((inhibit-quit t) request next) (if org-element--cache-sync-timer (progn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt) (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add ... org-element-cache-sync-duration)) (or extra 0)) (if next (progn (let* ... ...) (aset next 2 ...) (aset next 6 ...))) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests)))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys)))))
  (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (let ((inhibit-quit t) request next) (if org-element--cache-sync-timer (progn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt) (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next ...) threshold (and ... ...) (or extra 0)) (if next (progn ... ... ...)) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests)))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))))
  org-element--cache-sync(#<buffer waiting_bug.org> 334 7)
  (progn (org-element--cache-sync (current-buffer) end offset))
  (if next (progn (org-element--cache-sync (current-buffer) end offset)))
  (if (and next (zerop (aref next 6)) (> (setq delete-to (+ (aref next 2) (aref next 3))) end) (<= (setq delete-from (aref next 1)) end)) (progn (let* ((v next)) (aset v 3 (+ (aref v 3) offset))) (if (> beg delete-from) (let ((up (aref next 5))) (while up (org-element--cache-shift-positions up offset (quote (:contents-end :end))) (setq up (org-element-property :parent up)))) (let ((first (org-element--cache-for-removal beg delete-to offset))) (if first (progn (aset next 0 (org-element--cache-key first)) (aset next 1 (org-element-property :begin first)) (aset next 5 (org-element-property :parent first))))))) (if next (progn (org-element--cache-sync (current-buffer) end offset))) (let ((first (org-element--cache-for-removal beg end offset))) (if first (setq org-element--cache-sync-requests (cons (let ((beg ...) (key ...)) (cond (... ...) (...) (t ...))) org-element--cache-sync-requests)) (if org-element--cache-sync-requests (progn (let* ((v ...)) (aset v 3 (+ ... offset))))))))
  (let ((next (car org-element--cache-sync-requests)) delete-to delete-from) (if (and next (zerop (aref next 6)) (> (setq delete-to (+ (aref next 2) (aref next 3))) end) (<= (setq delete-from (aref next 1)) end)) (progn (let* ((v next)) (aset v 3 (+ (aref v 3) offset))) (if (> beg delete-from) (let ((up (aref next 5))) (while up (org-element--cache-shift-positions up offset (quote ...)) (setq up (org-element-property :parent up)))) (let ((first (org-element--cache-for-removal beg delete-to offset))) (if first (progn (aset next 0 ...) (aset next 1 ...) (aset next 5 ...)))))) (if next (progn (org-element--cache-sync (current-buffer) end offset))) (let ((first (org-element--cache-for-removal beg end offset))) (if first (setq org-element--cache-sync-requests (cons (let (... ...) (cond ... ... ...)) org-element--cache-sync-requests)) (if org-element--cache-sync-requests (progn (let* (...) (aset v 3 ...))))))))
  org-element--cache-submit-request(223 334 7)
  (let ((offset (- end beg pre))) (org-element--cache-submit-request top (- bottom offset) offset))
  (let ((top (point)) (bottom (save-excursion (goto-char end) (line-end-position)))) (if (cond ((memql org-element--cache-change-warning (quote (t))) t) ((eql org-element--cache-change-warning (quote headline)) (not (and (let* (... ... ... ...) (org-at-heading-p)) (= (line-end-position) bottom)))) (t (let ((case-fold-search t)) (re-search-forward org-element--cache-sensitive-re bottom t)))) (progn (let* ((org-called-with-limited-levels t) (org-outline-regexp (org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp) (org-outline-regexp-bol (concat "^" org-outline-regexp))) (setq top (progn (goto-char top) (if (outline-previous-heading) (progn ...)) (point))) (setq bottom (progn (goto-char bottom) (if (outline-next-heading) (1- ...) (point))))))) (let ((offset (- end beg pre))) (org-element--cache-submit-request top (- bottom offset) offset)))
  (progn (let ((top (point)) (bottom (save-excursion (goto-char end) (line-end-position)))) (if (cond ((memql org-element--cache-change-warning (quote (t))) t) ((eql org-element--cache-change-warning (quote headline)) (not (and (let* ... ...) (= ... bottom)))) (t (let ((case-fold-search t)) (re-search-forward org-element--cache-sensitive-re bottom t)))) (progn (let* ((org-called-with-limited-levels t) (org-outline-regexp (org-get-limited-outline-regexp)) (outline-regexp org-outline-regexp) (org-outline-regexp-bol (concat "^" org-outline-regexp))) (setq top (progn (goto-char top) (if ... ...) (point))) (setq bottom (progn (goto-char bottom) (if ... ... ...)))))) (let ((offset (- end beg pre))) (org-element--cache-submit-request top (- bottom offset) offset))))
  (unwind-protect (progn (let ((top (point)) (bottom (save-excursion (goto-char end) (line-end-position)))) (if (cond ((memql org-element--cache-change-warning (quote ...)) t) ((eql org-element--cache-change-warning (quote headline)) (not (and ... ...))) (t (let (...) (re-search-forward org-element--cache-sensitive-re bottom t)))) (progn (let* ((org-called-with-limited-levels t) (org-outline-regexp ...) (outline-regexp org-outline-regexp) (org-outline-regexp-bol ...)) (setq top (progn ... ... ...)) (setq bottom (progn ... ...))))) (let ((offset (- end beg pre))) (org-element--cache-submit-request top (- bottom offset) offset)))) (set-match-data save-match-data-internal (quote evaporate)))
  (let ((save-match-data-internal (match-data))) (unwind-protect (progn (let ((top (point)) (bottom (save-excursion (goto-char end) (line-end-position)))) (if (cond ((memql org-element--cache-change-warning ...) t) ((eql org-element--cache-change-warning ...) (not ...)) (t (let ... ...))) (progn (let* (... ... ... ...) (setq top ...) (setq bottom ...)))) (let ((offset (- end beg pre))) (org-element--cache-submit-request top (- bottom offset) offset)))) (set-match-data save-match-data-internal (quote evaporate))))
  (save-restriction (widen) (goto-char beg) (beginning-of-line) (let ((save-match-data-internal (match-data))) (unwind-protect (progn (let ((top (point)) (bottom (save-excursion ... ...))) (if (cond (... t) (... ...) (t ...)) (progn (let* ... ... ...))) (let ((offset ...)) (org-element--cache-submit-request top (- bottom offset) offset)))) (set-match-data save-match-data-internal (quote evaporate)))))
  (save-excursion (save-restriction (widen) (goto-char beg) (beginning-of-line) (let ((save-match-data-internal (match-data))) (unwind-protect (progn (let ((top ...) (bottom ...)) (if (cond ... ... ...) (progn ...)) (let (...) (org-element--cache-submit-request top ... offset)))) (set-match-data save-match-data-internal (quote evaporate))))))
  (progn (save-excursion (save-restriction (widen) (goto-char beg) (beginning-of-line) (let ((save-match-data-internal (match-data))) (unwind-protect (progn (let (... ...) (if ... ...) (let ... ...))) (set-match-data save-match-data-internal (quote evaporate)))))) (org-element--cache-set-timer (current-buffer)))
  (if (org-element--cache-active-p) (progn (save-excursion (save-restriction (widen) (goto-char beg) (beginning-of-line) (let ((save-match-data-internal (match-data))) (unwind-protect (progn (let ... ... ...)) (set-match-data save-match-data-internal (quote evaporate)))))) (org-element--cache-set-timer (current-buffer))))
  org-element--cache-after-change(261 268 0)
  insert("\n:" "LOGBOOK" ":\n:END:")
  (if (re-search-forward (concat "^[ 	]*:" drawer ":[ 	]*$") nil t) (progn (goto-char (match-end 0)) (or org-log-states-order-reversed (and (re-search-forward org-property-end-re nil t) (goto-char (1- (match-beginning 0)))))) (insert "\n:" drawer ":\n:END:") (beginning-of-line 0) (org-indent-line) (beginning-of-line 2) (org-indent-line) (end-of-line 0))
  (cond (drawer (if (re-search-forward (concat "^[ 	]*:" drawer ":[ 	]*$") nil t) (progn (goto-char (match-end 0)) (or org-log-states-order-reversed (and (re-search-forward org-property-end-re nil t) (goto-char (1- ...))))) (insert "\n:" drawer ":\n:END:") (beginning-of-line 0) (org-indent-line) (beginning-of-line 2) (org-indent-line) (end-of-line 0))) ((and org-log-state-notes-insert-after-drawers (save-excursion (forward-line) (looking-at org-drawer-regexp))) (forward-line) (while (looking-at org-drawer-regexp) (goto-char (match-end 0)) (re-search-forward org-property-end-re (point-max) t) (forward-line)) (forward-line -1)))
  (progn (org-back-to-heading t) (narrow-to-region (point) (save-excursion (outline-next-heading) (point))) (looking-at (concat org-outline-regexp "\\( *\\)[^\n]*" "\\(\n[^\n]*?" org-keyword-time-not-clock-regexp "[^\n]*\\)?")) (goto-char (match-end 0)) (cond (drawer (if (re-search-forward (concat "^[ 	]*:" drawer ":[ 	]*$") nil t) (progn (goto-char (match-end 0)) (or org-log-states-order-reversed (and (re-search-forward org-property-end-re nil t) (goto-char ...)))) (insert "\n:" drawer ":\n:END:") (beginning-of-line 0) (org-indent-line) (beginning-of-line 2) (org-indent-line) (end-of-line 0))) ((and org-log-state-notes-insert-after-drawers (save-excursion (forward-line) (looking-at org-drawer-regexp))) (forward-line) (while (looking-at org-drawer-regexp) (goto-char (match-end 0)) (re-search-forward org-property-end-re (point-max) t) (forward-line)) (forward-line -1))) (if org-log-states-order-reversed nil (and (= (char-after) 10) (forward-char 1)) (org-skip-over-state-notes) (skip-chars-backward " 	\n")))
  (if findpos (progn (org-back-to-heading t) (narrow-to-region (point) (save-excursion (outline-next-heading) (point))) (looking-at (concat org-outline-regexp "\\( *\\)[^\n]*" "\\(\n[^\n]*?" org-keyword-time-not-clock-regexp "[^\n]*\\)?")) (goto-char (match-end 0)) (cond (drawer (if (re-search-forward (concat "^[ 	]*:" drawer ":[ 	]*$") nil t) (progn (goto-char (match-end 0)) (or org-log-states-order-reversed (and ... ...))) (insert "\n:" drawer ":\n:END:") (beginning-of-line 0) (org-indent-line) (beginning-of-line 2) (org-indent-line) (end-of-line 0))) ((and org-log-state-notes-insert-after-drawers (save-excursion (forward-line) (looking-at org-drawer-regexp))) (forward-line) (while (looking-at org-drawer-regexp) (goto-char (match-end 0)) (re-search-forward org-property-end-re (point-max) t) (forward-line)) (forward-line -1))) (if org-log-states-order-reversed nil (and (= (char-after) 10) (forward-char 1)) (org-skip-over-state-notes) (skip-chars-backward " 	\n"))))
  (save-excursion (if findpos (progn (org-back-to-heading t) (narrow-to-region (point) (save-excursion (outline-next-heading) (point))) (looking-at (concat org-outline-regexp "\\( *\\)[^\n]*" "\\(\n[^\n]*?" org-keyword-time-not-clock-regexp "[^\n]*\\)?")) (goto-char (match-end 0)) (cond (drawer (if (re-search-forward (concat "^[ 	]*:" drawer ":[ 	]*$") nil t) (progn (goto-char ...) (or org-log-states-order-reversed ...)) (insert "\n:" drawer ":\n:END:") (beginning-of-line 0) (org-indent-line) (beginning-of-line 2) (org-indent-line) (end-of-line 0))) ((and org-log-state-notes-insert-after-drawers (save-excursion (forward-line) (looking-at org-drawer-regexp))) (forward-line) (while (looking-at org-drawer-regexp) (goto-char (match-end 0)) (re-search-forward org-property-end-re (point-max) t) (forward-line)) (forward-line -1))) (if org-log-states-order-reversed nil (and (= (char-after) 10) (forward-char 1)) (org-skip-over-state-notes) (skip-chars-backward " 	\n")))) (move-marker org-log-note-marker (point)) (setq org-log-note-purpose purpose org-log-note-state state org-log-note-previous-state prev-state org-log-note-how how org-log-note-extra extra org-log-note-effective-time (org-current-effective-time)) (add-hook (quote post-command-hook) (quote org-add-log-note) (quote append)))
  (save-restriction (save-excursion (if findpos (progn (org-back-to-heading t) (narrow-to-region (point) (save-excursion (outline-next-heading) (point))) (looking-at (concat org-outline-regexp "\\( *\\)[^\n]*" "\\(\n[^\n]*?" org-keyword-time-not-clock-regexp "[^\n]*\\)?")) (goto-char (match-end 0)) (cond (drawer (if (re-search-forward ... nil t) (progn ... ...) (insert "\n:" drawer ":\n:END:") (beginning-of-line 0) (org-indent-line) (beginning-of-line 2) (org-indent-line) (end-of-line 0))) ((and org-log-state-notes-insert-after-drawers (save-excursion ... ...)) (forward-line) (while (looking-at org-drawer-regexp) (goto-char ...) (re-search-forward org-property-end-re ... t) (forward-line)) (forward-line -1))) (if org-log-states-order-reversed nil (and (= (char-after) 10) (forward-char 1)) (org-skip-over-state-notes) (skip-chars-backward " 	\n")))) (move-marker org-log-note-marker (point)) (setq org-log-note-purpose purpose org-log-note-state state org-log-note-previous-state prev-state org-log-note-how how org-log-note-extra extra org-log-note-effective-time (org-current-effective-time)) (add-hook (quote post-command-hook) (quote org-add-log-note) (quote append))))
  (let* ((org-log-into-drawer (org-log-into-drawer)) (drawer (cond ((stringp org-log-into-drawer) org-log-into-drawer) (org-log-into-drawer "LOGBOOK")))) (save-restriction (save-excursion (if findpos (progn (org-back-to-heading t) (narrow-to-region (point) (save-excursion (outline-next-heading) (point))) (looking-at (concat org-outline-regexp "\\( *\\)[^\n]*" "\\(\n[^\n]*?" org-keyword-time-not-clock-regexp "[^\n]*\\)?")) (goto-char (match-end 0)) (cond (drawer (if ... ... ... ... ... ... ... ...)) ((and org-log-state-notes-insert-after-drawers ...) (forward-line) (while ... ... ... ...) (forward-line -1))) (if org-log-states-order-reversed nil (and (= ... 10) (forward-char 1)) (org-skip-over-state-notes) (skip-chars-backward " 	\n")))) (move-marker org-log-note-marker (point)) (setq org-log-note-purpose purpose org-log-note-state state org-log-note-previous-state prev-state org-log-note-how how org-log-note-extra extra org-log-note-effective-time (org-current-effective-time)) (add-hook (quote post-command-hook) (quote org-add-log-note) (quote append)))))
  org-add-log-setup(state #("DONE" 0 4 (face org-done)) #("WAITING" 0 7 (fontified t face org-todo)) findpos time)
  (progn (org-add-log-setup (quote state) org-state this (quote findpos) dolog))
  (if (and org-state dolog) (progn (org-add-log-setup (quote state) org-state this (quote findpos) dolog)))
  (progn (setq dolog (or (nth 1 (assoc org-state org-todo-log-states)) (nth 2 (assoc this org-todo-log-states)))) (if (and (eq dolog (quote note)) (eq org-inhibit-logging (quote note))) (setq dolog (quote time))) (if (or (and (not org-state) (not org-closed-keep-when-no-todo)) (and org-state (member org-state org-not-done-keywords) (not (member this org-not-done-keywords)))) (progn (org-add-planning-info nil nil (quote closed)))) (if (and now-done-p org-log-done) (progn (org-add-planning-info (quote closed) (org-current-effective-time)) (if (and (not dolog) (eq (quote note) org-log-done)) (org-add-log-setup (quote done) org-state this (quote findpos) (quote note))))) (if (and org-state dolog) (progn (org-add-log-setup (quote state) org-state this (quote findpos) dolog))))
  (if (and (or org-todo-log-states org-log-done) (not (eq org-inhibit-logging t)) (not (memq arg (quote (nextset previousset))))) (progn (setq dolog (or (nth 1 (assoc org-state org-todo-log-states)) (nth 2 (assoc this org-todo-log-states)))) (if (and (eq dolog (quote note)) (eq org-inhibit-logging (quote note))) (setq dolog (quote time))) (if (or (and (not org-state) (not org-closed-keep-when-no-todo)) (and org-state (member org-state org-not-done-keywords) (not (member this org-not-done-keywords)))) (progn (org-add-planning-info nil nil (quote closed)))) (if (and now-done-p org-log-done) (progn (org-add-planning-info (quote closed) (org-current-effective-time)) (if (and (not dolog) (eq (quote note) org-log-done)) (org-add-log-setup (quote done) org-state this (quote findpos) (quote note))))) (if (and org-state dolog) (progn (org-add-log-setup (quote state) org-state this (quote findpos) dolog)))))
  (let* ((match-data (match-data)) (startpos (point-at-bol)) (logging (let ((save-match-data-internal (match-data))) (unwind-protect (progn (org-entry-get nil "LOGGING" t t)) (set-match-data save-match-data-internal (quote evaporate))))) (org-log-done org-log-done) (org-log-repeat org-log-repeat) (org-todo-log-states org-todo-log-states) (org-inhibit-logging (if (equal arg 0) (progn (setq arg nil) (quote note)) org-inhibit-logging)) (this (match-string 1)) (hl-pos (match-beginning 0)) (head (org-get-todo-sequence-head this)) (ass (assoc head org-todo-kwd-alist)) (interpret (nth 1 ass)) (done-word (nth 3 ass)) (final-done-word (nth 4 ass)) (org-last-state (or this "")) (completion-ignore-case t) (member (member this org-todo-keywords-1)) (tail (cdr member)) (org-state (cond ((and org-todo-key-trigger (or (and ... ...) (and ... org-use-fast-todo-selection ...))) (org-fast-todo-selection)) ((and (equal arg (quote ...)) (or (not org-use-fast-todo-selection) (not org-todo-key-trigger))) (org-icompleting-read "State: " (mapcar (quote list) org-todo-keywords-1) nil t)) ((eq arg (quote right)) (if this (if tail (car tail) nil) (car org-todo-keywords-1))) ((eq arg (quote left)) (if (equal member org-todo-keywords-1) nil (if this (nth ... org-todo-keywords-1) (org-last org-todo-keywords-1)))) ((and (eq org-use-fast-todo-selection t) (equal arg (quote ...)) (setq arg nil))) (arg (cond ((equal arg "") nil) ((eq arg ...) nil) ((eq arg ...) (or done-word ...)) ((eq arg ...) (or ... ...)) ((eq arg ...) (let ... ...)) ((car ...)) ((stringp arg) (user-error "State `%s' not valid in this file" arg)) ((nth ... org-todo-keywords-1)))) ((null member) (or head (car org-todo-keywords-1))) ((equal this final-done-word) nil) ((null tail) nil) ((memq interpret (quote (type priority))) (if (eq this-command last-command) (car tail) (if (> ... 0) (or done-word ...) nil))) (t (car tail)))) (org-state (or (run-hook-with-args-until-success (quote org-todo-get-default-hook) org-state org-last-state) org-state)) (next (if org-state (concat " " org-state " ") " ")) (change-plist (list :type (quote todo-state-change) :from this :to org-state :position startpos)) dolog now-done-p) (if org-blocker-hook (progn (setq org-last-todo-state-is-todo (not (member this org-done-keywords))) (if (save-excursion (let ((save-match-data-internal ...)) (unwind-protect (progn ...) (set-match-data save-match-data-internal ...)))) nil (if (with-no-warnings (called-interactively-p (quote interactive))) (user-error "TODO state change from %s to %s blocked (by \"%s\")" this org-state org-block-entry-blocking) (message "TODO state change from %s to %s blocked (by \"%s\")" this org-state org-block-entry-blocking) (throw (quote exit) nil))))) (store-match-data match-data) (replace-match next t t) (cond ((equal this org-state) (message "TODO state was already %s" (org-trim next))) ((pos-visible-in-window-p hl-pos) (message "TODO state changed to %s" (org-trim next)))) (if head nil (setq head (org-get-todo-sequence-head org-state) ass (assoc head org-todo-kwd-alist) interpret (nth 1 ass) done-word (nth 3 ass) final-done-word (nth 4 ass))) (if (memq arg (quote (nextset previousset))) (progn (message "Keyword-Set %d/%d: %s" (- (length org-todo-sets) -1 (length (memq (assoc org-state org-todo-sets) org-todo-sets))) (length org-todo-sets) (mapconcat (quote identity) (assoc org-state org-todo-sets) " ")))) (setq org-last-todo-state-is-todo (not (member org-state org-done-keywords))) (setq now-done-p (and (member org-state org-done-keywords) (not (member this org-done-keywords)))) (and logging (org-local-logging logging)) (if (and (or org-todo-log-states org-log-done) (not (eq org-inhibit-logging t)) (not (memq arg (quote (nextset previousset))))) (progn (setq dolog (or (nth 1 (assoc org-state org-todo-log-states)) (nth 2 (assoc this org-todo-log-states)))) (if (and (eq dolog (quote note)) (eq org-inhibit-logging (quote note))) (setq dolog (quote time))) (if (or (and (not org-state) (not org-closed-keep-when-no-todo)) (and org-state (member org-state org-not-done-keywords) (not (member this org-not-done-keywords)))) (progn (org-add-planning-info nil nil (quote closed)))) (if (and now-done-p org-log-done) (progn (org-add-planning-info (quote closed) (org-current-effective-time)) (if (and (not dolog) (eq ... org-log-done)) (org-add-log-setup (quote done) org-state this (quote findpos) (quote note))))) (if (and org-state dolog) (progn (org-add-log-setup (quote state) org-state this (quote findpos) dolog))))) (org-todo-trigger-tag-changes org-state) (and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t)) (if org-provide-todo-statistics (progn (org-update-parent-todo-statistics))) (run-hooks (quote org-after-todo-state-change-hook)) (if (and arg (not (member org-state org-done-keywords))) (setq head (org-get-todo-sequence-head org-state))) (put-text-property (point-at-bol) (point-at-eol) (quote org-todo-head) head) (if now-done-p (progn (if (boundp (quote org-agenda-headline-snapshot-before-repeat)) (progn (let ((save-match-data-internal ...)) (unwind-protect (progn ...) (set-match-data save-match-data-internal ...))))) (org-auto-repeat-maybe org-state))) (if (and (outline-on-heading-p) (not (bolp)) (save-excursion (beginning-of-line 1) (looking-at org-todo-line-regexp)) (< (point) (+ 2 (or (match-end 2) (match-end 1))))) (progn (goto-char (or (match-end 2) (match-end 1))) (and (looking-at " ") (just-one-space)))) (if org-trigger-hook (progn (save-excursion (run-hook-with-args (quote org-trigger-hook) change-plist)))) (if commentp (progn (org-toggle-comment))))
  (catch (quote exit) (org-back-to-heading t) (if (org-in-commented-heading-p t) (progn (org-toggle-comment) (setq commentp t))) (if (looking-at org-outline-regexp) (goto-char (1- (match-end 0)))) (or (looking-at (concat " +" org-todo-regexp "\\( +\\|[ 	]*$\\)")) (looking-at "\\(?: *\\|[ 	]*$\\)")) (let* ((match-data (match-data)) (startpos (point-at-bol)) (logging (let ((save-match-data-internal (match-data))) (unwind-protect (progn (org-entry-get nil "LOGGING" t t)) (set-match-data save-match-data-internal (quote evaporate))))) (org-log-done org-log-done) (org-log-repeat org-log-repeat) (org-todo-log-states org-todo-log-states) (org-inhibit-logging (if (equal arg 0) (progn (setq arg nil) (quote note)) org-inhibit-logging)) (this (match-string 1)) (hl-pos (match-beginning 0)) (head (org-get-todo-sequence-head this)) (ass (assoc head org-todo-kwd-alist)) (interpret (nth 1 ass)) (done-word (nth 3 ass)) (final-done-word (nth 4 ass)) (org-last-state (or this "")) (completion-ignore-case t) (member (member this org-todo-keywords-1)) (tail (cdr member)) (org-state (cond ((and org-todo-key-trigger (or ... ...)) (org-fast-todo-selection)) ((and (equal arg ...) (or ... ...)) (org-icompleting-read "State: " (mapcar ... org-todo-keywords-1) nil t)) ((eq arg (quote right)) (if this (if tail ... nil) (car org-todo-keywords-1))) ((eq arg (quote left)) (if (equal member org-todo-keywords-1) nil (if this ... ...))) ((and (eq org-use-fast-todo-selection t) (equal arg ...) (setq arg nil))) (arg (cond (... nil) (... nil) (... ...) (... ...) (... ...) (...) (... ...) (...))) ((null member) (or head (car org-todo-keywords-1))) ((equal this final-done-word) nil) ((null tail) nil) ((memq interpret (quote ...)) (if (eq this-command last-command) (car tail) (if ... ... nil))) (t (car tail)))) (org-state (or (run-hook-with-args-until-success (quote org-todo-get-default-hook) org-state org-last-state) org-state)) (next (if org-state (concat " " org-state " ") " ")) (change-plist (list :type (quote todo-state-change) :from this :to org-state :position startpos)) dolog now-done-p) (if org-blocker-hook (progn (setq org-last-todo-state-is-todo (not (member this org-done-keywords))) (if (save-excursion (let (...) (unwind-protect ... ...))) nil (if (with-no-warnings (called-interactively-p ...)) (user-error "TODO state change from %s to %s blocked (by \"%s\")" this org-state org-block-entry-blocking) (message "TODO state change from %s to %s blocked (by \"%s\")" this org-state org-block-entry-blocking) (throw (quote exit) nil))))) (store-match-data match-data) (replace-match next t t) (cond ((equal this org-state) (message "TODO state was already %s" (org-trim next))) ((pos-visible-in-window-p hl-pos) (message "TODO state changed to %s" (org-trim next)))) (if head nil (setq head (org-get-todo-sequence-head org-state) ass (assoc head org-todo-kwd-alist) interpret (nth 1 ass) done-word (nth 3 ass) final-done-word (nth 4 ass))) (if (memq arg (quote (nextset previousset))) (progn (message "Keyword-Set %d/%d: %s" (- (length org-todo-sets) -1 (length (memq ... org-todo-sets))) (length org-todo-sets) (mapconcat (quote identity) (assoc org-state org-todo-sets) " ")))) (setq org-last-todo-state-is-todo (not (member org-state org-done-keywords))) (setq now-done-p (and (member org-state org-done-keywords) (not (member this org-done-keywords)))) (and logging (org-local-logging logging)) (if (and (or org-todo-log-states org-log-done) (not (eq org-inhibit-logging t)) (not (memq arg (quote (nextset previousset))))) (progn (setq dolog (or (nth 1 (assoc org-state org-todo-log-states)) (nth 2 (assoc this org-todo-log-states)))) (if (and (eq dolog (quote note)) (eq org-inhibit-logging (quote note))) (setq dolog (quote time))) (if (or (and (not org-state) (not org-closed-keep-when-no-todo)) (and org-state (member org-state org-not-done-keywords) (not ...))) (progn (org-add-planning-info nil nil (quote closed)))) (if (and now-done-p org-log-done) (progn (org-add-planning-info (quote closed) (org-current-effective-time)) (if (and ... ...) (org-add-log-setup ... org-state this ... ...)))) (if (and org-state dolog) (progn (org-add-log-setup (quote state) org-state this (quote findpos) dolog))))) (org-todo-trigger-tag-changes org-state) (and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t)) (if org-provide-todo-statistics (progn (org-update-parent-todo-statistics))) (run-hooks (quote org-after-todo-state-change-hook)) (if (and arg (not (member org-state org-done-keywords))) (setq head (org-get-todo-sequence-head org-state))) (put-text-property (point-at-bol) (point-at-eol) (quote org-todo-head) head) (if now-done-p (progn (if (boundp (quote org-agenda-headline-snapshot-before-repeat)) (progn (let (...) (unwind-protect ... ...)))) (org-auto-repeat-maybe org-state))) (if (and (outline-on-heading-p) (not (bolp)) (save-excursion (beginning-of-line 1) (looking-at org-todo-line-regexp)) (< (point) (+ 2 (or (match-end 2) (match-end 1))))) (progn (goto-char (or (match-end 2) (match-end 1))) (and (looking-at " ") (just-one-space)))) (if org-trigger-hook (progn (save-excursion (run-hook-with-args (quote org-trigger-hook) change-plist)))) (if commentp (progn (org-toggle-comment)))))
  (save-excursion (catch (quote exit) (org-back-to-heading t) (if (org-in-commented-heading-p t) (progn (org-toggle-comment) (setq commentp t))) (if (looking-at org-outline-regexp) (goto-char (1- (match-end 0)))) (or (looking-at (concat " +" org-todo-regexp "\\( +\\|[ 	]*$\\)")) (looking-at "\\(?: *\\|[ 	]*$\\)")) (let* ((match-data (match-data)) (startpos (point-at-bol)) (logging (let ((save-match-data-internal ...)) (unwind-protect (progn ...) (set-match-data save-match-data-internal ...)))) (org-log-done org-log-done) (org-log-repeat org-log-repeat) (org-todo-log-states org-todo-log-states) (org-inhibit-logging (if (equal arg 0) (progn (setq arg nil) (quote note)) org-inhibit-logging)) (this (match-string 1)) (hl-pos (match-beginning 0)) (head (org-get-todo-sequence-head this)) (ass (assoc head org-todo-kwd-alist)) (interpret (nth 1 ass)) (done-word (nth 3 ass)) (final-done-word (nth 4 ass)) (org-last-state (or this "")) (completion-ignore-case t) (member (member this org-todo-keywords-1)) (tail (cdr member)) (org-state (cond ((and org-todo-key-trigger ...) (org-fast-todo-selection)) ((and ... ...) (org-icompleting-read "State: " ... nil t)) ((eq arg ...) (if this ... ...)) ((eq arg ...) (if ... nil ...)) ((and ... ... ...)) (arg (cond ... ... ... ... ... ... ... ...)) ((null member) (or head ...)) ((equal this final-done-word) nil) ((null tail) nil) ((memq interpret ...) (if ... ... ...)) (t (car tail)))) (org-state (or (run-hook-with-args-until-success (quote org-todo-get-default-hook) org-state org-last-state) org-state)) (next (if org-state (concat " " org-state " ") " ")) (change-plist (list :type (quote todo-state-change) :from this :to org-state :position startpos)) dolog now-done-p) (if org-blocker-hook (progn (setq org-last-todo-state-is-todo (not (member this org-done-keywords))) (if (save-excursion (let ... ...)) nil (if (with-no-warnings ...) (user-error "TODO state change from %s to %s blocked (by \"%s\")" this org-state org-block-entry-blocking) (message "TODO state change from %s to %s blocked (by \"%s\")" this org-state org-block-entry-blocking) (throw ... nil))))) (store-match-data match-data) (replace-match next t t) (cond ((equal this org-state) (message "TODO state was already %s" (org-trim next))) ((pos-visible-in-window-p hl-pos) (message "TODO state changed to %s" (org-trim next)))) (if head nil (setq head (org-get-todo-sequence-head org-state) ass (assoc head org-todo-kwd-alist) interpret (nth 1 ass) done-word (nth 3 ass) final-done-word (nth 4 ass))) (if (memq arg (quote (nextset previousset))) (progn (message "Keyword-Set %d/%d: %s" (- (length org-todo-sets) -1 (length ...)) (length org-todo-sets) (mapconcat (quote identity) (assoc org-state org-todo-sets) " ")))) (setq org-last-todo-state-is-todo (not (member org-state org-done-keywords))) (setq now-done-p (and (member org-state org-done-keywords) (not (member this org-done-keywords)))) (and logging (org-local-logging logging)) (if (and (or org-todo-log-states org-log-done) (not (eq org-inhibit-logging t)) (not (memq arg (quote ...)))) (progn (setq dolog (or (nth 1 ...) (nth 2 ...))) (if (and (eq dolog ...) (eq org-inhibit-logging ...)) (setq dolog (quote time))) (if (or (and ... ...) (and org-state ... ...)) (progn (org-add-planning-info nil nil ...))) (if (and now-done-p org-log-done) (progn (org-add-planning-info ... ...) (if ... ...))) (if (and org-state dolog) (progn (org-add-log-setup ... org-state this ... dolog))))) (org-todo-trigger-tag-changes org-state) (and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t)) (if org-provide-todo-statistics (progn (org-update-parent-todo-statistics))) (run-hooks (quote org-after-todo-state-change-hook)) (if (and arg (not (member org-state org-done-keywords))) (setq head (org-get-todo-sequence-head org-state))) (put-text-property (point-at-bol) (point-at-eol) (quote org-todo-head) head) (if now-done-p (progn (if (boundp (quote org-agenda-headline-snapshot-before-repeat)) (progn (let ... ...))) (org-auto-repeat-maybe org-state))) (if (and (outline-on-heading-p) (not (bolp)) (save-excursion (beginning-of-line 1) (looking-at org-todo-line-regexp)) (< (point) (+ 2 (or ... ...)))) (progn (goto-char (or (match-end 2) (match-end 1))) (and (looking-at " ") (just-one-space)))) (if org-trigger-hook (progn (save-excursion (run-hook-with-args (quote org-trigger-hook) change-plist)))) (if commentp (progn (org-toggle-comment))))))
  (let ((org-blocker-hook org-blocker-hook) commentp case-fold-search) (if (equal arg (quote (64))) (progn (setq arg nil org-blocker-hook nil))) (if (and org-blocker-hook (or org-inhibit-blocking (org-entry-get nil "NOBLOCKING"))) (progn (setq org-blocker-hook nil))) (save-excursion (catch (quote exit) (org-back-to-heading t) (if (org-in-commented-heading-p t) (progn (org-toggle-comment) (setq commentp t))) (if (looking-at org-outline-regexp) (goto-char (1- (match-end 0)))) (or (looking-at (concat " +" org-todo-regexp "\\( +\\|[ 	]*$\\)")) (looking-at "\\(?: *\\|[ 	]*$\\)")) (let* ((match-data (match-data)) (startpos (point-at-bol)) (logging (let (...) (unwind-protect ... ...))) (org-log-done org-log-done) (org-log-repeat org-log-repeat) (org-todo-log-states org-todo-log-states) (org-inhibit-logging (if (equal arg 0) (progn ... ...) org-inhibit-logging)) (this (match-string 1)) (hl-pos (match-beginning 0)) (head (org-get-todo-sequence-head this)) (ass (assoc head org-todo-kwd-alist)) (interpret (nth 1 ass)) (done-word (nth 3 ass)) (final-done-word (nth 4 ass)) (org-last-state (or this "")) (completion-ignore-case t) (member (member this org-todo-keywords-1)) (tail (cdr member)) (org-state (cond (... ...) (... ...) (... ...) (... ...) (...) (arg ...) (... ...) (... nil) (... nil) (... ...) (t ...))) (org-state (or (run-hook-with-args-until-success ... org-state org-last-state) org-state)) (next (if org-state (concat " " org-state " ") " ")) (change-plist (list :type (quote todo-state-change) :from this :to org-state :position startpos)) dolog now-done-p) (if org-blocker-hook (progn (setq org-last-todo-state-is-todo (not ...)) (if (save-excursion ...) nil (if ... ... ... ...)))) (store-match-data match-data) (replace-match next t t) (cond ((equal this org-state) (message "TODO state was already %s" (org-trim next))) ((pos-visible-in-window-p hl-pos) (message "TODO state changed to %s" (org-trim next)))) (if head nil (setq head (org-get-todo-sequence-head org-state) ass (assoc head org-todo-kwd-alist) interpret (nth 1 ass) done-word (nth 3 ass) final-done-word (nth 4 ass))) (if (memq arg (quote (nextset previousset))) (progn (message "Keyword-Set %d/%d: %s" (- ... -1 ...) (length org-todo-sets) (mapconcat ... ... " ")))) (setq org-last-todo-state-is-todo (not (member org-state org-done-keywords))) (setq now-done-p (and (member org-state org-done-keywords) (not (member this org-done-keywords)))) (and logging (org-local-logging logging)) (if (and (or org-todo-log-states org-log-done) (not (eq org-inhibit-logging t)) (not (memq arg ...))) (progn (setq dolog (or ... ...)) (if (and ... ...) (setq dolog ...)) (if (or ... ...) (progn ...)) (if (and now-done-p org-log-done) (progn ... ...)) (if (and org-state dolog) (progn ...)))) (org-todo-trigger-tag-changes org-state) (and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t)) (if org-provide-todo-statistics (progn (org-update-parent-todo-statistics))) (run-hooks (quote org-after-todo-state-change-hook)) (if (and arg (not (member org-state org-done-keywords))) (setq head (org-get-todo-sequence-head org-state))) (put-text-property (point-at-bol) (point-at-eol) (quote org-todo-head) head) (if now-done-p (progn (if (boundp ...) (progn ...)) (org-auto-repeat-maybe org-state))) (if (and (outline-on-heading-p) (not (bolp)) (save-excursion (beginning-of-line 1) (looking-at org-todo-line-regexp)) (< (point) (+ 2 ...))) (progn (goto-char (or ... ...)) (and (looking-at " ") (just-one-space)))) (if org-trigger-hook (progn (save-excursion (run-hook-with-args ... change-plist)))) (if commentp (progn (org-toggle-comment)))))))
  (if (and (org-region-active-p) org-loop-over-headlines-in-active-region) (let ((cl (if (eq org-loop-over-headlines-in-active-region (quote start-level)) (quote region-start-level) (quote region))) org-loop-over-headlines-in-active-region) (org-map-entries (list (quote org-todo) arg) org-loop-over-headlines-in-active-region cl (if (outline-invisible-p) (org-end-of-subtree nil t)))) (if (equal arg (quote (16))) (setq arg (quote nextset))) (if (equal arg -1) (progn (org-cancel-repeater) (setq arg nil))) (let ((org-blocker-hook org-blocker-hook) commentp case-fold-search) (if (equal arg (quote (64))) (progn (setq arg nil org-blocker-hook nil))) (if (and org-blocker-hook (or org-inhibit-blocking (org-entry-get nil "NOBLOCKING"))) (progn (setq org-blocker-hook nil))) (save-excursion (catch (quote exit) (org-back-to-heading t) (if (org-in-commented-heading-p t) (progn (org-toggle-comment) (setq commentp t))) (if (looking-at org-outline-regexp) (goto-char (1- (match-end 0)))) (or (looking-at (concat " +" org-todo-regexp "\\( +\\|[ 	]*$\\)")) (looking-at "\\(?: *\\|[ 	]*$\\)")) (let* ((match-data (match-data)) (startpos (point-at-bol)) (logging (let ... ...)) (org-log-done org-log-done) (org-log-repeat org-log-repeat) (org-todo-log-states org-todo-log-states) (org-inhibit-logging (if ... ... org-inhibit-logging)) (this (match-string 1)) (hl-pos (match-beginning 0)) (head (org-get-todo-sequence-head this)) (ass (assoc head org-todo-kwd-alist)) (interpret (nth 1 ass)) (done-word (nth 3 ass)) (final-done-word (nth 4 ass)) (org-last-state (or this "")) (completion-ignore-case t) (member (member this org-todo-keywords-1)) (tail (cdr member)) (org-state (cond ... ... ... ... ... ... ... ... ... ... ...)) (org-state (or ... org-state)) (next (if org-state ... " ")) (change-plist (list :type ... :from this :to org-state :position startpos)) dolog now-done-p) (if org-blocker-hook (progn (setq org-last-todo-state-is-todo ...) (if ... nil ...))) (store-match-data match-data) (replace-match next t t) (cond ((equal this org-state) (message "TODO state was already %s" ...)) ((pos-visible-in-window-p hl-pos) (message "TODO state changed to %s" ...))) (if head nil (setq head (org-get-todo-sequence-head org-state) ass (assoc head org-todo-kwd-alist) interpret (nth 1 ass) done-word (nth 3 ass) final-done-word (nth 4 ass))) (if (memq arg (quote ...)) (progn (message "Keyword-Set %d/%d: %s" ... ... ...))) (setq org-last-todo-state-is-todo (not (member org-state org-done-keywords))) (setq now-done-p (and (member org-state org-done-keywords) (not ...))) (and logging (org-local-logging logging)) (if (and (or org-todo-log-states org-log-done) (not ...) (not ...)) (progn (setq dolog ...) (if ... ...) (if ... ...) (if ... ...) (if ... ...))) (org-todo-trigger-tag-changes org-state) (and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t)) (if org-provide-todo-statistics (progn (org-update-parent-todo-statistics))) (run-hooks (quote org-after-todo-state-change-hook)) (if (and arg (not ...)) (setq head (org-get-todo-sequence-head org-state))) (put-text-property (point-at-bol) (point-at-eol) (quote org-todo-head) head) (if now-done-p (progn (if ... ...) (org-auto-repeat-maybe org-state))) (if (and (outline-on-heading-p) (not ...) (save-excursion ... ...) (< ... ...)) (progn (goto-char ...) (and ... ...))) (if org-trigger-hook (progn (save-excursion ...))) (if commentp (progn (org-toggle-comment))))))))
  org-todo(nil)
  call-interactively(org-todo nil nil)


Hopefully this will be useful in tracking this bug.

Thanks,

Alan

-- 
OpenPGP Key ID : 040D0A3B4ED2E5C7

[-- Attachment #2: Type: application/pgp-signature, Size: 494 bytes --]

             reply	other threads:[~2014-07-09  8:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-09  8:11 Alan Schmitt [this message]
2014-07-11  6:50 ` cache problem, with ECM Alan Schmitt
2014-07-11  9:34   ` Daniel Clemente
2014-07-11  9:51     ` Alan Schmitt
2014-07-17 14:43 ` Nicolas Goaziou
2014-07-18  6:33   ` Alan Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2bnsz2bq4.fsf@top-wifi.irisa.fr \
    --to=alan.schmitt@polytechnique.org \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).