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