On 2015-12-14, at 21:48, Nick Dokos <ndo...@gmail.com> wrote:
> Marcin Borkowski <mb...@mbork.pl> writes: > >>> On 2015-12-12, at 09:53, Nicolas Goaziou <m...@nicolasgoaziou.fr> wrote: >>> >>>> You can use a dedicated function in `org-agenda-skip-function' for that >>>> (e.g., ignore task if one of its parents is a done task). >> >> OK, so it doesn't work (probably because I'm doing something wrong...) >> >> I did this: >> >> (defun mbork/org-agenda-skip-if-parent-done () >> "Return t if any of the parents of the current entry is a DONE >> item." >> (save-excursion >> (catch 'done >> (while (org-up-heading-safe) >> (if (org-entry-is-done-p) >> (throw 'done t)))))) >> >> (setq org-agenda-custom-commands >> '(("n" >> "Agenda and TODOs" >> ((agenda "") >> (alltodo "" ((org-agenda-skip-function >> #'mbork/org-agenda-skip-if-parent-done))))))) >> >> and I see this: >> >> and: Wrong type argument: integer-or-marker-p, t >> >> What may be the problem? How do I even debug this? >> > > Are you testing it with emacs -q -l /path/to/min/org-init.el? > If not, you probably should: I don't get any errors with the > stuff above in my minimal org file, which leads me to suspect > it's something in (the rest of) your configuration. Strange. I have the same error even with emacs -q, with minimal Org config - the above function and one simple agenda file, containing this: * DONE done ** TODO todo Org-mode version 8.2.10 (release_8.2.10 @ /usr/local/share/emacs/25.0.50/lisp/org/) Any hints? Here's the debugger output: --8<---------------cut here---------------start------------->8--- Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p t) goto-char(t) (and (setq to (or (org-agenda-skip-eval org-agenda-skip-function-global) (org-agenda-skip-eval org-agenda-skip-function))) (goto-char to)) (or (save-excursion (goto-char p) (looking-at comment-start-skip)) (and org-agenda-skip-archived-trees (not org-agenda-archives-mode) (get-text-property p :org-archived) (org-end-of-subtree t)) (and org-agenda-skip-comment-trees (get-text-property p :org-comment) (org-end-of-subtree t)) (and (setq to (or (org-agenda-skip-eval org-agenda-skip-function-global) (org-agenda-skip-eval org-agenda-skip-function))) (goto-char to)) (org-in-src-block-p t)) (if (or (save-excursion (goto-char p) (looking-at comment-start-skip)) (and org-agenda-skip-archived-trees (not org-agenda-archives-mode) (get-text-property p :org-archived) (org-end-of-subtree t)) (and org-agenda-skip-comment-trees (get-text-property p :org-comment) (org-end-of-subtree t)) (and (setq to (or (org-agenda-skip-eval org-agenda-skip-function-global) (org-agenda-skip-eval org-agenda-skip-function))) (goto-char to)) (org-in-src-block-p t)) (progn (throw :skip t))) (let ((p (point-at-bol)) to) (if (or (save-excursion (goto-char p) (looking-at comment-start-skip)) (and org-agenda-skip-archived-trees (not org-agenda-archives-mode) (get-text-property p :org-archived) (org-end-of-subtree t)) (and org-agenda-skip-comment-trees (get-text-property p :org-comment) (org-end-of-subtree t)) (and (setq to (or (org-agenda-skip-eval org-agenda-skip-function-global) (org-agenda-skip-eval org-agenda-skip-function))) (goto-char to)) (org-in-src-block-p t)) (progn (throw :skip t)))) org-agenda-skip() org-agenda-get-todos() org-agenda-get-day-entries("/home/mbork/org/emacs.org" (12 16 2015) :todo) org-todo-list(nil) funcall-interactively(org-todo-list nil) call-interactively(org-todo-list) (let ((org-agenda-skip-function (function mbork/org-agenda-skip-if-parent-done))) (call-interactively (quote org-todo-list))) (let nil (let ((org-agenda-skip-function (function mbork/org-agenda-skip-if-parent-done))) (call-interactively (quote org-todo-list)))) eval((let nil (let ((org-agenda-skip-function (function mbork/org-agenda-skip-if-parent-done))) (call-interactively (quote org-todo-list))))) org-let2(nil ((org-agenda-skip-function (function mbork/org-agenda-skip-if-parent-done))) (call-interactively (quote org-todo-list))) org-agenda-run-series("Agenda and TODOs" (((agenda "") (alltodo "" ((org-agenda-skip-function (function mbork/org-agenda-skip-if-parent-done))))))) org-agenda(nil) funcall-interactively(org-agenda nil) call-interactively(org-agenda nil nil) command-execute(org-agenda) --8<---------------cut here---------------end--------------->8--- -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University