Documentation Archive Developer
Search

ADC Home > Reference Library > Technical Notes > Carbon > Tools >

Mac OS X: v10.1.1 - v10.1.3

This Technote describes changes provided by system software updates 10.1.1 through 10.1.3.

This Technical Note was created for application developers interested in writing software that is compatible with Mac OS X. This list includes changes that affect API level programming and product testing, it is not intended to be an exhaustive list of all the changes in software updates.

CONTENTS

[Mar 06 2002]






Mac OS X version 10.1.1

This section describes changes provided in the 10.1.1 software update.

File Systems

This section discusses changes and improvements in the file systems installed with Mac OS X 10.1.1.

Apple Filing Protocol Client

The Apple Filing Protocol (AFP) Client provides file sharing services for computers networked with AFP file servers.

  • A problem where client machines would lose server connections when sleeping has been corrected (r. 2783428).

Back to top



HFS

The Hierarchical File System.

  • FSGetCatalogInfoBulk was returning an inconsistent lock bit setting in nodeFlags for directories. This problem has been corrected (r. 2778014).

References:

Back to top



WebDAV

WebDAV stands for "Web Distributed Authoring and Versioning". It is an extension to the HTTP/1.1 protocol which allows users to collaboratively edit and manage files on remote web servers. Mac OS X includes a file system, the WebDAV file system, which allows WebDAV servers to be mounted as volumes.

  • HTTP supports several authentication schemes with the primary schemes being the Basic Access and the Digest Access authentication schemes (RFC 2617). The WebDAV specification allows the Basic Access authentication scheme to be used under certain conditions, but requires support for the Digest Access authentication scheme (RFC 2518, section 17.1).

    Support for the Digest Access authentication scheme was added to the WebDAV file system in Mac OS 10.1.1. These changes also added support for handling multiple authentication challenges in each WWW-Authenticate or Proxy-Authenticate header field and for handling authentication challenges in multiple WWW-Authenticate or Proxy-Authenticate header fields (previously, only a single WWW-Authenticate header field was handled and then, only if it contained a single challenge for the Basic Access authentication scheme). (rr. 2787793, 2491919).

References

Back to top



Hardware/Devices

This section discusses changes and new features for device driver writers provided in Mac OS X 10.1.1.

USB

A set of APIs for communicating with USB devices connected to your Macintosh.

  • USB driver interface objects are now preserved for drivers calling the USB Device Reset function so the driver making the reset call is not unloaded (r. 2788013).

  • A problem where an infinite loop could occur in UIMCreateIsochTransfer during ISOC transfers with a frame-list where 8 or fewer frames try to transfer a buffer which crosses more than one page boundary has been corrected (r. 2704158).

  • Problem where IOUSBRootHubDevice::DeviceRequest() call was not setting the wLenDone field of the request when called from a high level application attempting to perform a DeviceRequest call to the RootHub has been corrected (r. 2771050).

  • A problem that could corrupt kernel memory where IOUSBFamily/Classes/IOUSBController_Pipes.cpp was ignoring errors returned by IOMemoryDescriptor::prepare() has been corrected (r. 2757541).

Back to top



Java

HotSpot, the Java virtual Machine used in Mac OS X.

  • A problem where the java.lang.String.equals() method could return incorrect results has been corrected (r. 2780870).

References:

Back to top



Networking

This section discusses changes and new features in the bsd-based networking services provided in Mac OS X 10.1.1.

  • A problem where TCP/UDP packets in oversized Ethernet frames were being dropped has been corrected (r. 2786380).

  • A problem with DHCP that could affect cable modem connections was corrected (r. 2787084).

PPP

PPP is a network link layer plug-in that provides access to TCP/IP networks via Point-to-Point Protocol. It supports both PPP over serial and PPP over Ethernet (PPPoE).

  • PPPoE MTU was not being set correctly. Now, if the ISP requests a lower MTU during the PPP negotiation, then that value is used, otherwise the value 1492 is used (r. 2790938).

Back to top



URL Access

The URL Access Manager provides application support for downloading data from or uploading data to a Universal Resource Locator (URL), with support for automatic decompression of compressed files.

  • A problem where URLAccess was incorrectly reporting all 30x response codes as 404 errors has been corrected (r. 2773459).

  • A problem where URLAccess would not operate correctly with 'file://' URLs containing spaces has been corrected (r. 2782588).

  • A problem where attempting to upload a folder by way of FTP using URLUpload would result in a -43 error has been corrected (r. 2784661).

Back to top



Toolbox APIs

Toolbox include a large number of APIs used by applications for accessing various high level services provided by the operating system.

Appearance Manager

The Appearance Manager extends the facilities provided by the Control Manager, the Dialog Manager, the Menu Manager, and the Window Manager to provide a consistent look and feel for all on screen user interface elements in the Mac OS environment.

  • A problem where GetBestControlRect would return incorrect dimensions for a check box or a radio button after the title was changed has been corrected (r. 2771295).

References:

Back to top



Event Manager

The Event Manager manages the delivery of system and user interaction events to applications.

  • The event loop is no longer called inside of CheckEventQueueForUserCancel so calling this routine will no longer interfere with the processing of drag and drop commands (r. 2773908).

References:

Back to top



Font Manager

The Font Manager provides system-wide services for the retrieval of glyphs for display of textual information.

  • There was a problem in handling duplicate font ID's which would cause a crash, this has been fixed (r. 2762357).

  • A problem where the routine FMGetFontContainer could return a reference to the wrong container for the bitmap font Hiroshige has been corrected (r. 2774022).

