Friday, March 25, 2011 at 12:00 AM.
system.verbs.builtins.mainResponder.calendar.visitReverseChronologic
on visitReverseChronologic (adrcal, adrvisit, flDayLevel=false, maxDays=nil) {
<<Changes
<<3/24/11; 9:31:57 AM by DW
<<Add optional param, maxDays. If non-nil, limits the number of days we're willing to go back in time. Used in River2.
<<6/1/08; 10:29:09 AM by DW
<<Add optional param, flDayLevel, if true, we don't dive into the days, we just visit the days themselves. Useful if you want do an HTML rendering of an archive on a day level.
<<5/31/08; 7:51:41 PM by DW
<<We were mistakenly calling the local test "visit" instead of the parameter.
<<5/31/08; 7:20:23 PM by DW
<<Created. Visit the elements of a calendar in reverse-chronologic order.
local (i, j, k, adryear, adrmonth, adrday, ctdays = 0);
for i = sizeof (adrcal^) downto 1 {
adryear = @adrcal^ [i];
for j = sizeof (adryear^) downto 1 {
adrmonth = @adryear^ [j];
for k = sizeof (adrmonth^) downto 1 {
adrday = @adrmonth^ [k];
if flDayLevel {
if not adrvisit^ (adrday) {
return}}
else {
local (l, adritem);
for l = sizeof (adrday^) downto 1 {
adritem = @adrday^ [l];
if not adrvisit^ (adritem) {
return}}};
if maxDays != nil { //3/24/11 by DW
if ++ctdays >= maxDays {
return}}}}}}
<<bundle //test code
<<local (ct = 0)
<<on visit (adr)
<<msg (ct++)
<<scratchpad.adr = adr
<<return (true)
<<window.about ()
<<visitReverseChronologic (@config.river2.river, @visit, maxdays:5)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.