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

on opmlChanged (url) {
		<<3/31/02; 5:53:05 PM by JES
			<<Set adrsub^.timeReceivedLastNotification to now.
		<<3/27/02; 7:20:51 PM by JES
			<<Respect the flLogNotifications pref.
		<<3/27/02; 7:13:06 PM by JES
			<<Log the notification to the events page.
		<<3/27/02; 5:14:04 PM by JES
			<<Created. Handle notification of changed outlines. When we get a notification for an outline we're subscribed to, pre-cache the xml text, and bloden the person's name in the Buddies outline.
	local (adrdata = radio.outliner.init ());
	local (adrsub = @adrdata^.subscriptions.[url]);
	if defined (adrsub^) {
		local (startticks = clock.ticks ());
		radio.outliner.preCacheUrl (url);
		bundle { //call callbacks
			local (adr);
			for adr in @adrdata^.callbacks.subscriptionChanged {
				try {
					while typeOf (adr^) == addressType {
						adr = adr^};
					adr^ (adrsub)}}};
		radio.outliner.boldenBuddy (url);
		radio.outliner.openBuddies (true);
		local (link = "<a href=\"" + url + "\">" + adrsub^.author + "</a>");
		adrsub^.timeReceivedLastNotification = ();
		if adrdata^.prefs.flLogNotifications {
			radio.log.add ("Outline change", link + " changed.", startticks)}}}
<<bundle //debugging
	<<local (url = "")
	<<opmlChanged (url)

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.