References:

Back to top



Menu Manager

The Menu Manager is the part of the operating system responsible for both drawing the menu bar, and drawing menus and pop-up menus on the screen while the mouse is being held down.

  • Menu title truncation has been improved by adding variable menu title condensing. With this change, the menu bar can accommodate more menu titles on smaller screens (r. 2773147).

References:

Back to top



Multilingual Text Editor

The Multilingual Text Editor (MLTE) supplies a C language interface for creating and editing Unicode text documents. Although MLTE may appear to be functionally similar to TextEdit in many ways, MLTE provides many features that are not provided in TextEdit.

  • When attaching an MLTE object to a new window, using TXNAttachObjectToWindow API, MLTE now removes the old MLTE Carbon event handlers from the old window and before installing install them into the new window (r. 2769283).

References:

Back to top



Printing

This section discusses new features, bug fixes, and new APIs in the Mac OS X 10.1.1 printing services.

  • A new API was added to provide EPD capability in the PDF Print path to allow EPS pictures to print correctly to PostScript printers (r. 2746526).

  • Improved compatibility with various USB PostScript printers. To take advantage of these compatibility enhancements, USB PostScript printers must support TCBP (r. 2766407).

  • A problem preventing saving PDF fills with names containing percent (%) characters has been corrected (r. 2750060).

  • Improved system stability when hot-plugging or restarting with USB printers (r. 2792013).

References:

Back to top



QuickDraw

QuickDraw is a part of the Mac OS used for drawing and displaying graphical information on the screen and other raster devices.

  • A problem where ScrollRect could crash with a delta value of zero in the vertical scroll distance parameter has been corrected (r. 2793815).

References:

Back to top



Text Services Manager

The Text Services Manager provides facilities for applications to communicate with various text processing utilities, in particular with text input methods.

  • A problem where Kotoeri input crashes applications using Bottom Input Windows has been corrected (r. 2773555).

References:

Back to top



Window Manager

The Window Manager provides facilities for drawing and maintaining windows on the screen.

  • Under some conditions, calls to ShowWindow could cause the user input focus to be set to some other window than the front-most window. This problem has been corrected (r. 2780280).

  • A problem where calling MoveWindow to move a window to the same location where the window was already located could cause the window to have a global port rectangle of { 0, 0, -1, -1 } has been corrected (r. 2669004).

  • A problem in TransitionWindow which caused the window to immediately snap to its new size when resizing vertically has been corrected. Now, the window resizes incrementally to its new size as expected (r. 2783317).

References:

Back to top






Mac OS X version 10.1.2

This section describes changes provided in the 10.1.2 software update.

AppleScript

AppleScript is a component of the operating system that provides a scripting interface for users to automate actions that would normally require use of the menus and keyboard. Even more importantly, it allows users to access functionality of applications which would be difficult or impossible to access by hand.

  • Remote scripting of the Mac OS X Finder now works as expected (r. 2775419).

  • AppleScript's Gestalt version number (gestaltAppleScriptVersion) was updated to 1.8.1 (r. 2823438).

  • Cases where Coercing Unicode to plain text would fail with error code -8783 have been corrected (r. 2816500).

  • A problem where the 'path to application <the-app>' Standard Addition Command was always returning the path to the Script Editor where the script was running or script (if it was running as an application) has been corrected. Now path to application 'path to application <the-app>' returns a path to <the-app> as expected (r. 2747285).

  • Scripting additions now have their termination functions called when the hosting process terminates (r. 2811696).

  • The new 'do shell script' Standard Addition Command was added to allow scripts to run UNIX shell scripts (r. 2803575).

  • AppleScript now supports POSIX file name paths. This feature was introduced for interoperability with the 'do shell script' command (r. 2793997).

  • The parameterized form of the 'mount volume' Standard Addition Command now works as expected when used to mount AppleShare volumes over an AppleTalk network (r. 2656820). Previously, in Mac OS X, mount volume commands of the form 'mount volume "Mac OS X Disk" on server "My Computer"' did not work as expected; though, equivalent commands of the form 'mount volume "afp:/at/My Computer/Mac OS X Disk"' worked correctly.

  • The 'choose application' Standard Addition Command no longer fails with out of memory errors when called from scripts running in Classic (r. 2804619).

References:

Back to top



Audio

This section discusses changes and new features in Mac OS X 10.1.2 related to audio input and output.

  • A problem in multi-channel USB Audio making some channels unusable has been corrected (r. 2763277).

  • AppleUSBAudio now makes more efficient use of system resources by deferring operations, such as opening pipes, until the resources are actually going to be used (r. 2765850).

MIDI

This section discusses changes and new features in Mac OS X 10.1.2 related to MIDI.

  • USB MIDI Class driver no longer assumes that a device supports a specific MIDI interface. Now, the USB MIDI Class driver uses a new algorithm to identify supported MIDI interfaces provided by connected devices (r. 2763556).

  • The AppleMIDIUSBDriver was updated to recognize additional devices and the number of ports for USB MIDI devices (r. 2768476).

  • Performance improvements in the USB MIDI driver's processing of incoming packets have been added to help reduce the probability of packets being dropped (r. 2801401).

  • A problem where USB MIDI driver was not performing appropriate de-allocations for endpoints referencing deleted devices has been corrected. Applications attempting to re-use any of these endpoints for other purposes may have crashed while attempting to do so because of this problem (r. 2793467).

