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

on openWithEditor (f, editor=nil) {
		<<12/13/01; 7:47:28 PM by JES
			<<Opens a file in the editor configured at, for the file's mimetype. If there's no editor for the file, it's an error.
			<<This is a low-level script; if you need to do any user interaction to find an editor, do that in the calling script.
	if editor == nil {
		local (adreditors =;
		local (mimetype = radio.webserver.getFileMimeType (f));
		if not defined (adreditors^.[mimetype]) { //error
			scriptError ("Can't open \"" + file.fileFromPath (f) + "\" for editing because no editor is configured for the type, \"" + mimetype + "\".")};
		editor = adreditors^.[mimetype]};
	local (pc = file.getPathChar ());
	local (appname = file.fileFromPath (editor));
	if appname endswith pc { //apps may be folders on MacOS X
		appname = string.delete (appname, sizeOf (appname), 1)};
	if sys.appIsRunning (appname) {
		if system.environment.isMac {
			required.openDocument (appname, f)}
		else { //windows
			launch.appWithDocument (editor, f)}}
	else { //app not running -- launch app with document
		launch.appWithDocument (editor, f)};
	sys.bringAppToFront (appname);
	return (true)};
bundle { //testing
	openWithEditor ( + "#template.txt")}

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.