Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.Frontier.tools.windowTypes.getDefaultFilename
on getDefaultFilename (adr, extension) {
local (f, haveFilename = false, flPopSuffix = true, maxCharsMac = 30 - sizeOf (extension));
if extension beginsWith "." {
extension = string.mid (extension, 2, infinity)};
bundle { //base the filename on the window's f (filepath) attribute
if window.attributes.getOne ("f", @f, adr) {
f = file.fileFromPath (f);
haveFilename = true}};
if not haveFilename { //base the filename on the window's title attribute
if window.attributes.getOne ("title", @f, adr) {
haveFilename = true}};
if not haveFilename { //base the title on the title of the window
f = window.getTitle (adr);
if string.lower (f) == string.lower (string.popFileFromAddress (adr)) {
local (parts = string.parseAddress (string.popFileFromAddress (adr)));
local (ct = sizeOf (parts));
f = parts [ct];
if ct > 1 {
f = parts [ct - 1] + "." + f};
if system.environment.isMac {
if sizeOf (f) > maxCharsMac {
if ct > 1 {
f = parts [ct]}}};
flPopSuffix = false};
haveFilename = true};
if f contains "." { //pop the extension off the name, if it already has one
if flPopSuffix {
f = string.popSuffix (f)}};
if system.environment.isMac {
if sizeOf (f) > maxCharsMac {
f = string.mid (f, 1, maxCharsMac)}};
f = f + "." + extension;
return (f)}
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.