References:

Back to top



Classic Runtime

The Mac OS X Classic Runtime environment provides a Mac OS 9 compatibility runtime environment for legacy applications and software.

  • A number of problems that prevented copying and pasting the clipboard contents between applications running in the Classic Runtime and other applications has been corrected (rr. 2804626, 2808268, 2804632).

  • Corrected a problem where font style information placed on the clipboard by the Classic Runtime was not being copied over to Mac OS X applications correctly during cut and paste operations (r. 2813725).

  • Performance of the Scrap Manager with respect to copying information from applications running in the Classic Runtime to applications running in Mac OS X has been improved by deferring all data transfer operations until they are actually required (r. 2806734).

  • Applications running in the Classic Runtime can now extract the sending application's ProcessSerialNumber from an Apple event received from a Mac OS X application and use that ProcessSerialNumber to re-target events to the Mac OS X application at a later time (rr. 2804633, 2812563, 2812500).

  • Altivec registers were being trashed across calls to WaitNextEvent in the Classic Runtime. Now they are not (r. 2804623).

Back to top



File Systems

This section discusses changes and improvements in the file systems installed with Mac OS X 10.1.2.

HFS

The Hierarchical File System.

  • Fixed an HFS vnode locking problem that would cause an application to hang inside of a file system call. The most common symptom of this would be a hang inside getattrlist when adding a Carbon application to the Login Items pane of the Login panel of System Preferences (r. 2805470).

References:

Back to top



UFS

The UNIX File System.

  • A potential UFS file system corruption was corrected. Here, a race condition in the inode creation code could sometimes result in the creation of two different vnodes pointing to (and potentially modifying independently) the same on disk data structures (r. 2805397).

Back to top



Hardware/Devices

This section discusses changes and new features for device driver writers provided in Mac OS X 10.1.2.

FireWire

Apple's support for the IEEE 1394 High Performance Serial Bus standard.

  • A problem in the FireWire family that prevented pseudo address spaces larger than about 40 KB from working has been corrected (r. 2795248).

  • Corrected a problem in the FireWire family that caused the pseudo address space write callback to be called twice for every write. Now it is only called once for every write (r. 2810404).

  • Added an AVC family to FireWire (IOFireWireAVC) to provide support for the FireWire AVC command set (r. 2780865).

  • A problem where the FireWire user client call SetRefCon would cause an exception has been corrected (r. 2795244).

  • FireWire now updates the backing store of a FireWire address space before calling its callback in response to receiving write packets in its address space (r. 2795239).

Back to top



ImageCapture

The Image Capture architecture provides a common API for discovering digital imaging devices and transferring images from them.

  • Image Capture was changed to recognize image folders with names other than DCIM folder (r. 2816485).

  • Image Capture can now download non-image files from cameras (r. 2793835).

  • Image Capture now supports events for PTP cameras (r. 2793843).

  • PCMCIA cards are now recognized by Image Capture (r. 2813402).

  • Indexed color profiles are now removed from the list of possible profiles to embed (r. 2823951).

  • Image Capture now recognizes cameras' internal memory storage and is able to see images in those cameras even if the removable storage slot is empty (r. 2823991).

Back to top



IOKit

Apple's object-oriented I/O development model. The I/O Kit provides a framework for simplified driver development, supporting many families of devices.

  • A problem where applications subscribed to sleep notifications (via IORegisterForSystemPower) were not receiving the kIOMessageCanSystemSleep message has been corrected. Recipients of this message have the option of replying with IOAllowPowerChange or IOCancelPowerChange. The fix (in 10.1.2) restores the kIOMessageCanSystemSleep message so that interested clients receive it again and have the chance to allow or veto sleep (r. 2808446).

  • Fixed a bug where the F12 key event was being intercepted in order to eject CDs. Now the F12 key event is passed to applications, and the key must be held down for a half second in order to eject a CD. When using the Apple Pro Keyboard, the F12 key can no longer be used to eject CDs. This change allows applications to use F12 as a keyboard equivalent (rr. 2796151, 2765917).

Back to top



IrDA

IrDA provides an infrared communication API for software and drivers written to communicate with and IrDA-capable devices.

  • Added IrDA support to original Titanium PowerBook G4 (r. 2773067).

  • Added IrDA support to PowerBook G3 (FireWire) (r. 2773070).

Back to top



Mass Storage

Drivers for storage devices such as hard disks and CD-RW drives.

  • In Darwin/DP4 large I/O operations could fail silently. The problem has to do with requests larger than the block storage device's maximum transfer constraints being exceeded. Such requests are now broken up into smaller I/O operations when the constraints are exceeded. If exact constraints cannot be determined for a device then a set of default constraints are assumed. The default constraints are set to 256 blocks and 128 kilobytes (192 kilobytes for CD/DVD devices) (r. 2497619).

Back to top



PCCard Support

Drivers for PCCard and CardBus card devices.

  • PC Card drivers can now change the voltage sent to a card (r. 2776059).

Back to top



SCSI Storage Driver X

Support for devices conforming to the SCSI Architecture Model.

  • Peripheral device type 8 was added to the list of devices supported by the SCSI Storage Driver user client APIs to allow support for media changers in client software (r. 2770690).

Back to top



USB

