emacs-orgmode
[Top][All Lists]
Advanced

[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
>>> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]