emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Bug: Recurring items NEVER show up in timeline unaccompanied


From: Nick Dokos
Subject: Re: [O] Bug: Recurring items NEVER show up in timeline unaccompanied
Date: Tue, 22 Mar 2011 16:10:55 -0400

Some more comments and another bug in org-timeline:

o a repeater always gets reported on its initial date - it only gets reported
  on subsequent instances iff it coincides with some other entry that will be
  reported on that date.

o the initial comment of org-timeline says "Only entries with a time
  stamp of today or later will be listed." However, in the let*, we have
    (let* ((dopast t)
           ...
  so by default we get past dates as well.

o [the additional bug] if dopast is set to nil in the let*, then we run the
  following code to get rid of past dates:

    (if (not dopast)
        ;; Remove past dates from the list of dates.
        (setq day-numbers (delq nil (mapcar (lambda(x)
                                              (if (>= x today) x nil))
                                            day-numbers))))

  But day-numbers isn't just numbers: it's a list of day numbers
  interspersed with gap information:

   (733451 (:omitted . 28) 733479 (:omitted . 5) 733484 (:omitted . 21) 733505 
(:omitted . 15) 733520 ...)
  and the mapcar function chokes when it has to deal with a gap argument.


Since there is no way to set dopast from the outside, perhaps the thing
to do is to remove both it and the above code (as well as one additional
instance of the variable) and declare that org-timeline will always do
both past and future. Or, given some global option variable, it can be
set to that value, in which case the code above needs to be fixed to
deal with the gaps.

Also, some stopping point will need to be provided. Right now, that is
the last explicit date in the file, but in the presence of repeaters
(and assuming that org-timeline gets modified to deal with them), that
natural stopping point gets pushed all the way to infinity, so some
other way will need to be provided to stop the enumeration.

Comments?

Nick

  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]