A set of APIs for communicating with USB devices connected to your Macintosh.

  • A problem where the routine WritePipeAsync was trashing the stack when the parameters noDataTimeout and completionTimeout were provided has been corrected (r. 2807390).

  • Previously, the USB Mass Storage Bulk Only Transport SubClass only recognized the first LUN in a multi-LUN attached peripheral or device. To allow the USB Mass Storage Bulk Only Transport SubClass to recognize additional devices, the concept of a Logical Unit nub was added to the IOSCSIArchitectureModelFamily that provides methods for setting the logical unit number for the logical unit that it represents. With this addition, the IOUSBMassStorageClass will query devices that use the Bulk Only Transport mechanism for the maximum logical unit number (LUN) supported. How a device responds to this inquiry will determine how it is initialized used: if the device reports zero or the device utilizes the Command/Bulk/Interrupt or Command/Bulk transport mechanism, the device does a register service and allows IOKit to load a client; otherwise, if the device supports a LUN greater than zero, the driver will instantiate an IOSCSILogicalUnitNub for each and set the appropriate LUN. When commands are sent to the IOSCSILogicalUnitNub from its clients, it will modify the SCSITask object with the appropriate LUN (r. 2775626).

Back to top



Networking

This section discusses changes and new features in the bsd-based networking services provided in Mac OS X 10.1.2.

  • PF_NDRV is now available and works as expected. Previously, PF_NDRV sockets would not receive packets for the protocols they registered, and PF_NDRV packets bypassed all DLIL interface filters (r. 2808421).

DHCP and BOOTP

DHCP and BOOTP servers provide automated network address configuration services. This section discusses changes in Mac OS X's facilities for accessing DHCP and BOOTP servers.

  • Implemented a fix with DHCP so that after sleep, an internet connection would continue to function. Previously, a system set to use a DHCP connection would fail to connect to the internet after the system awoke from sleep (r. 2760975).

  • Implemented support for multiple IP addresses for an Ethernet network interface. Using the Network Preferences Advanced popup options, one can duplicate a network interface so as to assign multiple IP addresses to the interface (r. 2643289).

Back to top



Ethernet

Software for APIs used for communicating on ethernet networks.

  • Fixed the built-in ethernet driver to correctly report the supported Ethernet speeds. In earlier versions of the driver, on a system without Gigabit support, the built-in Uni-North driver reported that Gigabit Ethernet support was present (r. 2559605).

  • Implemented an optimization to reduce mbuf locking during the transmit interrupt process for the GMAC Ethernet driver (r. 2767808).

  • Implemented support for hardware flow control at Gigabit speed in the Uni-North ethernet driver (r. 2737457).

  • Fixed a problem with the Uni-North Ethernet driver which could hang GDB on the target system during a remote-debugging session (r. 2740418).

  • Apple's GMAC Ethernet drivers have been updated to allow their transmit and receive buffer sizes to be specified by a property amongst the collection of properties known as the driver's personality. This allows the driver to be customized for different system configurations (for example, Mac OS X Client versus Mac OS X Server) (r. 2784142).

Back to top



OpenTransport

OpenTransport is a set of APIs used by CFM-Carbon applications to access TCP/IP services.

  • Fixed a problem in the Open Transport framework that caused it to attempt to deliver events to providers that no longer existed. This problem manifested itself in the form of spurious crashes surrounding calls to OTCancelSynchronousRequests and/or OTCloseProvider (r. 2647191).

Back to top



Toolbox APIs

Toolbox include a large number of APIs used by applications for accessing various high level services provided by the operating system.

Carbon Core

The Carbon Core incorporates essential services that are generally devoid of a user interface. These facilities range from memory management to process management.

  • Fixed a bug that would cause applications with large data forks to launch very slowly from a CD (r. 2790249).

References:

Back to top



Component Manager

The Component Manager provides services for accessing software components. Software components are code modules that provide services to one or more clients. They are used heavily by QuickTime but they are also used by other services such as AppleScript.

  • Components are no longer loaded into setuid applications (a binary with the 's' bit set). As well, if the user ID of the setuid application does not match the current effective user id, then most components will not be accessible from that application (r. 2799651).

References:

Back to top



Control Manager

The Control Manager provides facilities for drawing and processing user interaction with on screen items inside of windows.

  • Fixed bugs in the Control Manager and Data Browser control that prevented the GetControlClickActivation routine from working properly in Data Browser controls (r. 2671320).

  • A problem in the Data Browser control that caused the list to redraw incorrectly if it was scrolled using the scroll bar arrows arrows while and editable text field inside of the control was open has been corrected (r. 2756673).

  • In multi-column Data Browser List views containing one column with editable text fields, it was possible to open a row's editable text field for editing by clicking on any column. This behavior was changed so that users must now click on the editable text to open the text for editing (r. 2621466).

  • A problem where SetDataBrowserPropertyFlags was not working correctly in some cases, because of internal cache synchronization problems, has been corrected (r. 2796284).

  • A problem where the Data Browser control could inappropriately claim mouse up events that did not belong to the control has been corrected (r. 2712249).

  • A problem where Contextual menus displayed for items in a list view were not displaying appropriate items has been corrected (r. 2711497).

References:

Back to top



Dialog Manager

The Dialog Manager manages user interactions with windows containing controls arranged and positioned using dialog layout templates.

  • A problem where AppendDialogItemList could fail due to a case where GetDialogItemAsControl returned without unlocking the 'DITL' handle (which prevented the 'DITL' handle from being resized) has been corrected (r. 2755379).

