APPLESCRIPT TOOLS, SCRIPTING ADDITIONS, AND SCRIPTABLE APPLICATIONS
This section lists applications and other software from Apple that either works with or facilitates the use of AppleScript in the Mac OS X environment, as well as scriptable applications that are installed with Mac OS X. This may seem like faint praise, but I am pleased to report that all of them work. Given the radically different underpinnings of Mac OS X, it is a remarkable accomlishment. (Note, however, that I have not yet exhaustively tested any of them, and I don’t expect all of them to work well.)
First, Mac OS X uses Mac OS 9.1 or newer in the Classic environment, so a machine on which you will install Mac OS X must first contain Mac OS 9.1 or newer that is, if you intend to use the Classic environment; it is not mandatory. To make upgrading easy, the Mac OS X product comes with the standard Mac OS 9.1 installation CD that is available for purchase separately by people who are not upgrading to Mac OS X. If you want to use the Classic environment with Mac OS X and you haven’t already upgraded to Mac OS 9.1, you must do so before you install Mac OS X. This will, of course, upgrade all AppleScript components to their Mac OS 9.1 versions. Note that recent Mac OS 9.1 installation CDs contain newer versions of some items, compared to the versions that were available with the initial release of Mac OS 9.1 at Macworld Expo in early January 2001. I assume that the Mac OS 9.1 CD that comes with Mac OS X is newer, so you may want to use it to update all of your computers to the latest version of Mac OS 9.1, whether you will install Mac OS X on them or not. The Mac OS 9.1 CD that comes with the Mac OS X product reportedly will not boot on the newest machines, like the Powerbook G4. These machines come with Mac OS 9.1 preinstalled, but if you need to reinstall Mac OS 9.1 on one of them, use the Mac OS 9.1 installation CD that came with the machine (version 1.2 came with my new machines).
Installing Mac OS X does not immediately install any new items into your Mac OS 9.1 system. The first time you launch a Classic application after installing Mac OS X, however, you will be asked to permit some Mac OS 9.1 items to be updated and some new items to be installed for use in the Classic environment. Apple assures you that your system will still work properly when you boot directly into Mac OS 9.1 after these changes have been made. Updated items for Mac OS 9.1 in the Classic environment include the new AppleScript 1.6 system extension, the new Standard Additions 1.6 scripting addition, and the new Script Editor 1.6. Although the Finder remains at version 9.1.1, be forewarned that its dictionary looks different when examined within the Classic environment than it does when you have booted directly into Mac OS 9.1. The new features of these Classic items are described in several places in this report, including Dictionary Changes.
Mac OS X installs the AppleScript tools and scriptable applications listed below for use in the Mac OS X environment, in addition to the items mentioned in Where AppleScript Items are Located. In considering the dictionaries of the scriptable software in this list, it is easy to nitpick about signs that some of them were rushed to release without review by experienced AppleScripters, and it is easy to complain about the absence of usage examples or instructions for most of them. Restraint is called for, however. We should be thankful that AppleScript has progressed as far as it has in this first official release of Mac OS X.
We can live for now, for example, with dictionaries whose terminology departs from official AppleScript suites (for example, in Mail and TextEdit, two Cocoa applications, there are several window properties beginning with is, such as Is Zoomed instead of Zoomed, leading to awkward statements like ‘if window 1 is is zoomed’). And we can live with commands in a Required Suite, although the Required Suite was officially discontinued and melded with the Standard Suite some time ago (the Close command appears both in the Required Suite and in the Standard Suite in Print Center). And with dictionaries defining terms that don’t parse according to plain English usage, in contravention of one of AppleScript’s principal goals (the Pref command in Apple System Profiler leads to the vaguely obscene locution, ‘tell application Apple System Profiler to pref’). And with terminology that uses initial caps contrary to AppleScript convention (Show Queue and all of the other commands and parameters in Print Center use initial caps).
When examining an AppleScript dictionary in Script Editor, I have occasionally experienced difficulty seeing the left pane, where the scripting suites and their terminology are listed. This happened after I enlarged a dictionary window and chose Set Default Window Size from the File menu. If you encounter this problem, it is easily cured by resizing the window again until the left pane becomes visible; often, simply clicking on the window’s resizing widget is enough.
Installed Software
Script Runner application
Script Runner 1.0 is a Mac OS X-only application, sporting a funky icon of a rocketship with the familiar AppleScript symbol emblazoned on its side. It enables you to organize a collection of compiled scripts and to run them. It does not have a window of its own, nor a menu in the menu bar, and it does not appear in the Dock. It is instead a small, floating button that can be moved around on the desktop. The button always remains in front of application windows, so it provides a convenient system-wide means of running scripts at any time. You may want to stash it away in a little-used corner of the screen, since it can be hard to spot on a busy patchwork of application windows. Its initial position at startup is quite annoying: near the upper left corner of the screen, obscuring the main window of just about every application you launch, and it does not remember where you put it the next time you start up your computer.
Clicking on the Script Runner button brings up a hierarchical menu listing all of the scripts in the Scripts folders and their subfolders located in the several domains, as well as a command to open the user’s Scripts folder and a Help command. A script can be run by choosing it from this menu, and it can be opened for editing in its native editor by holding down the Command key while opening the menu. When the Scripts folder is open, a script can be dragged in and out of it or placed in a subfolder using the Finder, and the script will appear or disappear from the Script Runner menu or a submenu the next time Script Runner is launched.
Script Runner adds a new dimension to the use of compiled scripts, although it will be very familiar to users of Leonard Rosenthol’s OSA Menu for the classic Mac OS. In a bare-bones installation of Mac OS 9.1 and earlier, compiled scripts, unlike script applications, could not be run independently but only within a script editor. To run a script independently, it had to be saved as a script application or applet, and launching one of these entailed the slight delay associated with the launching of any application. For the last few years, Apple’s Mac OS installation CDs have included an optional lite version of OSA Menu, which enabled compiled scripts to be quickly and conveniently run from a menu at the right end of the menu bar without launching an application. A number of other third-party launcher palettes, Apple Menu enhancers, and control strip modules provide similar features. For a while, OSA Menu even included an application called Script Runner that worked something like the new Script Runner in Mac OS X. Scripters will find Script Runner to be an essential part of their Mac OS X experience.
Out of the box, there are no scripts in the Mac OS X Scripts folder in the user domain, and there is no Scripts folder in the System or local domains. However, a number of useful scripts are included in an Example Scripts folder in the AppleScript folder, and all of them work well with Script Runner. If you are a heavy AppleScript user, one of your first Mac OS X setup tasks should be to copy the entire contents of the Example Scripts folder into your personal Scripts folder or the main Scripts folder for use with Script Runner. (You will have to quit Script Runner and relaunch it to make the newly-added scripts appear in the menu.) Be sure to make copies of them if you install them in your personal Scripts folder, because removing them from the Example Scripts folder would make them unavailable for installation by any other users of your machine who don’t have access to your user domain.
Script Runner is not automatically launched when you boot up under Mac OS X. To avoid having to dig it out of the AppleScript folder and launch it manually every time you start up, add it to the list of Login Items in the Login pane of System Preferences. This will cause it to launch automatically every time you start Mac OS X, as if you had put it in the Startup Items folder in the classic Mac OS. You could instead install it in the Dock and launch it when needed, but launching it at startup via Login Items is more convenient and conserves valuable Dock real estate.
Terminal application
Those familiar with Unix will take delight in knowing that Terminal is included in a standard Mac OS X install, located in the Utilities subfolder of the Applications folder. Terminal provides the Mac OS X command line interface, or CLI, familiar to Unix users.
In addition to all the other amazing things that can be done here, you can run AppleScripts from the command line. We will not go into details in this report. To learn how to do it, launch the Terminal application, type man osascript at the % prompt, and press the Return key. You will be presented with a simple manual describing the osascript command and parameters. It also refers you to manuals for two other AppleScript-related commands, osacompile and osalang. There are limitations to what can be done with the osascript command, but Apple is working on refinements to make it more usable.
The Terminal application itself is not scriptable, although there have been rumors that it will become so in future.
Apple System Profiler application
Apple System Profiler v2.6b21, in the Utilities subfolder of the Applications folder, is the latest version of this frequently-updated utility. Its dictionary is very similar to that of version 2.5.7, found in Mac OS 9.1 and the Classic environment. Changes to the Apple System Profiler dictionary are discussed below.
ColorSyncScripting scripting addition application
The dictionary of ColorSyncScripting 3.1, in the ScriptingAdditions folder in the system-level Library folder, is identical to the dictionary contained in ColorSync Extension 3.0.3 in the Extensions folder of Mac OS 9.1. (Note that the segmented version of Mac OS 9.1 made available for download in early January 2001 did not include the version 3.0.3 ColorSync Extension; this is one reason to upgrade using the Mac OS 9.1 CD that comes with Mac OS X.)
Internet Explorer application
Microsoft’s Internet Explorer 5.1b1, in the Applications folder, has a dictionary that is identical to that of Internet Explorer 5.0 in Mac OS 9.1.
Help Viewer application
Help Viewer 1.7, in the CoreServices subfolder of the System-level Library folder, has the same dictionary as Help Viewer 1.6.2 in Mac OS 9.1.
Image Capture Extension application
Image Capture Extension, bearing the tuxedo-and-bow-tie icon usually associated with the various assistants, is in the Carbon.framework bundle, buried deeply in the Frameworks folder of the System-level Library folder; it is best to locate it using Sherlock. To open its dictionary easily, use Script Editor’s Open Dictionary command, which gives you an alphabetical list of scriptable applications. It appears to be of limited interest, but an example script using it to rotate images appears in the Scripts subfolder of the Image Capture folder in the main local domain Library folder.
Mail application
Mail 1.0 is a Mac OS X-only e-mail client application, in the Applications folder. It is a bundled (or packaged) Cocoa application whose scripting dictionary is quite extensive. Support for editing mailbox content reportedly is not working in Mac OS X 10.0.
On March 24, 2001, Apple released Mail Import Scripts 1.0.5, three AppleScripts that help you import e-mail messages into Mail from a variety of third-party e-mail clients, including Netscape Communicator 4.x, Eudora 5.x, Outlook Express 5.x, and Microsoft Entourage.
Mail’s dictionary is in the form of a couple of so-called plist, or property list, files within the bundle. If you wonder what a plist-based AppleScript dictionary looks like in its raw form, Control-click on the Mail application icon and choose Show Package Contents in the contextual menu. Navigate through the Contents and Resources folders to the English.lproj folder (or the equivalent folder for your preferred language), then drag the Mail.scriptTerminology file onto the TextEdit icon. You will be looking at a plist AppleScript dictionary. (Be careful not to edit it, unless you know exactly what you are doing.)
Print Center application
Print Center 1.0, in the Utilities subfolder of the Applications folder, is where you set up your AppleTalk printers, USB printers, and LPR printers using IP, and monitor their print queues. Its dictionary appears to be a work in progress, including a Test Event command, for example. The descriptions of most of the commands say that they are sent, suggesting that the application sends events to your script, but this may not be so. In the absence of instructions or examples, I have been unable to figure out how to use most of these commands.
QuickTime Player application
The final release of QuickTime Player 5.0 was first introduced as part of Mac OS X. The revised QuickTime Player dictionary (see below) is very complete, expanding even beyond that of QuickTime Player 4.1.3, the latest version available in Mac OS 9.1. It lives in the Applications folder. Reportedly, its scripting abilities may require purchasing the Pro version (your QuickTime Player 3 license won’t work, even though it works with QuickTime Player 4; if you purchased a QuickTime Player Pro 4 license, however, it reportedly will work with version 5). A number of AppleScripts for QuickTime Player 5 are available for download.
Sherlock application
Sherlock 3.1, in the Applications folder, replaces Sherlock 3.0.2 from Mac OS 9.1. Their dictionaries are identical.
Standard Additions scripting addition
Standard Additions 1.6, in the ScriptingAdditions folder in the System-level Library folder, is new since Standard Additions 1.5.5 in Mac OS 9.1. There are several important changes in the Standard Additions dictionary.
Stuffit Expander application
StuffIt Expander 6.0.1 is included. The dictionary is identical to that in StuffIt Expander 6.0, the next most recent version released by Aladdin Systems.
A free upgrade to StuffIt Deluxe 6.0.1 is available from Aladdin Systems. The 6.0.1 upgrade is essential for users who want to compress files using StuffIt Deluxe in Mac OS X, because it fixes problems that version 6.0 had with compressing or decompressing some Mac OS X files. It comes with simple instructions to make most elements of StuffIt Deluxe run natively in the Mac OS X environment.
TextEdit application
TextEdit 1.0, in the Applications folder, is another bundled application built with the Cocoa frameworks, like Mail. It appears to be positioned as the standard text processing application for the Mac OS X environment, and it is scriptable with a reasonably useful dictionary. It is certainly a nice replacement for the Classic Mac OS SimpleText application.
URL Access Scripting scripting addition application
URL Access Scripting is version 1.0 (v3) in Mac OS X; the latest version available for Mac OS 9.1 is 2.3. Their dictionaries are identical.
Dictionary Changes
Several changes have been made to scriptable items in Mac OS X that have been updated from their Mac OS 9.1 versions.
Apple System Profiler application
One new command appears in the dictionary of Apple System Profiler v2.6b21: Pref. This command is hardly English-like; would you tell somebody to pref in polite company? This command, according to the dictionary, opens the preferences dialog of the application. The Gathers At Launch and the Preferred Report Contents properties of the Application class and the Report Contents property of the Report class take the new OSX Extensions and Frameworks contants, and there are matching OSX Extension Volumes and Framework Volumes properties. Extensions are Mac OS X kernel extensions with the .kext file extension; my installation has over 200 of them. Frameworks are header files of interest to developers, although they are also essential to the operation of many elements of Mac OS X; my installation has about 150 of them.
Finder
The dictionaries of Finder 9.1.1 and Finder 10.0 are similar at first glance, but on closer inspection there are many omissions and new features in Finder 10.0, some reflecting differences in the underlying operating system and others the fruit of an ongoing effort to simplify and rationalize the Finder’s dictionary. The difference that has the most serious consequences is the removal of the Computer command from the Finder’s dictionary to Standard Additions in Mac OS X, discussed elsewhere in this report.
Other changes are listed here:
The Restart, Shutdown and Sleep commands are missing from the Finder Basics suite, perhaps because this is a multiuser operating system and one of your machine’s users shouldn’t have that kind of control over the machine.
In the Application class of Finder Basics, the following elements are gone, as are their associated classes: Sharable Container, Sound File, Suitcase, Font Suitcase, Accessory Suitcase, Process, Application Process, Accessory Process, Container Window, Information Window, View Options Window, and Content Space. In some cases, these reflect only the fact that the element has been renamed or moved elsewhere in the dictionary. In others, the omissions reflect omitted or different functionality in the underlying operating system. In still others, I believe they reflect a long-standing desire among the designers of the Finder’s dictionary to simplify it by omitting redundant classes without limiting the ability to script the underlying functionality. The Internet Location element is renamed Internet Location File, to match the associated Internet Location File class that was already in the Files and Suitcases (now simply Files) suite. A new Finder Window element is added, which is accessible by numeric index and by ID; you can still rely on the already-existing Window element to access a window by name. Many of these omissions and changes also occur in other classes, such as the Container class, and will not be repeated in this listing.
The following properties are gone from the Application class: Largest Free Block, File Sharing, Sharing Starting Up, About This Computer, and Execution State. I believe some of these will reappear in other places. These new properties are added: Startup Disk, Trash, and Home. Only Home offers new functionality, reflecting the multiuser nature of the operating system.
The Special Folders class is omitted. It had not kept up with advances in the Path To command of the Standard Additions scripting addition, anyway, and had become redundant.
In the Finder Items suite, the Put Away command is omitted because the functionality no longer exists in the Finder. The little-used but very important Update command has acquired a new parameter, Registering Applications, which defaults to true. Somebody needs to explain this one.
The Item class has lost its Id (moved to the Finder Window class), Folder, Selected, Content Space, and Window properties, but it has gained the following new properties: Url, Icon Size, Owner, Group, Owner Privileges, Group Privileges, and Everyones Privileges.
The Sharable Container and Sharing Privileges classes are no longer available in the Containers and Folders suite.
In the Disk class, an important new property is added, Format, which gives you a long list of enumeration constants from which to choose. These include Mac OS Format, Mac OS Extended Format, and UDF Format.
In the Files (formerly Files and Suitcases) class, the Locked property is gone.
The Clipping class has a new Clipping Window property.
The Window class has a new Id property giving the unique id of a window, enabling the new by ID accessor available through the new Finder Window class. The Popup and Pulled Open properties are omitted because popup windows (the tabs along the bottom of the screen) are not available in Finder 10.0, having been replaced by the Dock with its ability to present menus from installed folders.
The Information Window class has been renamed the Inspector Window class. It has not changed, except that the parameters to the Current Panel property are different, reflecting the different way in which the Mac OS X Inspector works.
In the Type Definitions suite, there are new Icon View Options, List View Options and Column classes. These mostly encapsulate already-existing properties, such as the Arrangement property of the Icon View Options class. I am excited about one new property, the Index property of the new Column class, because it is not marked r/o for read-only. This suggests that I may be able to change the order of columns in list view windows via script, which will allow me to move the Version column to second position, next to the Name column, where I want it in all my list windows. But I can’t make this work in Finder 10.0.
In sum, there is a lot to learn about scripting the new Finder. The process will be difficult for the time being, because the temptation to blame your failures on system bugs will be unusually hard to resist.
QuickTime Player application
The Standard Suite of QuickTime Player 5.0 has new Data Size and Delete commands. The QuickTime Player Suite is greatly expanded, adding five new classes (Chapter, Display, Frame, Stream, and Text Frame) and nine new commands (Add, Clear, Copy, Cut, Open Image Sequence, Paste, Redo, Trim, and Undo). The Open Location command has a new Position parameter. The Present command has a new Mode property allowing specification of Normal or Slide Show, and a new Display parameter allowing specification of the monitor on which to present a movie. The Application class has three new properties (Clipboard, Ignore Auto Play, and Ignore Auto Present), and the QuickTime Connection Speed property enumerates several new constants. The Display class brings new power to the ability to use AppleScript to understand what monitors are available; for example, on my new PowerBook G4 Titanium, ‘dimensions of display 1’ returns ‘{1152,768}’. The Favorite class adds several elements and properties, including the Category of the favorite. The Movie class adds 21 new properties; the Track class, 20 too many to name them all here.
Standard Additions scripting addition
Standard Additions 1.6 in the Mac OS X environment sports a few dictionary changes since Standard Additions 1.5.5. See Testing Whether AppleScript 1.6 is Installed for information about the new System Attribute command. In addition, the Choose Application command’s optional Application Label parameter is replaced by With Title. Typing ‘application label’ will not compile to ‘with title’; it won’t compile at all. The two parameters serve somewhat different purposes, now that Choose Application does not allow choosing a remote application to link to, but only a local application. Some of the commands now assign plain text as the type of properties that were formerly typed as string.
The Path To command has been enhanced for Mac OS X to deal with multiple domains. There may, for example, be Scripting Additions folders in several individual users’ Home folders, and in the main Library folder at the root level of the Mac OS X disk, and in the Library folder in the network domain, in addition to the system-level Scripting Additions folder. To accommodate multiple domains, the Path To command has been given a new From parameter that lets you specify whether to look for the desired special folder in the ‘System domain’, ‘local domain’, ‘network domain’, or ‘user domain’. For example, ‘path to scripting additions from user domain’ returns alias :Users::Library:ScriptingAdditions:, where is the user currently logged in, and ‘path to scripting additions from local domain’ returns alias :Library:ScriptingAdditions:. The indicated result is returned even if the special folder does not currently exist in the specified domain, and the specified folder is created, as has always been the case but only if the user has privileges to change that domain. The default domain when the From parameter is omitted varies depending on the special folder you designate, based on Apple’s sense of which domain is appropriate for that special folder; for example, for scripting additions the default is the System domain, but for preferences it is the user domain. Varying the default domain, instead of having an easy-to-remember fixed default domain for all special folders, was a bold design decision on Apple’s part. Some of the defaults may be open to debate. For example, the Scripts Folder and Folder Action Scripts Folder location selectors default to the System domain, but there are no such folders there in the current release of Mac OS X. Since users do not have write access to the System domain, omitting the From parameter for those locations guarantees a run-time error, as described below. Most scripters may find it easiest to use the From parameter in all cases, in order to avoid having to look up the default.
You can get unexpected results if you don’t understand just how the Path To command works in Mac OS X. For example, if you run ‘path to AppleScript’ in Script Editor, it returns an alias to the Script Editor application, but this is only because it is, in effect, interpreting the command to mean ‘path to current application’. The same command would return a different result if run from another editor, and it returns the path to itself if run as an applet. Also, if a requested special folder does not exist in the domain in issue, the command will generate an error if the current user lacks write permission for the domain in issue, instead of simply creating the folder as it does in Mac OS 9.1 and earlier. For example, ‘path to scripts folder’ now returns error number -5000 (known to programmers as afpAccessDenied), because the Path To command defaults to the System domain, which does not contain a Scripts folder and does not let any user create one. The error message is accurate (Folder does not exist, and you don’t have access privileges to create it.). In this case, you have to be careful to specify the desired domain; ‘path to scripts folder from user domain’, for example, works correctly, creating the folder if it does not exist, instead of generating an error. It may also be the case (I haven’t tested this) that when the user is logged in as administrator, a script will be able to get the path to a nonexistent special folder from the local domain, while attempting to do so would cause an error if the user is logged in as a normal user without write access to the local domain. The access privileges issue will trip up older scripts that previously worked correctly, in cases where a special folder does not exist in a domain to which the current user lacks write access, and it will undoubtedly trip up new scripts that are not written defensively to test for this issue. Such is the price of progress, for the multiuser capabilities of Mac OS X are a definite advance.
In general, the Mac OS X Standard Additions dictionary retains the classic Mac OS special folder constants for use with the Path To command, but scripts directed at Mac OS X will generate errors if they use constants that are meaningful only in the Classic environment or Mac OS 9.1. This is one of the reasons why you are advised to test your environment before executing script commands that differ as between environments.
Apple’s new AppleScript 10.0 Overview gives the following examples of supported Path To locations, some of which must be given as four-character codes in this version of Mac OS X: preferences folder, help folder, desktop pictures folder, At Ease documents folder (At Ease is an anachronism; it refers to the Mac OS X Documents folder), At Ease applications folder (the Mac OS X Applications folder), ‘ssnd’ (Sounds folder), 'favs (Favorites folder), ‘dlib’ (Library folder), ‘cuser’ (the current user’s Home folder), temporary items folder, ‘usrs’ (Users folder), ‘root’ (the System folder, current user’s folder, or Network folder, depending on domain), ‘sdat’ (Shared documents folder), scripts folder (the folder where Script Runner gets its menu items). In general, for the developers among you, you can use any four-character string that is a FindFolder selector as declared in the Folders.h header file. 9/22/01
The Scriptable Finder
In a sense, the Finder has undergone its most extensive revision since the Macintosh was first released, because it now has to deal with a radically changed infrastructure. Although its dictionary remains very familiar, there are many changes, some of its features are not yet implemented or don’t work correctly, and other features may change before too long. Even with the limitations in its current scripting implementation, the Finder remains the enormously powerful tool that it has been since it became scriptable some years ago. For an example of its power, check out the Build web page example script in the Scripts subfolder of the Image Capture folder in the main Library folder.
In considering the many changes to the Finder’s dictionary, do not be misled by the fact that the Finder in the Classic environment is still Finder 9.1.1, while the Finder in the Mac OS X environment is Finder 10.0. If you boot into Mac OS 9.1 directly, you will see the familiar Finder 9.1.1 dictionary. But if you boot into Mac OS X and attempt to examine the Finder 9.1.1 dictionary in the Classic environment, you will discover that it has magically transmogrified into the Finder 10.0 dictionary. (You must use the Classic Script Editor to do this, because the Mac OS 9.1 Finder is dimmed and can’t be selected if you use the Mac OS X Script Editor’s Browse button in an attempt to open its dictionary.) In other words, Finder scripting when booted into Mac OS X uses the same new terminology, no matter which environment your script addresses. When you boot into Mac OS X, you boot into a world where many low-level system hardware and operating system features are controlled by the new Mac OS X kernel, and so the Finder as well as other system-level software must depend upon them in either environment.
I have not exhaustively tested Finder scripting in Mac OS X, but I have found an oddity or two, and many others are already being reported on the mailing lists. For example, the statement ‘make new file at desktop with properties {name:Test}’ creates a SimpleText file, although SimpleText is not included in the standard Mac OS X installation. When you double-click the resulting file for the first time, SimpleText is launched in the Classic environment. Although this may be appropriate to preserve backward compatibility, I would prefer to see a scriptable RTF Mac OS X application like TextEdit become the new standard for text files. Having to launch the Classic environment to read such a file is a nuisance, and what if the user did not install the Classic environment? (A Carbonized version of SimpleText does appear on the Developer Tools CD, and it runs in the Mac OS X environment; however, it was written as a demonstration of Carbon techniques for developers, not as a standard text editor for Mac OS X. It is not as competent a text editor as TextEdit.) There also appear to be unimplemented or buggy commands in the Finder, still. For example, I can’t make the Select command select a specified item, getting error number -10000 if the item exists but the correct error if it does not exist.