AppleScript 1.8.3 (Mac OS 9.1 & higher, OS X Puma & higher)

The availability of AppleScript 1.8.3 was announced by Chris Espinosa, Apple’s Manager of Components & Scripting, by an e-mail message to several AppleScript mailing lists on June 24, 2002. It was not part of a new release of Mac OS 9 or Mac OS X but a separate download first made available through Software Update. A downloadable updater for Mac OS 9 and a downloadable updater for Mac OS X were made available a day or two later. AppleScript 1.8.3 is for use with Mac OS 9.1 and later and Mac OS X 10.1 and later.

This is the first release of a new version of AppleScript for Mac OS 9 since the release over six months ago of the ill-fated AppleScript 1.7 release. For Mac OS X only, AppleScript was updated to version 1.8.1 and to a widely available beta edition of version 1.8.2 in the meantime. The beta release of AppleScript 1.8.2, both for Mac OS X and Mac OS 9, was announced to the mailing lists by Chris Espinosa on January 24, 2002. Version 1.8.3 is probably the last version of AppleScript that will implement parity for Mac OS 9 and X. For Mac OS 9 users, the chief benefits are fixes to the frequent crashes in the Info For scripting addition command and the fatal misbehavior of File and Alias objects in AppleScript 1.7. For Mac OS X users, the principal benefit is the inclusion of AppleScript Studio 1.1, which means that AppleScript Studio applications will run on any Mac OS X 10.1 system that includes the AppleScript 1.8.3 update. On Mac OS X, this update also includes the improvements made in AppleScript 1.8.1 and 1.8.2 beta as well as fixes for unresolved issues in 1.8.2 beta.

When Mac OS X 10.2 (Jaguar) was released later in 2002, AppleScript components were upgraded in the Classic environment to the following: AppleScript 1.8.3, Script Editor 1.8.3, and Standard Additions 1.8.3. Users who still boot into Mac OS 9 have to apply the AppleScript 1.8.3 updater separately, as described above.

As usual, this report is based on information obtained from various sources, including official Apple publications and several AppleScript and Mac OS X mailing lists and news groups, and my own investigations. It includes information I have learned by investigating the product as installed on my own computers.

NEW FEATURES and CHANGES IN APPLESCRIPT 1.8.3

New Features
AppleScript 1.8.3 for both Mac OS X and Mac OS 9 was focused on bug fixes and contains no major new features.

Changes
Apple characterizes a handful of changes in AppleScript 1.8.3 as feature changes, not bug fixes. In Mac OS X, these are the addition of the Quoted Form property of strings, and the use of moveable modal dialogs for the Display Dialog and Choose From List scripting addition commands. The Quoted Form property was actually introduced in AppleScript 1.8 but didn’t work, so you might think of this one as a bug fix, after all. For Mac OS 9, these are the addition of the POSIX path property, the POSIX file object, and the Quoted Form property of strings. None of these is generally useful under Mac OS 9; they are included only for compatibility with AppleScript 1.8.x on Mac OS X.

DOCUMENTATION FOR APPLESCRIPT

The AppleScript 1.8.3 for Mac OS X Release Notes and the AppleScript for Mac OS 9 Release Notes are available from the AppleScript Release Notes page. These contain very detailed lists of changes and bug fixes.

TESTING WHETHER APPLESCRIPT 1.8.3 IS INSTALLED

As we have said many times, before using new features of AppleScript, careful writers of scripts intended for public distribution will want to determine which version of AppleScript is present on the user’s machine.

A practical, universal way to determine whether AppleScript 1.8.3 is available is to use a much simplified version of the script that we developed for AppleScript 1.6:


on AppleScript183orNewer()
	tell application "Finder" to get system attribute "ascv"
	return (result is greater than or equal to 17826178)
end AppleScript183orNewer

AppleScript 1.8.3 on Mac OS 9 returns 17826178 as its version number. This is a bug. It should return 17826179, which is the integer equivalent of the binary-coded decimal version number 01100183. Unfortunately, when AppleScript 1.8.3 was released, Apple neglected to increase the version number returned by the System Attribute event to the correct number, leaving it instead at 01100182 or, in integer form, 17826178. Fortunately, AppleScript 1.8.2 was released only to developers, and only in beta form, and it should not be in widespread use today. It seems appropriate therefore, at least as a practical matter, to test for version 1.8.2 or later and, if the result is true, assume that AppleScript 1.8.3 or later is installed.

If you want to be sure when running Mac OS 9, it does no good to test ‘system attribute sysv’ for 2338, which is the integer equivalent of 00000922, because AppleScript 1.8.2 beta might be running under Mac OS 9.2.2. Instead, at least on U.S. systems, you can use the string version of the AppleScript system extension under Mac OS 9 using this handler:


on AppleScript183orNewer()
	set ASextension to alias ((path to extensions folder as string) & AppleScript)
		tell application "Finder" to get version of ASextension
		return (text 1 thru 5 of result = "1.8.3")
end AppleScript183orNewer

APPLESCRIPT TOOLS, SCRIPTING ADDITIONS, AND SCRIPTABLE APPLICATIONS

Apart from AppleScript 1.8.3 itself, there has been only one documented change in AppleScript-related features elsewhere in Mac OS X 10.1.x since AppleScript 1.8.1 shipped with Mac OS X 10.1.2. The Mac OS X 10.1.3 Release Notes indicate that it included scripting enhancements to URL Access.

FIXED BUGS

Long lists of fixed AppleScript-related bugs have been made available by Apple in the Release Notes cited above; they will not be repeated here. AppleScript 1.8.3 was a bug-fix release, and these fixes are important.

NEW (AND OLD) BUGS

A few known bugs that are not fixed in AppleScript 1.8.3 are listed at the ends of the Release Notes cited above; they will not be repeated here.

Additional bugs are listed below:

A day or two after the updates were posted, Chris Espinosa confirmed two additional bugs reported by users: Applets don’t work on Mac OS 9 if their names include the .app extension, and the Activate command doesn’t work unless you restart or log out after installing the update.

As noted above, AppleScript 1.8.3 returns 1.8.2 as its version when ‘system attribute ascv’ is requested.

Chris Espinosa confirmed that if a default answer is supplied to a Display Dialog command, the default answer is not selected when the dialog is presented.

Various issues have been reported regarding coercions between Unicode text, international text, and plain text. For example, coercing Unicode text to string yields international text instead of plain text in the Finder, but plain text is required to set file and creator types using the Info For scripting addition command. The workaround is to use Info For outside a Finder tell block. Chris Nebel reported that this is a bug in the Cocoa scripting framework.

Apple has reported in AppleCare KnowledgeBase document 75250 that the Choose Application scripting addition command causes an out of memory error when used in the Classic environment of Mac OS X 10.1 to locate a remote application. The workaround is to hard code the remote computer into your script or upgrade to Mac OS X 10.2 (Jaguar).