References:

Back to top



Event Manager

The Event Manager manages the delivery of system and user interaction events to applications.

  • A problem where kEventMouseExited events containing obsolete MouseTrackingRef values (which could happen if a window was closed after the event was posted) are no longer reported. This problem could cause crashes in applications attempting to use the invalid reference (r. 2790170).

  • Clicking the "maximize" button on a utility window no longer activates the application the utility window belongs to (rr. 2769238, 2759658).

  • Activate/deactivate events were being sent twice through the carbon event manager in cases where they were not being claimed by any handlers. This problem has been corrected (r. 2629084).

References:

Back to top



File Manager

The File Manager provides services for storing and retrieving disk-based information.

  • A spurious error where the Carbon File Manager was reporting that some items were locked when they really were not locked has been corrected (r. 2788172).

  • A problem, introduced in Mac OS X 10.1, where the Carbon File Manager's PBHGetVInfoSync routine would return zero in the ioVCrDate field was corrected (r. 2769925).

References:

Back to top



Menu Manager

The Menu Manager is the part of the operating system responsible for both drawing the menu bar, and drawing menus and pop-up menus on the screen while the mouse is being held down.

  • A problem that prevented applications from attaching icons to the menu items in the application's Dock menu has been corrected (r. 2791091).

References:

Back to top



Navigation Services

Navigation Services provides new Open and Save dialogs, allowing users to locate and select files and other resources.

  • Fixed a problem where the save dialog's file format pop-up menu would not allow the file name extension to be changed has been corrected (r. 2793547).

  • The save dialog now works as expected with 2-byte script systems (r. 2787537).

References:

Back to top



Printing

This section discusses new features, bug fixes, and new APIs in the Mac OS X 10.1.2 printing services.

  • The getPSInfo PrGeneral is now implemented on Mac OS X (r. 2785515).

  • Printed image quality problems with drawing Pictures containing QuickDraw patterns using QDPictDrawToCGContext have been corrected (r. 2796060). Here, patterns were not being scaled correctly. The QDPictDrawToCGContext call now locks the pattern drawing coordinate system to the one in effect at the time when QDPictDrawToCGContext was called. This means that developers need to apply a scale of the Core Graphics coordinate system corresponding to their application drawing resolution and unscale the rectangle that they are drawing the picture into (r. 2796060).

  • The system now properly recognizes and properly rebinds binds printer queues when a queue's printer module is changed (r. 2807524).

  • A problem preventing PPD feature queries from working has been corrected (r. 2785507).

  • Simplified the Print User Interface as requested by some developers (r. 2775682).

References:

Back to top



Scrap Manager

The Scrap Manager provides an API for applications to access a common data store used for transferring data between applications. It can also be used as a data cache for transferring information between windows inside of a single application.

  • The 8 second timeout system default for ScrapPromiseKeeperProcs and DragSendDataProcs has been changed. The default length is now 60 seconds, but this time can be reduced or extended via the CorePasteboardPromiseTimeout preference should extraordinary circumstances arise. This fix will change current behavior only in the cases where an app takes longer than 8 seconds to fulfill a promise or crashes during the fulfillment. In either case, the timeout is simply extended to 60 seconds instead of 8. This change affects both Scrap and Drag promises (r. 2778138).

Back to top



Speech Recognition

This API collection provides speech recognition support in applications.

  • Acronyms containing an 'R' were being ignored, decreasing recognition accuracy. To compensate for this deficiency, the phoeneme _AR was introduced in the model/mapping. Now recognition accuracy is as expected for Acronyms (r. 2786064).

  • A problem where loading language objects with multiply referenced components could corrupt memory has been corrected (r. 2771847).

References:

Back to top



Text Encoding Converter

The Text Encoding Converter enables the conversion of text data from one encoding to another (e.g., Mac OS Roman to Windows Latin-1). It is targeted for Internet applications that need to handle text typically provided in non-Mac OS encodings.

  • The Text Encoding Converter now supports conversion of data between Unicode and the full range of characters defined in Chinese standard GB 18030. This enables full compliance with GB 18030 at the character conversion level (r. 2796745).

References:

Back to top



Window Manager

The Window Manager provides facilities for drawing and maintaining windows on the screen.

  • In OS X, version 10.1, the sheet code was changed to use a new SheetAlignRgn window region selector to determine where a sheet should be positioned. This broke sheet positioning in windows with custom WDEFs that didn't implement that window region code. To fix this, the Window Manager falls back to the content region if the sheet alignment region isn't provided by the WDEF (r. 2790211).

References:

Back to top






Mac OS X version 10.1.3

This section describes changes provided in the 10.1.3 software update.

File Systems

This section discusses changes and improvements in the file systems installed with Mac OS X 10.1.3.

NFS

Network File System, originally developed by Sun Microsystems, used in UNIX environments for sharing volumes over TCP/IP networks.

  • Improvements to VFS stability (r. 2825925):
    1. Modifications to support correct behavior for mapped file modifications on pages with existing NFS buffers. ie to pay attention to modifications on the page whenever the pages associated with NFS held buffers are released as clean.

    2. Changes to NFS truncate to ensure no stale data or file size,

    3. Handle shrinking file sizes in NFS V3 postops,

    4. When writing beyond EOF, the last buffer needs to be zero filled and made as a valid page for VM.

Back to top



WebDAV

