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: Carsten Dominik
Subject: Re: [O] Agenda todo filter order
Date: Tue, 10 May 2011 08:59:16 +0200

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]