Thanks! :) Regards, Bernt
Carsten Dominik <carsten.domi...@gmail.com> 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 <carsten.domi...@gmail.com> 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 >>>