WebDAV stands for "Web Distributed Authoring and Versioning". It is an extension to the HTTP/1.1 protocol which allows users to collaboratively edit and manage files on remote web servers. Mac OS X includes a file system, the WebDAV file system, which allows WebDAV servers to be mounted as volumes.

  • The WebDAV file system in Mac OS 10.1.3 added support for the Digest Access authentication scheme's optional "quality of protection" directive with the value "auth" (RFC 2617, section 3.2). This provides interoperability with a greater number of WebDAV servers (r. 2828200).

  • The WebDAV file system prior to Mac OS 10.1.3 would sometimes return zero directory entries when reading a directory when there were actually files or subdirectories in that directory (r. 2791678).

  • The WebDAV file system in Mac OS 10.1.1 and 10.1.2 would not allow path names to contain the comma (,) character when the Digest Access authentication scheme was in use. This was fixed in Mac OS 10.1.3 (r. 2816544).

  • The WebDAV file system in Mac OS 10.1.1 and 10.1.2 would return EIO (input/output error) to read or open requests when a WebDAV server sent a Digest Access authentication scheme challenge in response to a GET request. This was fixed in Mac OS 10.1.3 (r. 2815242).

References

Back to top



Hardware/Devices

This section discusses changes and new features for device driver writers provided in Mac OS X 10.1.3.

ImageCapture

The Image Capture architecture provides a common API for discovering digital imaging devices and transferring images from them.

  • In some situations, error conditions were not being reported by Image Capture. Now all error conditions are reported as expected (r. 2843829).

  • In the past Image Capture only supported events it recognized and others were ignored. Now, events that are not used or recognized by Image Capture are passed along to third party applications requesting such notifications (r. 2836081).

Back to top



PCCard Support

Drivers for PCCard and CardBus card devices.

  • A problem where cards would be inappropriately powered off again after wake from sleep has been corrected (r. 2847723).

  • Problems with wake from sleep with certain CardBus cards with CIS have been corrected (r. 2847719).

Back to top



SAM Multimedia Devices

Support for multimedia devices conforming to the SCSI Architecture Model. This includes ATAPI, FireWire, and some USB storage devices.

  • A problem where some SCSI CD recording devices were not being detected as recorders was corrected (r. 2800077).

  • New IOCDBlockStorageDevice APIs were added:


    class IOCDBlockStorageDevice : public IOBlockStorageDevice
    {
    ...
    
    virtual IOReturn readTOC(
        IOMemoryDescriptor *buffer,
        CDTOCFormat format,
        UInt8 msf,UInt8 trackSessionNumber,
        UInt16 *actualByteCount);
    
    virtual IOReturn readDiscInfo(
        IOMemoryDescriptor *buffer,
        UInt16 *actualByteCount);
    
    virtual IOReturn readTrackInfo(
        IOMemoryDescriptor *buffer,
        UInt32 address,
        CDTrackInfoAddressType addressType,
        UInt16 *actualByteCount);
    };
    


    See the header files for additional information about them (r. 2805968).

Back to top



USB

A set of APIs for communicating with USB devices connected to your Macintosh.

  • USB CardBus cards now properly continues to perform after a sleep/wake-up sequence (r. 2762585).

  • GetStringDescriptor no longer returns an error (kIOReturnBadArgument) when maxLen = 256. In previous versions, maxLen was limited to 255 (r. 2727527).

  • A potential IOUSBUserClient Kernel Crash that could occur on Dual CPU on waking from sleep has been corrected (r. 2803804).

Back to top



LoginWindow

LoginWindow provides login facilities at system startup time and between user login sessions.

  • Administrators have the ability to set an application to run at logout, however, that option was being ignored. We now correctly process the logout option. See Customizing the Login Procedure and the -LogoutHook option described in the LoginWindow Customization Techniques Document for information about using this functionality (r. 2802088).

  • Fixed bug which was causing scheduled launches of applications (items in com.apple.scheduler.plist) to be ignored. Now scheduled launches of items are handled as expected (r. 2839342).

  • As of Mac OS X 10.1.3, if the shift key is held down during the login sequence, LoginItems (applications launched at login) will not be launched (r. 2826839).

Back to top



Networking

This section discusses changes and new features in the bsd-based networking services provided in Mac OS X 10.1.3.

  • A problem, that appeared with Mac OS X update 10.1.2, in tcp_rtlookup that could result in a kernel panic has been corrected (r. 2812538).

  • Corrections for a problem where packets multicast via a UDP socket bound to a not-default source interface (using IP_MULTICAST_IF) were being sent by way of the default interface was corrected (r. 2780102).

  • Fixed a bug where some mbuf packet header fields were not being set up correctly when an mbuf was allocated with any of the following functions/macros: m_retryhdr, m_getpacket, m_dup, MGET, and MGETHDR (r. 2829513).

  • Optimized mbuf manipulation to reduce the number of simple lock operations when transferring large amounts of TCP data (r. 2823305).

URL Access

