Hello, I'm trying to have a custom agenda where I say I want to skip some tags. I wrote a function that does what I want (it takes two arguments: the list of tags to keep, and a boolean that says whether entries with no tags should be kept). The function works well, but for some reason it is not called. Here is how I try to call it:
("w" "Work Agenda" ((agenda "" ((org-agenda-skip-function '(org-agenda-skip-entry-unless-tags my-work-tags t)))) I make org-agenda-skip-entry-unless-tags as debugged, and when I call this agenda view, I don't go in the debugger, so I guess it is not called. I tried adding a "lambda ()" at the beginning, or getting rid of the quote, but it does not work. Any suggestion as to what I'm doing wrong? Thanks, Alan PS: here are the functions this depends on (defun as/has-tag (tags-to-test taglist &optional trueifempty) "return true if a tag in TAGS-TO-TEST is in TAGLIST. If TRUEIFEMPTY is non-nil, then returns true if TAGS-TO-TEST is empty." (or (and trueifempty (not tags-to-test)) (catch 'match (mapc (lambda (tag) (when (member tag taglist) (throw 'match t))) tags-to-test) nil)) ) (defun org-agenda-skip-entry-unless-tags (tags &optional keepempty) "Skip entries that do not contain specified tags. TAGS is a list specifying which tags should be displayed. Inherited tags will be considered. If keepempty is non-nil, entries with no tags will be kept." (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))) (current-headline (or (and (org-at-heading-p) (point)) (save-excursion (org-back-to-heading))))) (let ((atags (org-get-tags-at current-headline))) (if (as/has-tag atags tags keepempty) nil next-headline))))