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

on saveAsPlainText (adr=nil, adrFilepath=nil) {
	if adr == nil {
		adr = window.frontMost ()};
	local (f);
	if adrFilepath != nil {
		f = adrFilepath^};
	if f == nil { //construct a file path if not specified
		f = (adr, "txt")};
	if not file.putFileDialog ("Save as text:", @f) {
		return (false)};
	local (s = string (adr^));
	if system.environment.isWindows { //add linefeeds
		s = string.replaceAll (s, "\r", "\r\n")};
	local (creator =;
	if string.lower (f) endsWith ".py" { //special case for Python scripts
		creator = 'Pyth'};
	file.writeWholeFile (f, s, 'TEXT', creator, ());
	if adrFilepath != nil { //tell the caller where the file is -- used for View in Browser
		adrFilepath^ = f};
	return ( (f));
	return (true)}

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.