[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Agenda todo filter order
From: |
Bernt Hansen |
Subject: |
Re: [O] Agenda todo filter order |
Date: |
Tue, 10 May 2011 08:39:18 -0400 |
User-agent: |
Gnus/5.110017 (No Gnus v0.17) Emacs/23.2 (gnu/linux) |
Thanks! :)
Regards,
Bernt
Carsten Dominik <address@hidden> writes:
> I have pushed this patch.
>
> - Carsten
>
> On 8.5.2011, at 20:17, Bernt Hansen wrote:
>
>> Hi Carsten,
>>
>> I think this one works :) \o/
>>
>> Thanks!
>>
>> -Bernt
>>
>>
>> Carsten Dominik <address@hidden> writes:
>>
>>> Hi Bernt,
>>>
>>> here is another try, I fixed a logical bug in the previous patch...
>>> Again, this patch replaces the previous one.
>>>
>>> Changes at master
>>> Modified lisp/org-agenda.el
>>> diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
>>> index 609edd4..84e3247 100644
>>> --- a/lisp/org-agenda.el
>>> +++ b/lisp/org-agenda.el
>>> @@ -4575,13 +4575,12 @@ the documentation of `org-diary'."
>>> (catch :skip
>>> (save-match-data
>>> (beginning-of-line)
>>> + (org-agenda-skip)
>>> (setq beg (point) end (save-excursion (outline-next-heading) (point)))
>>> (when (org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item
>>> end)
>>> (goto-char (1+ beg))
>>> (or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
>>> (throw :skip nil)))
>>> - (goto-char beg)
>>> - (org-agenda-skip)
>>> (goto-char (match-beginning 1))
>>> (setq marker (org-agenda-new-marker (match-beginning 0))
>>> category (org-get-category)
>>> Modified lisp/org.el
>>> diff --git a/lisp/org.el b/lisp/org.el
>>> index acbb261..975266c 100644
>>> --- a/lisp/org.el
>>> +++ b/lisp/org.el
>>> @@ -12437,17 +12437,31 @@ only lines with a TODO keyword are included in
>>> the output."
>>> ;; selective inheritance, remove uninherited ones
>>> (setcdr (car tags-alist)
>>> (org-remove-uninherited-tags (cdar tags-alist))))
>>> - (when (and (or (not todo-only)
>>> - (and (member todo org-not-done-keywords)
>>> - (or (not
>>> org-agenda-tags-todo-honor-ignore-options)
>>> - (not
>>> (org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item)))))
>>> - (let ((case-fold-search t)) (eval matcher))
>>> - (or
>>> - (not (member org-archive-tag tags-list))
>>> - ;; we have an archive tag, should we use this anyway?
>>> - (or (not org-agenda-skip-archived-trees)
>>> - (and (eq action 'agenda) org-agenda-archives-mode))))
>>> - (unless (eq action 'sparse-tree) (org-agenda-skip))
>>> + (when (and
>>> +
>>> + ;; eval matcher only when the todo condition is OK
>>> + (and (or (not todo-only) (member todo org-not-done-keywords))
>>> + (let ((case-fold-search t)) (eval matcher)))
>>> +
>>> + ;; Call the skipper, but return t if it does not skip,
>>> + ;; so that the `and' form continues evaluating
>>> + (progn
>>> + (unless (eq action 'sparse-tree) (org-agenda-skip))
>>> + t)
>>> +
>>> + ;; Check if timestamps are deselecting this entry
>>> + (or (not todo-only)
>>> + (and (member todo org-not-done-keywords)
>>> + (or (not org-agenda-tags-todo-honor-ignore-options)
>>> + (not
>>> (org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item)))))
>>> +
>>> + ;; Extra check for the archive tag
>>> + ;; FIXME: Does the skipper already do this????
>>> + (or
>>> + (not (member org-archive-tag tags-list))
>>> + ;; we have an archive tag, should we use this anyway?
>>> + (or (not org-agenda-skip-archived-trees)
>>> + (and (eq action 'agenda) org-agenda-archives-mode))))
>>>
>>> ;; select this headline
>>>