Monday, November 08, 2010 at 12:06 AM.


on visit (adr, visitproc) {
	on dovisit (adr) {
		if not visitproc^ (adr) {
			return (false)}; <<unwind recursion
		if typeOf (adr^) == tabletype {
			local (tableindex, cttableitems);
			cttableitems = sizeof (adr^); <<sizeof a table is the number of items in it
			for tableindex = 1 to cttableitems {
				if not dovisit (@adr^ [tableindex]) {
					return (false)}; <<unwind recursion
				sys.systemTask ()}}; <<allow windows to update; give other programs a shot at the processor
		return (true)};
	return (dovisit (adr))}

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.