]> git.neil.brown.name Git - plato.git/commitdiff
ical: allow printing part of an infinite list of dates
authorNeilBrown <neilb@suse.de>
Tue, 31 Dec 2013 00:44:03 +0000 (11:44 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 31 Dec 2013 00:44:03 +0000 (11:44 +1100)
We limit to 100 for now.

lib/ical.py

index d31df50e90dc98aabf75368a6024ff05d6823a72..d7fadd61304e0d0706089409dbdf44072c71c738 100644 (file)
@@ -610,12 +610,12 @@ byaction = {
     'BYSECOND': [ -1,      1,       1,      1,     1,     1,      1],
 }
 
-def make_dates(start, rr):
+def make_dates(start, rr, max):
     ret = []
     last = start
     next = last
     s = date_seq(start, rr.interval, rr.step)
-    while (rr.count != None and len(ret) < rr.count) or (rr.end != None and last.before(rr.end)):
+    while (rr.count == None or len(ret) < rr.count) and (rr.end == None or last.before(rr.end)) and len(ret) < max:
         n1 = [ copy.copy(next) ]
         for bn in byorder:
             if bn not in rr.bylist:
@@ -732,7 +732,7 @@ for arg in sys.argv[1:]:
 
 m = []
 if start and rr:
-    m = make_dates(start, rr)
+    m = make_dates(start, rr, 100)
 if rdate:
     m.extend(rdate)
     m = sort_and_trim(m)