Re: [O] Setting a parametric org-agenda-skip-function?

2013-06-27 Thread Bastien
Hi Alan,

Alan Schmitt alan.schm...@polytechnique.org writes:

 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'd try edebug-defun'ing `org-agenda-skip-eval' and track what's wrong
from there.

HTH,

-- 
 Bastien



Re: [O] Setting a parametric org-agenda-skip-function?

2013-06-27 Thread Alan Schmitt
Hi Bastien,

b...@gnu.org writes:

 Hi Alan,

 Alan Schmitt alan.schm...@polytechnique.org writes:

 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'd try edebug-defun'ing `org-agenda-skip-eval' and track what's wrong
 from there.

Thank you for the suggestion. Unfortunately I don't know how to step
inside the '(eval form)' bit: if I hit 'i' edebug tells me eval is a
built-in function. So I could just skip over it but I won't see what
the problem is.

Alan



Re: [O] Setting a parametric org-agenda-skip-function?

2013-06-25 Thread Alan Schmitt
strom...@nexgo.de writes:

 Alan Schmitt writes:
 It would be great except for the following: as soon as I use the
 debugger, my function works as intended. Is there any reason why using
 the debugger would change the behavior of a function?

 Sorry to be of no actual help, but if it's any consolation to you, this
 is common enough to have its own name: what you have there is called a
 Heisenbug.

Thanks Achim and Anthony. If I ever make progress on this, I'll let you
know.

Alan



Re: [O] Setting a parametric org-agenda-skip-function?

2013-06-24 Thread Alan Schmitt
Hello,

I'm making some progress, but things are getting stranger.

First, the reason I could not debug the function is because it is called
either using eval or apply, and it seems that in that case one does
not enter the debugger. However, if one is already in the debugger, then
the function will be debugged.

It would be great except for the following: as soon as I use the
debugger, my function works as intended. Is there any reason why using
the debugger would change the behavior of a function?

Thanks,

Alan



Re: [O] Setting a parametric org-agenda-skip-function?

2013-06-24 Thread Achim Gratz
Alan Schmitt writes:
 It would be great except for the following: as soon as I use the
 debugger, my function works as intended. Is there any reason why using
 the debugger would change the behavior of a function?

Sorry to be of no actual help, but if it's any consolation to you, this
is common enough to have its own name: what you have there is called a
Heisenbug.


Regards,
Achim.
-- 
+[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]+

Wavetables for the Terratec KOMPLEXER:
http://Synth.Stromeko.net/Downloads.html#KomplexerWaves




Re: [O] Setting a parametric org-agenda-skip-function?

2013-06-23 Thread Alan Schmitt
Hello,

alan.schm...@polytechnique.org writes:

 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'm still trying to investigate this, but I can't find out how to step
in the debugger for this. I tried using a skip everything function,
defined as:

(defun as/skip-everything ()
  (let ((next-headline (save-excursion (or (outline-next-heading) 
(point-max)
next-headline))
)

and it is taken into account. However, I can't seem to debug this
function (if I C-u C-M-x it, running the agenda generation command
works, and everything is skipped, but I don't get into the
debugger). This is quite strange because I can debug skipping functions
for tags-todo blocks, but for some reason I cannot debug skipping
functions for agenda blocks.

Is there something special about how skipping functions work with agenda
blocks? I'd appreciate any hint on how to try to debug this.

Thanks,

Alan



[O] Setting a parametric org-agenda-skip-function?

2013-06-21 Thread Alan Schmitt
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