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

on includeFile (fname, pta=nil) {
		<<11/28/01; 6:30:24 PM by DW
			<<Read the file instead of getting its text from the cache.
		<<11/12/01; 8:30:17 PM by JES
			<<Made pta an optional parameter. If nil, then get the page table address with a call to html.getPageTableAddress.
		<<8/2/01; 5:03:06 PM by JES
			<<Get the text or the opmlAsText of a file, given the name of the file.
			<<If the file doesn't exist, then the empty string is returned.
			<<This verb is used by radio.webserver.pageFilter, to get the text for the navigatorLinks, cascadingStyleSheet, and javaScript macros.
	if pta == nil {
		pta = html.getPageTableAddress ()};
	local (f);
	if defined (pta^.radioResponder.atts.[fname]) {
		f = pta^.radioResponder.atts.[fname]}
	else { //optimization: only render if pta^.radioResponder.atts.[fname] is defined, meaning the file exists on disk.
		return ("")};
	local (adrcache);
	radio.file.getFileAttributes (f, @adrcache);
	local (s);
	case radio.webserver.getfilemimetype (f) {
		"text/x-opml" {
			s = string (adrcache^.outline)}}
	else {
		s = string (file.readwholefile (f))};
	return (s)}

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.