Hi Toby,

Toby Cubitt <ts...@cantab.net> writes:

> There appears to be a bug in how org-agenda-skip-if parses the list of
> CONDITIONS supplied to it.

Applied, thanks.  

> The combination '(nottodo todo) is a valid condition, matching todo items
> whose state isn't a todo-type keyword (according to the keyword types
> defined in `org-todo-keywords'). But `org-agenda-skip-if' tests first for
> conditions of the form '(todo x) using (memq 'todo conditions), which
> mistakenly picks up '(nottodo todo) as well.
>
> Simply reversing the order of the memq tests for 'todo and 'nottodo fixes
> this particular case, which is what the attached patch does.

Thanks for the explanations.

> Note that there's still a slightly different issue with combinations of
> multiple todo tests, which this patch does not fix. The docstring
> suggests that CONDITIONS is allowed to be a list of multiple
> tests. E.g. '(nottodo CANCELLED todo done) should match any done state
> except CANCELLED. But, faced with this combination,
> `organ-agenda-skip-if' will only apply the first '(nottodo CANCELLED)
> test, and ignores the second.
>
> However, it's not clear to me whether this is a problem with the code or
> the docstring. Perhaps it was never intended to support combinations of
> multiple todo tests.

I don't know.  If someone can digg this issue further and report what
should be fixed, that'd help.

Thanks!

-- 
 Bastien

Reply via email to