The URL Access Manager provides application support for downloading data from or uploading data to a Universal Resource Locator (URL), with support for automatic decompression of compressed files.

  • URLGetError now returns correct error codes for errors returned HTTP servers. Previously, it returned 404 for all errors (r. 2840404).

  • URLOpen now calls the notifier with a kURLCompletedEvent message after it has completed gathering data (r. 2775089).

  • A problem where URL Access could not download the same file more than once a file more than once (and overwrite the original copy of a file) has been corrected. The kURLReplaceExistingFlag now allows the file to be replaced (r. 2785557).

  • Calling URLAbort now sends a kURLAbortInitiatedEvent to the notifier (r. 2786215).

  • the kURLDoNotDeleteOnErrorFlag flag is now properly honored by URLDownload and URLOpen. In Mac OS X 10.1 this flag was being ignored (r. 2788305).

  • URLNewReference now properly returns error -30774 when passed an invalid URL (r. 2786210).

Back to top



Toolbox APIs

Toolbox include a large number of APIs used by applications for accessing various high level services provided by the operating system.

Control Manager

The Control Manager provides facilities for drawing and processing user interaction with on screen items inside of windows.

  • A problem where the Drag callback handlers installed by a data browser control could turn off drag rebound animations for rejected Finder drags was corrected (r. 2825897).



    IMPORTANT:
    The Control Manager keeps some internal state that indicates whether automatic control drag tracking is enabled for a window. The intention of the design here was that automatic drag tracking would be disabled by default; you would have to call SetAutomaticControlDragTrackingEnabledForWindow to turn on automatic drag tracking. However, a bug in IsAutomaticControlDragTrackingEnabledForWindow caused the default state (if not explicit state had been set) to be true, instead of false. Some developers have come to depend on this bug for drag tracking in their DataBrowser controls (when a DataBrowser control was created in a window, automatic drag tracking just starts working without the caller having to call SetAutomaticControlDragTrackingEnabledForWindow). In CarbonLib 1.4 and Mac OS X 10.1.3, the bug in IsAutomaticControlDragTrackingEnabledForWindow was corrected. Now, the default state for a window is false until an explicit call is made to SetAutomaticControlDragTrackingEnabledForWindow. This change will cause drag tracking to stop working in applications that use the DataBrowser but don't call SetAutomaticControlDragTrackingEnabledForWindow (i.e., applications that relied on the bug described above). Now, all applications wanting to have automatic drag tracking for controls must explicitly call SetAutomaticControlDragTrackingEnabledForWindow to enable this feature.



  • A problem in the data browser control where the width of a fixed width column used to display a hierarchical list of items could be changed by expanding and collapsing hierarchical items has been corrected (r. 2825904).

References:

Back to top



Font Manager

The Font Manager provides system-wide services for the retrieval of glyphs for display of textual information.

  • Updated cmap and Zapf tables for the Hiragino Japanese fonts to fix a bug in the mapping of JIS X 0213 characters to Unicode. The updated mapping is shown in the 10.1.3 Text Encoding Converter section below (r. 2803424).

  • Updated cmap and Zapf tables for the Hiragino Japanese fonts to fix a bug in the mapping of JIS X 0213 characters to Unicode. The updated mapping is shown in the 10.1.3 Text Encoding Converter section below (r. 2803424).

  • Added the following mapping to cmap and Zapf tables for Hiragino Japanese fonts.

    UnicodeCID UnicodeCID 
    u38A120171 u471F20219 
    u3A5C20127 u35DE20067 
    u3AC420135 u3E4020170 
    u3A8520142 u0192105 
    u6AF820152 u20BB713706 
    u3D3120158  


References:

Back to top



Help Tags

Help Tags (a.k.a. ToolTips) are the primary method for providing context sensitive help in Mac OS X. They are the Mac OS X replacement for the older Balloon Help technology.

  • Help Tags consisting of multiple lines (i.e. included newline/carriage return characters) would fail to display all lines correctly. Now, text containing newline/carriage return characters is displayed properly as multi-lined text (r. 2825896).

Back to top



Menu Manager

The Menu Manager is the part of the operating system responsible for both drawing the menu bar, and drawing menus and pop-up menus on the screen while the mouse is being held down.

  • The Contextual Menu Manager now uses the current text encoding language setting (smCurrentScript) to interpret unstyled text in an AEDesc returned by a contextual menu plugin. Previously, the Menu Manager assumed this text would be encoded in the same language that was specified when the system software was installed (smSystemScript) (r. 2825907).

References:

Back to top



OpenGL

OpenGL is a vendor-neutral, multi-platform graphics standard with broad industry support. OpenGL APIs allow you to develop portable, interactive 2D and 3D graphics applications.

  • Resolved an issue that could cause applications that use OpenGL to quit unexpectedly or to stop responding. This could affect applications running in any version of Mac OS X prior to Mac OS X v10.1.3 (r. 2806392).

  • Resolved an issue where glCopyPixels would sometimes fail to properly copy pixels on computers using nVidia GeForce 3 graphics cards (r. 2801322).

  • Added support for transferring OpenGL-related information directly between PCI cards. This is necessary for high-end multimedia products that use multiple PCI cards for advanced graphics (r. 2820188).

  • Resolved an issue where OpenGL fog effects were not working properly in Mac OS X (r. 2806424).

  • Resolved an issue affecting the display of high-quality 3D images when reduced to display on computers with more modest graphics hardware like the nVidia GeForce 2MX or ATI Radeon (PCI) (r. 2797209).

References:

Back to top



Printing

