[Top][All Lists]
[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
>>