This section discusses new features, bug fixes, and new APIs in the Mac OS X 10.1.3 printing services.

  • A problem where the Carbon Printing Manager on X 10.1 prints incorrect page ranges when the first page is not #1 was corrected (r. 2820381).

  • Problems with using CAP (Colombia Appletalk Protocol) to authenticate Print jobs and to do print accounting have been corrected (r. 2812410).

  • A number of performance and usability enhancements were introduced in the code handling hot plugging USB Printers (r. 2821616).

  • To accommodate some 3rd-party applications that made assumptions about the order of the items in the print dialog windows, in releases of Mac OS X prior to Mac OS X 10.1, the ordering of the items in the dialog windows was changed back to its original order (r. 2835664).

References:

Back to top



Quartz 2D

Quartz 2D is a feature-rich, two-dimensional drawing engine that is accessible from all Mac OS X application environments outside of the kernel. The Quartz 2D application programming interface (API) is easy to use and gives you access to powerful features such as Bezier curves, path-based drawing, transparency, and advanced color management.

  • A race condition between threads was crashing Java2D demo application. This has now been corrected. This correction resolves a drawing issue that would cause Java applications to crash after running for extended periods of time (r. 2793411).

  • A problem where the mouse cursor could disappear and would not reappear until a new login session has been corrected. This problem could occur after running some applications that displayed full screen graphics and it only occurred in Mac OS X v.10.1 and later (r. 2766177).

References:

Back to top



QuickTime

QuickTime provides various multimedia services for the Mac OS, including the ability to display movies and facilities for the translation and display of various audio and visual data file formats.

  • A problem where scrolled unaccelerated synchronous movies would sometimes play in the wrong place in some browsers was corrected (r. 2837966).

References:

Back to top



Script Manager

The Script Manager enables internationalization of non-Unicode applications.

  • Some 'itlb' resources contained wrong values which would impact various international APIs. They have been fixed (r. 2835050).

References:

Back to top



Text Encoding Converter

The Text Encoding Converter enables the conversion of text data from one encoding to another (e.g., Mac OS Roman to Windows Latin-1). It is targeted for Internet applications that need to handle text typically provided in non-Mac OS encodings.

  • Updated the Character palette tables to fix the bug in the JIS X 0213 mapping. The updated mapping is shown in the table below (r. 2824232).

  • Fixed a bug in the mapping between JIS X 0213 and Unicode. The following is the updated mapping (r. 2803416):

    JIS X0213Unicode  JIS X0213Unicode  JIS X0213Unicode 
    1-86-04u69EA 1-89-31uFA52 1-91-79uFA60 
    1-86-73uFA45 1-89-32uFA53 1-91-89uFA61 
    1-86-87uFA46 1-89-45uFA54 1-92-15uFA62 
    1-87-05uFA47 1-89-49uFA55 1-92-16uFA63 
    1-87-53uFA48 1-89-68uFA56 1-92-24uFA64 
    2-80-09uFA49 1-90-14uFA57 1-92-29uFA65 
    1-88-05uFA4A 2-84-48uFA58 2-89-73uFA66 
    1-89-07uFA4B 1-90-19uFA59 1-92-57uFA67 
    1-89-19uFA4C 1-90-26uFA5A 1-93-67uFA68 
    1-89-20uFA4D 1-90-36uFA5B 1-93-86uFA69 
    1-89-23uFA4E 1-90-56uFA5C 1-93-91uFA6A 
    1-89-24uFA4F 2-85-84uFA5D  
    1-89-25uFA50 2-85-85uFA5E  
    1-89-27uFA51 1-91-07uFA5F  


References:

Back to top



Text Services Manager

The Text Services Manager provides facilities for applications to communicate with various text processing utilities, in particular with text input methods.

  • A problem where accented characters typed very quickly could be carried over to multiple characters has been corrected (r. 2835628).

References:

Back to top



Window Manager

The Window Manager provides facilities for drawing and maintaining windows on the screen.

  • In some situations with multiple monitors,calling GetAvailableWindowPositioningBounds to determine the available area in which you can place windows (i.e. the area not covered by the Dock) would return the full size of the screen (rather than that area minus the area covered by the Dock). We now correctly take into account the position of the Dock on multiple monitors (r. 2783845).

  • Previously, when an application was hidden, the FrontWindow, FrontNonFloatingWindow, GetFrontWindowOfClass, and GetNextWindowOfClass would treat all of the application's windows as invisible and fail to return any windows. This behavior was unlike the behavior of the pre-Carbon Window Manager, where these APIs would still return visible application windows even when the application itself was hidden.

    The pre-Carbon behavior has now been restored to the Mac OS X Window Manager. The four APIs listed above will now return windows that would otherwise be visible even when the application is hidden. Windows that were explicitly hidden by the application will still not be returned. Note that IsWindowVisible will still return false for windows in hidden applications, but IsWindowLatentVisible can be used to determine whether the window is invisible because the app is hidden, or because the window was programmatically hidden by the application (r. 2816156).

  • Resolved an issue where a minimized window could be closed, but when it was closed its icon would not disappear from the Dock (r. 2825901).

  • Resolved an issue in window layering where the active window of the front-most application could still be drawn behind inactive windows of a background application (r. 2825893).

  • Option-click events in utility windows are now handled as a special case so that Mouse Down Carbon Events in utility windows of background applications will not hide the foreground application (r. 2813727).

References:

Back to top






References

Apple's Mac OS X Developer Documentation Collection on the web at:
  Comment http://developer.apple.com/documentation/macosx/macosx.html

Technical Note TN2029, "Mac OS X v10.1"

Back to top



Downloadables

Acrobat gif

Acrobat version of this Note (148K)

Download


Back to top