mySTEP History

This document describes the changes and additions to the mySTEP library.

------------------------------------
Versions B1000...
------------------------------------

* NSData: fixed a double-free() bug in -[NSData initWithContentsOfFile:]\
* NSMenuView: added vertical and horizontal scrolling to large menus (incl. drawing arrows)\
* NSMenuView: fixed an issue that submenus were closed immediately when moving the mouse out of the submenu\
* NSMenuView: added vertical and horizontal scrolling to large menus (incl. drawing arrows)
* NSMenuView: fixed an issue that submenus were closed immediately when moving the mouse out of the submenu
* NSMutableArray: fixed a bug when one tried to replaceObjectAtIndex:withObject: where the old and new objects are the same
* NSConnection, NSPortCoder, NSDistantObject made compatible to Cocoa and working (again)
* bug in NSButtonCell drawing for Checkboxes fixed
* NSViewAnimation made working
* fixed a memory management bug in NSPasteBoard
* user experience greatly improved on slow graphics systems by generally coalescing events until the queue becomes empty before doing a pending (time-consuming) redraw
* sorting with NSSortDescriptor added
* NSAssert macros and internal handler fixed and improved
* optimized algorithm for determining the longestEffectiveRange of attributed strings
* fixed a bug in replacing characters in attributed strings
* made decoding of NSAttributedStrings compatible to NIB files
* added a Table Panel
* fixed "creeping" of window content when resizing (resize did round the delta down to integer values)
* implemented -zoom:
* fixed a bug in creating the subviews of the NSThemeFrame
* fixed bugs in reading GIFs and ICNS
* fixed bug in decoding Attributed Strings
* NSShadow implemented (ingored in X11 backend)
* fixed a bug in discardEventsMatchingMask (which did not delete before but up to the given event and deleted nothing if before was nil)
* added limitation of window frame to visibleFrame when resizing or moving windows
* fixed a retain/release problem when a timer's fire handler did re-enter the same run-loop
* fixed recursion when autohiding scrollers allows them to be unhidden and vice versa (did lead to recursion in reflectScrolledClipView)
* fixed missing userInfo in Exceptions from KVC
* made chunked decoding work for HTTP NSURLProtocol
* separated _NSMemoryOutputStream and _NSBufferOutputStream
* fixed a bug in _NSMemoryInputStream that did not retain the underlaying data object
* added code for -[NSData replaceBytesInRange:withBytes:length:]
* improved NSURLCache
* fixed management of Window Levels (-level, -setLevel, -orderWindow:relativeTo:, WindowCount(), WindowList())
* fixed opening of field editor, handling NSTextMovement notifications and end of editing
* connected NSSearchField to the Field Editor
* handle calls to -[NSTextView didChangeText] to post NSTextDidChangeNotifications
* send NSBoundsChangedNotification and NSFrameChangedNotification independently of any internal optimizations
* fixed sizing of NSTextViews, especially if used as Field Editor
* added internal tests for correct byte swapping to binary property list class
* -calcDrawInfo: -sizeToFit & -calcSize fixed
* fixed a severe bug when writing binary property lists (offset table size must depend on total size of object data and not number of objects)
* made screen scaling an additional factor to what the Xserver tells
* horizontal and vertical grid flags were swapped in NSTableView
* fixed issue with window resizing and NSClipView (because the clipView has customBounds)
* removed GSMutableCString from the NSString class cluster since it was fundamentally flawed (could not do a -setString: to a full unicode string)
* fixed an issue with proper sequence of releasing the graphics context and ordering out during -close
* fixed translation of X11 keycodes to ISO-Latin1
* fixed handling of key equivalents
* prepared -[NSMutableAttributedString mutableString] return a proxy that updates the attributes of the original string
* added NIB compatible keyed decoding of NSAttributedString
* added text selection by mouse-dragging
* improved handling of keyEquivalents (handle at the END of the responder chain so that they can be overridden by the firstResponder)
* fixed NSThemeFrame to avoid redrawing the title bar if the redraw rect does not include it (did increase the drawing time and backing store flush-rect largely)
* added a hack to easily locate a character position that has been clicked in NSTextView
* improved keyboard mapping table
* worked on NSSearchField to correctly display all components
* improved the NSTextField editing handler (fieldEditor, callbacks, becomeFirstResponder etc.)
* merged NSCell text attributes into a single NSDictionary that can be passed to the StringDrawing additions
* added missing Cursor icons and moved cursors to separate subdirectory
* made -[NSCursor set] really work on X11
* improved NSPathControl/Cell/ComponentCell
* made -[NSCell title/setTitle] synonyms for -[NSCell stringValue/setStringValue] (except NSButtonCell), i.e. removed _title iVar from NSCell and introduced in NSButtonCell
* improved NSMutableArray operations by using memmove()
* stuffed some memory leaks
* improved performance of GSSequence decompose (reduced number of memcpy calls)
* fixed a bug in the memory allocation tracker
* added some default properties to NSHTTPCookie
* fixed handling of "data://" scheme (RFC2397)
* reworked NSHTTPURLProtocol and NSSocketStream to be compatible to Cocoa and made basically working
* provided basic parsing fro NSXMLDocument and implemented many missing methods
* added some minor missing methods (e.g. decodeIntegerForKey:)
* checked Foundation and AppKit with Clang and fixed several issues (most of them: memory leaks, some potential NULL pointers and unitialized variables)
* class specific allocation counters added to better trace down memory leaks (enable by NSLog=memory)
* NSProtocolFromString() copied from GNUstep
* made mySTEP.make identify all existing compilers to build multi-architecture binaries
* worked on NSOperation
* worked on NSXMLDocument etc.
* worked on NSHTTPCookies, NSHTTPCookieStorage and _NSHTTPProtocol
* added Window menus (i.e. a menu defined by -[NSWindow setMenu:] is drawn above the toolbar
* reworked ThemeFrame to use WindowIconButton for document icon & window title
* fixed some issues with moving and resizing windows
* accept NSLog environment variable to control NSLog output ("empty", "yes", "memory")
* screen scaling from X server dimensions is default, override by local variable only if that exists
* made Window title bar, toolbar and scrollers dim if they are not in the key window
* added script to automatically update the localized nibs from a translation dictionary

------------------------------------
Versions ...B1000
------------------------------------

* improved Xrender path stroking a little
* fixed files to have a newline at the end because some compilers complain about this and have no switch to inhibit this warning
* mySTEP.make reworked to be a little easier to understand and maintain
* changed NXConstantString to NSConstantString
* simple CoreFoundation wrapper/compatibility framework started
* fixed drawing of PNG/TIFF Alpha (comes as non-premultiplied from libraries)
* fixed some drawing (imageDimsWhenDisabled) and positioning issues in NSButtonCell
* added setImageScaling to NSButtonCell
* Made NSToolbar basically working and useable on small screens
* Backend: progress towards fully XRender based backend (for rotated bitmap and glyph drawing incl. pattern colors)
* Foundation: many bug fixes to DO system
* AppKit: apply initialFirstResponder

------------------------------------
Versions ...B916
------------------------------------

* Foundation: fixed an issue where the signature from the implementation differs from the protocols (@0@+8:12 vs. @0@+8:0) - gcc 2.95.3 bug?
* Foundation: fixed methodSignatureForSelector to look through @protocols
* Foundation: fixed NSMethodSignature and NSInvocation so that DO finally works
* AppKit: NSToolBar implemented (incl. loading default items from AppKit-Info.plist)
* Foundation: header files updated to 10.5 compatibility
* Foundation: NSXML headers and classes added
* AppKit: modifed NSApplication, NSWorkspace, QSLaunchServices to use files in /tmp/.QuantumSTEP for the -launchedApplications and -activeApplication database
* Foundation: added NSFullUserName()
* AppKit: added NSDrawWindowBackground(), [NSPrintOperation -setShowPanels:] to the header file
* Foundation: added wrapper to NSObject for handling fast enumeration protocol by calling nextObject
* AppKit: fixed bug in NSEvent which prevented passing of Expose events to NSWindow
* Backend: integration of Xrender started (incl. NSBezierPath tesselation, GlyphStore)
* Foundation: NSXMLNode and subclasses added
* AppKit: implementation of NSPathCell, NSPathControl started
* AppKit: optimizations in String Drawing
* AppKit: improved look and operation of NSTableHeader&NSTableHeader Cell
* AppKit: load system colors from AppKit-Info.plist
* Foundation: fixed handling of timezone (i.e. read /etc/localtime)
* Foundation: fixed bug in getting limit date for repeating timers
* Cocoa: added include to CoreData.h
* ImageKit: made compile again
* Security: made compile again
* PDFKit: made compile again

------------------------------------
Versions B600..699
------------------------------------

* Foundation: added %C formatting to stringWithFormat
* Foundation: optimized handling of NSHomeDirectory()
* AppKit: NSTableView: preliminary sizeToFit added
* Backend: draw glyph bitmaps only if not completely outside of clipping rect
* AppKit: NSTextContainer, NSTextView: auto-resizing fixed
* AppKit: NSWindow: constraining/autosizing to screen in PDA and non-PDA mode improved (now done in -orderFront not on -init)
* AppKit: NSBox: fixed bug in autoresizing of box and subviews
* AppKit: NSMenuItem(Cell): handling of attributedTitle fixed
* AppKit: NSClipView: fixed scrollPoint/scrollToPoint to match behaviour
* AppKit: NSScroller, NSScrollView: added user defaults to control position, appearance and behaviour of the scrollers
* AppKit: NSMenuView: dynamically changing menu bar height removed since we have resolution independence
* AppKit: NSClipView: documentVisibleRect corrected
* Backend: reduce clipping box to window
* AppKit: NSCell: dim image when highlighted to provide better visual feedback for checkboxes etc.
* AppKit: NSButtonCell: found a way to recognize if a NSSwitch or NSRadio button is loaded from NIB and distinguish behaviour
* AppKit: NSMatrix: use cell-state to track selections; code heavily simplified; aligned operation to OSX, selectedCell, selectedRow etc. return values fixed
* AppKit: NSBrowserCell: fixed appearance and behaviour
* AppKit: StringDrawing: fixed setting of text clipping rect
* AppKit: NSView: fixed issue with setting/updating/preserving clipping box during drawing of subviews
* AppKit: NSClipView: improved scrolling by copying pixels on screen as much as possible
* AppKit: fixed isFlipped for more NSView subclasses
* AppKit: NSView - fixed some more unnecessary redrawing
* AppKit: NSScrollView - fixed issues with tiling and autohiding of scrollers
* AppKit: NSView - fixed some issues with Autosizing
* AppKit: NSPopUpButton - fixed double-release bug
* AppKit: NSCell - fixed bug when editing cell that returns nil stringValue
* AppKit: NSCursor management added

------------------------------------
Versions B500..599
------------------------------------

* AppKit/Backend: scaled font positioning/sizing fixed
* Foundation: NSZombieEnabled made a variable of NSDebug.h
* Foundation: some KVO code from GNUstep integrated
* AppKit: some code added to NSViewAnimation
* AppKit: fixed issues with CTM cache and NSTableView tiling
* AppKit: optimized grid and background drawing
* CoreData: CoreData moved to the gna.org svn repositoty
* CoreData: CoreData and the DataBuilder tools now compile with some warnings only
* AppKit: substitute font and font family names
* AppKit: fixed issue when loading multiple faces from single font file
* AppKit: bounds, frame, window instance variables renamed to _bounds, _frame, _window to reduce problems with subclassing
* AppKit: NSFont, NSFontDescriptor, NSFontManager modernized to use NSFontDescriptor as the core font matching mechanism
* Backend: wrapped libfreetype to handle smooth fonts by NSFontDescriptor
* CoreData: GSCoreData added and made compile (not tested)
* AppKit: added underlining, strike-through, link underlining and NSTextAttachment handling for text drawing by NSLayoutManager
* AppKit/Backend: modified to pass NSGlyph to the graphics context for text drawing
* AppKit: fixed an issue with ImageReps stored in a NIB file (for Checkboxes etc.)
* Foundation: substitute default MIME type for NSURLProtocols based on path extension if server does not provide one or if we load from a "file:" URL
* AppKit: added some missing NSTextAttachment methods
* Foundation: fixed a bug in NSAttributedString where getting the longestEffectiveRange ran into an infinte loop
* AppKit/Foundation: fixed handling of relative file names passed on the command line (conversion to file: URL)
* Foundation: fixed return value of rangeOfString: when string is not found
* AppKit: fixed issue when loading damaged ICNS file (resulted in spurious exception)
* AppKit: fixed issue with loading the selected item of a NSPopUpButtonCell from NIBs
* AppKit: removed internal use of the NSMenuItem protocol (10.5)
* IOBluetooth/IOBluetoothUI: made much more compatible to OSX behavior (now scans and retrieves device names completely in background)
* Foundation: fixed bugs with running NSTasks
* AppKit: fixed issue with copy for NSImage (did copy valid flag but not the image reps) - result was unneccessary loading from file
* Backend: added a _grabKey: method to allow to grab e.g. the Power and AUX keys
* AppKit: use application name as bundleName if there is no CFBundleName (makes locating old style applications more reliable)
* Foundation: use application name as bundleIdentifier if there is no CFBundleIdentifier (makes old style applications use UserDefaults properly)
* Backend: fixed rounding bug with subpixel coordinates in bitmap drawing that ended in an X Error instead of drawing

------------------------------------
Versions B400..499
------------------------------------

* AppKit: fixed more bugs in NSScroller, NSScrollView, NSClipView interworking
* AppKit: fixed locating NSCustomResources when we load a NIB file from a loaded bundle
* Foundation: fixed NSTask so that NSTaskDidTerminateNotifications are delivered immediately from the runloop (not ASAP)
* Foundation: fixed bugs in NSTask that did not properly close NSPipe descriptors
* Foundation: new methods of 10.5 added to header files (almost no implementations available)
* Foundation: NSUInteger, NSInteger, CGFloat, CFIndex defined
* IOBluetooth/IOBluetoothUI: rough implementation for IOBluetoothDeviceInquiry and IOBluetoothDevice based on hcitool for Linux added
* SystemStatus: device description database extended and Bluetooth, IrDA added for several devices
* AppKit: fixed most bugs in NSButtonCell highlighting and transparency
* AppKit: context menu initializsation, getters, setters corrected
* AppKit: NSTableView modernized: added aternating background and grid
* AppKit: fixed drawing of NSSliderCells when used in NSMatrix and NSTableView
* AppKit: fixed calculation of position where context menu pops up
* Backend: flushGraphics did not use a neutral GC; expose events now simply update the dirty rect and issue a flushGraphics
* AppKit: setNeedsDisplayInRect: and drawing (convertRect:toView: etc.) further optimized to reduce number of FPU operations
* AppKit: needsPanelToBecomeKey and becomesKeyOnlyIfNeeded implemented
* Backend: _sendEvent added to _NSX11Screen to support handwriting and virtual keyboards
* AppKit: NSColorPanel improved (e.g. use a JPEG graphics to display the Color Wheel)
* AppKit: resizing of subwindows optimized
* AppKit: fixed a bug where the real file owner object of a loaded NIB did not receive the -awakeFromNib

------------------------------------
Versions B300..399
------------------------------------

* AppKit: NSColorWell made to show a black/white triangle with the color alpha-blended over it (if the Backend supports!)
* AppKit: interaction between NSColorWell, NSColorPanel improved (e.g. setContinuous, setColor, etc.)
* Foundation: Distributed Objects through NSMessagePort made working!
* AppKit: communication with SystemUIServer improved
* Foundation: NSMessageSignature and NSInvocation cleaned up to properly use the type info and build a stack frame (for __builtin_apply)
* AppKit: queued up X11 expose events as NSApplicationDefinedEvents and processed in NSWindow's -sendEvent
* AppKit: added _setTexturedBackground: private method
* SystemStatus: device description database extended and some bugs found
* AppKit: interaction split completely redesigned between SystemUIServer (Status Bar only) and loginwindow (application list, shutdown, inking&keyboard components)
* AppKit: fixed issues with NSBezierPath drawing
* AppKit: fixed issues with nested and multiple flipped views
* AppKit: improved NSMenuView's mouseDown tracking loop

------------------------------------
Versions B200..299
------------------------------------

* General: Build numbers are now derived from SVN version numbers
* Backend: added NSBackingStoreBuffered store support to NSWindow/NSGraphicsContext
* Backend: (partially) fixed issues with matching scaled X11 Server Fonts
* Foundation: added a softfloat wrapper (required for OpenMoko device)
* AppKit: some more fixes in tracking loop
* AppKit: solved an issue when closing the window (tried to set the X11 keyboard focus to the closed window)
* AppKit: modified visual appearance of NSColorWell and made it interact with the ColorPanel
* AppKit: added some preliminary Drag&Drop support to NSImageView
* AppKit: improved warnings and error messages coming from libTIFF

------------------------------------
Version 2.3 (B186...199)
------------------------------------

1. Foundation:

NSMapTable, NSHashTable
* is_prime was quite inefficient by using a double sqrt()

NS(Socket)Stream
* now links with libopenssl

NSBundle
* added an Autorelease Pool when searching through the bundle
* changed bundleWithPath: so that it allocates properly for a subclass

NSURLProtocol
* prepared to handle the data: URI (RFC2397)

2. AppKit:

NSMenuItem and NSPopUpButtonCell
* modified to properly work correctly in the class hierarchy

NSBezierPath
* drawing of bezel styles for NSButtonCell, NSPopUpButtonCell, NSComboBoxCell, NSSegmentedCell
   harmonized and reduced to a single private method in NSBezierPath

NSScrollView
* now correctly uses isFlipped YES

NSSlider(Cell)
* mouse tracking moved to Cell variant

NSButton
* now correctly uses isFlipped YES

NSCell
* performClick now has got visual feedback
* tracking code simplified

NSView
* needsDisplay corrected (should not look at list of dirty sub-rects but at the total invalid rect)

NSCustomResource
* had a retain error

NSImage
* imageNamed: improved search paths

NSEditor, NSEditorRegistration
* informal protocols added to header files

NSString Additions
* corrected text position for drawAtPoint: for flipped coordinates

3. Others:

X11 Backend
* added system wide screen scaling transparent to AppKit (i.e. NSScreen dimensions are also scaled accordingly)
* fixed a bug in the Expose rect calculation

------------------------------------
Version 2.2 (B109...B185)
------------------------------------

This is a completeness and bug fixing release. The following bugs and deficiencies have been fixed.

1. Foundation:

NSArray
* fixed a bug in -initArrayWithObjects:...
* made writeToFile: use XML format

NSBundle
* made more flexible to handle multi-platform bundles

NSDateFormatter
* -initWithCoder: added
* most missing methods of 10.4 added
* some bugs with formatting corrected

NSDecimalPlaceholder (private)
* added because it appears in NIB files with NSDecimalFormatter

NSByteOrder
* fixed a bug with swapped double values on the ARM processor

NSNotification
* removed retain/release for the notification object because this causes trouble when notifications are sent from -dealloc (like in NSWindow)

NSIndexSet
* completed and tested to work for NSTableView

NSIndexPath
* tested to work for NSOutlineView

NSURL
* -copyWithZone: added

NSURLConnection, NSURLProtocol, NSURLResponse etc.
* made work with HTTP (without supporting: caching, cookies, FTP and HTTPS)

NSURLHandle
* reimplemented to be based on NSURLProtocol and NSURLRequest

NS(Socket)Stream
* prepared to include libssl (to provide https for NSURLProtocol)

NSString
* most missing 10.4 methods implemented
* fixed some bugs in conversion code between C-String and Unicode strings (might still be buggy, e.g. when appending an Unicode string to a C-String)
* several bugs fixed and difficult to maintain code optimized in handling of character encoding
* improved -initWithFormat:... to be safe against overflows and prepared to handle Unicode strings

NSAttributedString
* -setAttributedString made more efficient(since it is used heavily in StringDrawingAdditions)

Distributed Objects: NSProxy, NSConnection, NSPort etc.
* continued towards a working solution

NSPortMessage
* made roughly compatible how MacOS X encodes a message into a data stream sent over TCP/IP

NSMessagePort, NSMessagePortNameServer
* implemented using AF_UNIX named socket files in /tmp/

NSSocketPort, NSSocketPortNameServer
* implemented using AF_INET sockets
* implemented using NSNetService releasing us from using gdomap any more (but NSNetService does not yet work)
* gdomap daemon removed

NSPropertyListSerialization
* fixed a bug when decoding binary boolean values
* fixed a bug when decoding double precision float values
* writing of binary property lists added

NSKeyedUnarchiver
* fixed a bug with recursive NSClassSwapper decoding 

NSXMLParser
* added a mode to handle input much more lazily for HTML syntax (i.e. don't expect <?xml?>, auto-close open tags)
* load file HTMLEntities.strings to translate entities when in HTML mode
* error handling improved and made compatible
* moved source code to SimpleWebKit - but remains part of Foundation

NSSortDescriptor
* keyed decoding added

NSTimeSzone
* made complete (newer methods added)

NSNetServices
* made monitor the ZeroConf socket and receive&decode DNS messages

NSNumberFormatter
* added from GNUstep-base
* fixed some missing includes and substringFromRange: -> substringWithRange:

2. AppKit:

NSApplication
* -modalWindow added
* -requestUserAttention: and -cancelUserAttentionRequest: prepared
* inking engine moved to SystemUIServer services
* improved/fixed responder chain for key-events with key-equivalents
* -preventWindowOrdering implemented
* add new modes to default NSConnection
* handling of Windows menu fixed

NSText, NSTextView
* basic editing functionality (re)implemented

NSClipView
* fixed to really and correctly clip

NSComboBox(Cell)
* properly pop up/down a NSPanel with an embedded NSTableView

NSScrollView
* decoding of scroller visibility flags from NIB files

NSTableView
* grid drawing added

NSView
* fixed a bug that -setNeedsDisplayInRect was not propagated properly
* added NSShowAllDrawing and NSShowAllViews defaults added (can also be used on the command line by -NSShowAllViews)

NSWindow
* honors -setOneShot: so that a graphics context (X11 window) is released on -orderOut: and recreated on -orderFront:
* forward -makeKey to the backend
* set window shape on first drawRect: of the NSThemeFrame
* made progress towards working setLevel:
* handling of Windows menu fixed
* fixed bug with -dealloc for windows (e.g. panels)

NSSound
* implemented to call SystemUIServer services

NSTextField
* modified to properly display (and edit) formatted values

NSCursor
* blanking improved; arrow cursor added as bitmap image

NSBox
* adapted in style and fixed positioning of components

NSButtonCell
* -backgroundColor added
* Bezel styles reviewed and adjusted

NSBitmapImageRep
* converting representations to PNG, TIFF, JPEG etc. added so that images can be written to files
* GIF loading made working (again)

NSCachedImageRep
* missing implementation added
* use NSCopyBits() to draw (by blitting a rect on the server)

NSNibLoading
* some smaller and larger bugs fixed

NSAttributedString additions
* definitions for document attributes added
* dynamically load and use WebKit for initialization with HTML

NS(Attributed)StringDrawing
* burden of all work moved to NSLayoutManager with help of NSTextContainer and NSTextStorage
* backend interface for all text rendering focussed in NSLayoutManager and NSGlyphGenerator plus NSFont
* improved to handling some simple compositing operations
* fixed a subtle bug with XChar2b which resulted in bad string width calculations on the Zaurus

NSDocumentController, NSDocument, NSWindowController
* made working and loading NIB files again
* fixed to load files and URLs and handle 'any' file types

NSFont, NSFontManager, NSFontDescriptor, NSFontPanel
* header files reviewed to be 10.4-aligned
* headers/sources prepared to use libfreetype2 in the Backend

NSSplitView
* fixed bugs with correctly drawing the splitter

3. Others:

NSUIServer protocol
* moved to separate file

SimpleWebKit
* improved largely to basically work (loads HTTP, parses HTML and displays it in a NSTextView)
* knows about the DOM tree
* has a partial implementation of ECMAScript
* is written completely in Objective-C and compiles with gcc-2.95.3

QTKit
* framework and header files started

objc-2.0
* started to create a translator from Obj-C 2.0 to Obj-C 1.0 (with gcc 2.95.3 limitations)

----------------------------------
Version 2.1 (B94...B108)
----------------------------------

This is a bug fixing release. The following bugs and deficiencies have been fixed.

1. Foundation:

NSString
* allocation of temporaries on stack replaced by objc_malloc()

NSUserDefaults
* caching improved

NSScanner
* private methods to support NSText removed

NSByteOrder
* NSBigEndian etc. renamed to NS_BigEndian (to match documentation)

NSKeyedArchiver
* keyed decoding of NSCalendarDate and NSTimeZone added

NSPropertyListSerialization
* handling of float/double values in XML format corrected (<real>)
* base 64 decoding of NSData values in XML format added (<data>)
* added writing NSNumber values
* properly byte-swap Unicode characters in binary property list

NSRunLoop
* found several bugs and memory leaks

NSTimer
* found bugs and memory leaks

NSAffineTransform
* added internal flags to reduce number of floating point operations for some simple transforms (identity and flip-Y, optionally with translation)

NSKeyValueObserving
* implementation skeleton added

NSBundle
* caching of resource search paths improved

2. AppKit:
* remaining header files reviewed
* drawing system fine-tuned
* NIB loading improved
- still missing: double buffered drawing

NSApplication
* autorelease pool for runloop improved
* issues in interworking with window refresh and event handling fixed

NSButtonCell
* image vs. text position and horizontal/vertical alignment issues fixed

NSText
* reimplemented to be more compatible to MacOS X 10.4

NSTextView
* reimplemented as a real subclass to be more compatible

NSTextStorage, NSTextContainer, NSLayoutManager
* partially implemented to allow for display of a single container in a single NSTextView

NSParagraphStyle
* completed

NSTextAttachment, NSTextAttachmentCell
* skeleton implementation

NSView
* fixed a bug in initWithCoder: that resulted in errors when decoding NSClassSwapper swapped views

NSScroller
* NSScroller fixed focus stack nesting error

NSNibConnector
* handling of NSIBHelpConnector added

NSLevelIndicator/Cell
* implemented mostly
* still missing is:
  - drawing of major tick indicators
  - rating indicator style
  - vertical orientation
  - use of a scaled image with color gradient as the indicator

NSStepper/Cell
* implemented

NSSearchField/Cell
* graphical appearance fixed
* loading from keyed NIB file fixed

NSControl
* added lockFocus and NSRectClip to initialize for properly calling e.g. -highlight of NSCells

NSStringDrawing
* improved handling of word/line wrapping

NSTableView
* reworked to use NSIndexSet for selections
* sort descriptors, header highlighting, alternating background etc. added

NSThemeFrame
* dragging and resizing of window implemented
* button actions corrected

NSMenuView
* modified to harmonize better with the new NSThemeFrame mechanism
* modified to use a tracking loop

NSFont
* cache named fonts

NSView
* -inLiveResize added
* -didAddSubview: and -willRemoveSubview: added
* some bugs and imprecisions fixed

NSWindow
* optimized to set round corners shape
* exact positioning fixed

NSImage
* caching with +imageNamed: improved (especially if image is not found)
* drawing and compositing revised to modify the CTM and call backend's _draw

NSX11GraphicsContext
* byte swapping of unicode characters on ARM processor for X11 string drawing corrected
* did not copy the clipping path on saveGraphicsState
* added a method to set the window shape
* changed backend drawing method from _composite to _draw

IOBluetooth.framework
started to add framework. Purpose is a generic Bluetooth API (similar to our own Wireless API). Unfortunately, the original is a mixture of Cocoa, CoreFoundation, IOKit and the kernel... 

---------------------------
Version 2.0 (...B93)
---------------------------

This is a major release since it rearranged all the sources to build framework directory structures.
When doing this, many smaller and larger issues have been addressed. They are not documented
here in detail.

This also means
* strict use Xcode and Apple gcc for first pass compilation (to faster and more easily identify bugs)
* integration of DO into Foundation
* better abstraction of the Backend based on NSGraphicsContext
* X11 backend completely rewritten for graphics functions (e.g. clipping to bezier paths, smooth image scaling)
* directly load Models from modern XML-based NIB files (nib2mib translation removed)
* Header files have been reviewed to match the MacOS X 10.4 Cocoa documentation as good as possible
* many missing classes have been added (e.g. NSIndexSet, NSURLDownload, NSNetServices, NSStream, NSPredicate, NSSegmentedCell)
* bundleForClass: working

-----------------------------
Version 1.12 (...B87)
-----------------------------

This release adds more missing methods and classes and fixes many bugs and visual glitches.

Foundation:

NSData
* -writeToUrl:atomically: added

NSFileManager
* -directoryContentsAtPath now checks for a file "$DIR/.hidden" and hides these files
* skip resource forks (file names beginning with "._")

NSString
* stringByAddingPercentEscapesUsingEncoding: and stringByReplacingPercentEscapesUsingEncoding: added

NSURL
* strip off trailing / from -path

NSIndexPath, NSIndexSet
* headers and implementation added

AppKit:

NSApplication
* command line argument processing streamlined and extended to handle all delegate methods (incl. printing)
* moved GSListener from GSServices.m here

NSDocumentController
* interworking with NSApplication for opening files improved

NSTreeController
* header added

NSArrayController, NSObjectController, NSUserDefaultsController, NSTreeController, NSController
* common implemetation NSController.m added

NSWorkspace
* launching of applications with URLs improved to handle more options (incl. printing) and pass arguments as expeced by NSApplication or its delegate
* added a mechanism to recognize the LSTypeIsPackage for document bundles
* removable media checking and notifications added (so that Finder can notice them and Open/Save panel can mount/eject)

NSImageRep
* bug in imageRepsWithContentsOfFile fixed (if file does not exist)
* disabled smooth scaling in drawRect: due to low speed and high memory requirements of current smooting algorithm

NSImage
* lockFocus made less sensible if there are no representations (e.g. the image file can't be parsed)

NSSavePanel, NSOpenPanel
* fixed and made working

NSDocumentController
* use first Editor type for -defaultType and -newDocument

NSTableView
* columnAutoresizingStyle properly named
* prepared to handle grid and alternating background
* header cells given light blue background

NSTableColumn
* sizeToFit implemented
* retain header/data cell (to be more robust)

NSScrollView
* vertical scroll bar moved to the right

NSWindow, NSPanel
* additional window mask bits added
* handling of window background color improved
* prepared for using NSThemeFrame in a mode without a window manager

NSColor
* proper conversion between RGB and HSB added

nib2mib, GMArchiver, GMAppKit etc.
* fixed to allow to properly encode and decode custom objects

------------------
Version 1.11
------------------

This release adds many more missing methods and classes. And it has been adapted to compile
on MacOS X 10.4 (Tiger). It includes some first extensions from 10.4 Cocoa.

Foundation:

NSValueTransformer
* class implemented

NSKeyValueCoding
* class reworked

NSKeyValueObserving
* class header added

NSArray
* prepared to use QuickSort

NSMutableArray
* initWithCoder: fixed to properly decode empty array

NSString
* bug with getting cString from string created by initWithData:encoding:NSASCIIStringEncoding fixed

NSCalendarDate, NSDate, NSTimeZone
* latest version imported from mGSTEP-0.547
* added %F to initialized NSCalendarDate 

NSSocketPort, NSStream
* added

NSPropertyList
* now decode/encode NSValue and NSDate in binary format
* auto-detection of format improved

NSNetService, NSNetServiceBrowser
* header files defined based on 10.4 (no implementation yet)

AppKit:

NSArrayController, NSObjectController, NSUserDefaultsController, NSController
* header files added

NSApplication
* hide/unhide application menu on orderFront/orderFront

NSKeyValueBindingCreation, NSKeyValueBinding (NSPlaceholders)
* class headers added

NSWindow
* update mechanism improved for orderFront:
* defaultButtons: added
* experimental code to handle setLevel: added

NSWorkspace
* application database reworked (moved to new class QSLaunchServices)

NSParagraphStyle
* code added to really handle paragraph style

NSString (Drawing Additions - XRDrawingEnginge)
* made draw multi-line strings (without properly handling Tabs yet)
* perpared to draw X11 Unicode fonts

NSMatrix
* sendAction changed to send action to taget of NSMatrix if button has no action/target

NSTabView
* selectTabViewItemWithIdentifier added
* takeSelectedTabViewItemFromSender coded
* controlSize & controlTint prepared

NSPopUpButton(+Cell)
* made pop up its menu

NSSearchField, NSSearchFieldCell
* fixed handling of search string

NSAffineTransform
* taken from mGStep-0.547 and replaced PSMatrix; PSMatrix removed

NSView
* found some bugs in the -displayXXX methods
* made use NSAffineTransform and not PSMatrix

NSBitmapImageRep
* -initWithFocusedViewRect: updated to really read pixel data from the X screen

NSMenu
* menuNeedsUpdate: delegate method implemented (called by NSMenuView)

NSEvent
* +mouseLocation added to header file

NSMenuItemCell
* did not properly handle -length of 0.0 from -representedObject (e.g. NSStatusMenuItem)

NSScreen
* deviceDescription added
* prepared to handle screen rotation (portrait/landscape) by checking hinge status and updating deviceDescription
* cache visibleFrame

NSTabelColumn
* -isResizable replaced by -resizingMask

NSAttributedStringAdditions
* prepared to handle HTML and DOC formats (not implemented)

NSFont
* cache default font size for menu fonts

NSText, NSTextFieldCell, NSTextField, NSControl
* handling of textDid...: and control:textDid...: notifications fixed

Others:

ABAddressBook
* vCard processing aligned with vCalendar impelmentation (not public)

NSMailDelivery
* rewritten to call the private Mail.framework of QuantumSTEP

WebKit
* header files extended and aligned to latest documentation

mySTEP.sdk
* added an -I include search path so that when building frameworks we can refer to our own headers by #import <Framework/header.h>

nib2mib / GMArchiver / GMAppKit
* added handling of NSMenu delegate
* added handling of NSTabView and NSTabViewItem
* macro SET_CLASS did have a bug
* fixed a bug in loading the menu of NSPopUpButton
* improved to handle File Owner/NSOwner references properly
* archiving of checkboxes and radio buttons of small and mini size fixed
* adapted to new Tiger instance variables and internal classes

NSSystemStatus
* changed SYSDevice, SYSWireless, SYSLocation to a new event/notification driven mechanism
* worked on SYSWireless for managing WLAN and GPRS cards (e.g. Audiovox RTM8000, Eagletech GSM/GPRS CF+ FCC ID: MSQAGC100)
* worked on SYSLocation for managing NMEA 183 compatible GPS cards (e.g. Billionton CF GPS)
* worked on NSCameraMovie for Sharp CE-AG06 card
* added option to issue stty command when opening the device to set e.g. baud rate

------------------
Version 1.10
------------------

This is mainly a smoothing and bug fixing release. It also adds some missing methods and classes.

Foundation:

NSFileManager
* createDirectoryAtPath now requires that the superdirectory exists
* added _createDirectoryDownToPath: to create paths

NSUserDefaults
* create database directory if it does not yet exist

NSArray, NSDictionary, NSString
* dataWithContentsOfURL: and initWithContentsOfURL: added

NSMutableArray
* exchangeObjectAtIndex:withObjectAtIndex: added

NSData
* dataWithBytesNoCopy:length:freeWhenDone: added
* properly initWithContentsOfFile: for device files, /proc and named pipes where a seek fails

NSDate
* descriptionWithCalendarFormat:timeZone:locale: added

NSXMLParser
* class added

NSSortDescriptor
* class added

NSError
* class added

NSString
* bug with UFT8string fixed

NSCalendarDate, NSDate, NSTimeZone
* header files unmangled
* description format %F fixed to print milliseconds

NSDateFormatter
* added from GNUstep

NSPropertyListSerialization
* changed to use NSXMLParser - improves performance
* new highly compressed binary format introduced (by approx. 7-8 compared to XML format)
* found a double-release bug

AppKit:

NSWindow
* bug in setContentSize: fixed

NSFormCell
* dealloc issue solved

NSPopUpButton(+Cell)
* reworked to use NSMenu and added several missing methods

NSSearchField, NSSearchFieldCell
* class added

NSTableView
* split into correct header files NSTableColumn.h and NSTableHeaderView.h

NSOutlineView
* class borrowed from GNUstep-gui 0.8.5

NSTextFieldCell
* handling of placeholderString added

NSView
* method enclosingScrollView added

NSProgressIndicator
* added from GNUstep

NSApplication
* method replyToApplicationShouldTerminate: added
* method application:openFiles: added

NSDocumentController
* management of Open Recent submenu added

NSImage
* some bugs and potential memory leaks fixed

NSBitmapImageRep
* now reading ICNS format

NSMenu
* code from NSMenu behaving like a NSView removed...
* optimized amount of menu redrawing

NSMenuItem, NSMenuItemCell
* found a memory leak when removing menu items

NSGeometry
* NSContainsRect() fixed if edges are aligned

Others:

ABAddressBook
* create database directory if it does not yet exist
* ABSearchElement made working
* encoding&decoding extended

mySTEP.sdk
* fixed bug with stripping too much for loadable bundles in cross-makefile
* fixed cross-makefile to properly use -fPIC for loadable bundles
* added rules to generate Frameworks (copies will be stored in the /Development ... /mySTEP.sdk) and include them

nib2mib
* added -b flag to write new binary property list format

----------------
Version 1.9
----------------

This is a bug fix and GUI smoothing release.

NSButton
* push button drawing glitches fixed
* NSButtonType adapted to Cocoa numbering (needed to be identical for nib2mib to work)
* honors setTransparent:
* honors setBezelStyle:

NSBezierPath
* round coordinates to next integer

NSWindow
* did not properly catch NSWindowDidResignKey so that NSSystemDefinedEvent could go to Nirvana
* made return an NSTextView as the fieldEditor (so that it really implements input methods)

NSTextFieldCell
* draw focus ring around cell
* draw background if enabled or if bezeled

NSRunAlertPanel()
* sizing/screen location/layout issues improved
* crash fixed when pressing Ok (was the NSWindow issue)

NSFileManager
* prepared to handle virtual home directories on removable media (/Users on SD card)

----------------
Version 1.8
----------------

The most important changes and fixes have been to the visual appearance and API completeness/compatibility in the area of the Text Editing and keyboard/pen interaction.

WindowManager
* we have integrated a source snapshot of InterfaceWM (0.2.7) into the sources and made it compiling on MacOS X and mySTEP.
   This Window Manager is itself written (mostly) in Objective-C. Currently it uses only -lFoundation. The target is to integrate with
   parts of -lAppKit and -lxraw so that the layout style stays harmonized. This will also allow to use e.g. NSImage in the window manager.
* an alternative might be to add methods to XRaw to support a window manager (will be part of the myPDA runtime system)

NSUserDefaults
* completely rewritten to store persistent domains in separate files
* added to handle NSGlobalDomain

NSWindow (XRaw)
* added more private methods in the xraw backend to allow writing a full window manager by using AppKit
* processing of frameRect/contentRect fixed to be aligned with Cocoa

NSView
* performKeyEquivalent added

NSTimeZone
* added systemTimeZone management
* initialization modified to be more lazily

NSBundle
* main initialization changed so that standardDefaults and systemTimeZone are reloaded after initializing the mainBundle

NSBrowser
* made setDelegate call loadColumnZero so that NSBrowsers initialized from a nib file are automatically displaying the first column

NSMenuItemCell
* draw triangle for submenus (like NSBrowserCell)

NSButtonCell and NSButton
* made handle setObjectValue, objectValue properly - even for mixed state
* made display of mixed state checkbox working
* handling of first responder status moved to NSCell

NSWorkspace
* added -isFilePackageAtPath:

NSCell
* modified to use string drawing additions instead of an Xraw backend
* improved handling of textColor and background
* setBezeled and setBordered made mutually exclusive (as written in documentation)
* focus ring mechanism prepared

NSText
* made sending proper Notifications and delegate methods (e.g. NSTextDidBeginEditing and textDidBeginEditing:)

NSControl (and subclasses)
* fixed to handle delegate for e.g. NSControlTextDidBeginEditing in a systematic way

NSTextField and NSTextFieldCell
* made working properly (incl. background, bezeled etc.)

GSListener
* bug fixed when opening document based applications through DO (receiving application:openFile:)

GSImageRep
* prepared subclass to handle .icns files (Application icons)
* and .xwd files (X Window Dump)

SYSRemovableDevice
* to manage e.g. CF cards

SYSWireless
* modified to utilize SYSRemovableDevice and handle both, WLAN and GPRS cards

NSComboBox and NSComboBoxCell
* made working with dataSource

NSClipView
* scrollToPoint: moved from backend to class

NSObject (NSRunLoop)
* modified cancelPreviousPerformRequestsWithTarget::: so that selectors are matched properly (note: @selector(x) != @selector(x) on GNU Obj-C library!)
* added cancelPreviousPerformRequestsWithTarget and modified so that the timer and memory is released properly

NSString
* added stringByTrimmingCharactersInSet

NSAttributedString Additions
* prepared to write RTF files
* prepared for proper unit conversion of RTF 'twips' to millimeters

nib2mib
* modified to encode properly all named NSImages that are stored in the nib
* made translating NSComboBox and NSComboBoxCell

GMAppKit
* modified to encode NSImage name only (and not e.g. size which might be different)
* fixed some bugs and missing variables e.g. in unarchiving NSMatrix resp. NSForm
* archive either isBezeled or isBordered
* handle mixed state and radio/switch box buttons properly
* added a trick to encode the buttonType of NSButton and NSButtonCell

NSEvent (+XRContext)
* modified to better handle modifier key events (NSFlagsChanged)

ABPerson
* modified to add more info to a vCard

----------------
Version 1.7
----------------

General
* crash with NSLog(@"...%%...", ...) fixed

NSApplication
* run method protected by exception handler (so that e.g. unimplemented menu actions do no longer crash)
* changed updateWindows to the beginning of the loop so that they are updated once even on entering the run-loop

ABAddressBook etc.
* rewritten from scratch to simplify code and reduce library size

NSObject
* made doesNotRecognizeSelector: raise an exception (instead of calling error:)

NSTimeZone
* made find timezone files
* added reading timezone from NSUserDefaults database

NSString
* added UTF8 to -dataUsingEncoding:allowLossyConversion:

NSPipe
* did not return a pipe

NSTask
* made accept either NSFileHandle, NSPipe or NSNumber for stdinput, stdoutput, stderror

NSUserDefaults
* memory leak fixed

NSBundle
* infoDictionary did not retain internal reference

NSOutlineView
* prepared to be added

NSMenu
* validateMenuItem for enabling is called if target responds to this seclector - not only if it is conformant to the NSMenuItemValidation protocol

NSScreen
* formula for calculating visibleFrame's height fixed to better cover all cases

GMArchiver
* some weak points in decoding objects fixed

----------------
Version 1.6
----------------

The most important changes are the inclusion of image scaling, additional image formats, access to Battery&WLAN status, provisioning of AddressBook, improved interface compatibility and fixing of many bugs.

General
* changes of mGStep-0.536 integrated
* NSSystemStatus, NSCameraMovie moved from NSAppKit into separate library
* jpeg, png, ungif libraries added to SDK to link with libCocoa
* jpeg, png, gif representations are recognized
* made libFoundation automatically reference all other required libraries (e.g. -lm, -lobjc, -lpthread)
* made libAppKit reference all other required libraries (e.g. -lX11, -lmib)
* all filenames (NSFileManager) are now UTF8 capable
* BrowserView and TableView are now working correctly
* TableView incl. Header&Columns are read from .mib file

NSApplication
* - (id) targetForAction:(SEL)aSelector to:(id)aTarget from:(id)sender added
* made send application:openFile: to delegate for command line arguments in the proper instant
* synchronize user defaults when terminating

SYSWireless
* heavily extended in API and prepared to work with linux/wireless.h, i.e. the linux-wlan-ng extension

SYSBattery
* made to read useful information from /proc/apm

NSNumber
* MIB archiving of NSNumber corrected

NSPipe
* added to Foundation/NSFileHandle.h

NSTask
* prepared to take NSPipe as stdin/out/err

NSMatrix
* MIB archiving added

NSForm
* MIB archiving added/corrected

NSMovie
* private API added to wind and fetch frames as NSImage

NSObject
* className added
* +isSubclassOfClass: added

NSDictionary
* bug in decription: made it unreadable as an old style property list

NSPropertyListSerialization
* fixed a bug which prevented reading (unquoted) empty strings
* handle &gt; etc.
* made better handle old style property lists (with unquoted sequences)
* rewrote XML scanner - speedup is 14s -> 8s for a 5400 lines property list

NSWorkspace
* file type detection with application/icon/type improved & fixed
* prepared to handle multiple applications or versions for same file type
* applications/file types database made being presistent (to increase speed); rebuilt once if app is not found

NSDocumentController
* prepared to manage Open Recent submenu

NSMutableString
* - (unsigned int) replaceOccurrencesOfString: added

GMAppKit
* nib2mib encoding and decoding for many NSCell subclasses added
* also added for all NSTable class cluster

ABAddressBook
* Address Book Framework (Addresses-0.4.5) for GNUstep by Björn Giesler integrated

----------------
Version 1.5
----------------

The most important changes are the inclusion of image scaling and fixing of many bugs.

General
* bundle loading and preference panes made working
* updated to match mGstep-0.534 (which adds mainly NSImage scaling)
* made menu positioning dependent on system method [NSMenu menuBarHeight]

NSBezierPath
* -stroke made working

NSString
* UTF-8 encoding/decoding added

NSEvent
* keyModifierMask constants adapted (they use the upper 16 bits of an unsigned int)

NSApplication
* experimental inking mechanism added (uses a private GSInkingView class that manages inking with an NSBezierPath)

GSListener
* made recognize application:openFile: etc. and forward to delegate or NSDocumentController for document based applications

NSWorkspace
* path processing in openFile: and launchApplications: revised and corrected (now handles names with/without .app extensions)
* openFile: modified to send file to the intended application through Distributed Objects. If there is no response, tries to launch and retries to  contact

NSScreen
* allow compilation for different menu layouts (Desktop, PDA, Smartphone)

NSBundle
* use FileManager's directoryAtPath method to locate resources (was doing private opendir(), readdir())

NSPreferencePane
* made working
* added NSApplication category methods: - (void) orderFrontStandardPreferencePane:(id)sender; - (void) orderFrontPreferencePane:(NSString *)name;

NSMenuItem
* handling of image corrected

NSMenu
* - addItem: did notify the wrong index
* - update fixed to properly enable/disable menu item highlighting
* rules for positioning submenus improved

NSMenuItemCell
* made recognize represented object's length parameter (i.e. NSStatusItem length)
* processing of keyEquivalentModifierMask prepared

NSButtonCell
* did not properly return -image

NSMenuExtra
* made working as I think it sould be working - there is not much documentation available on the methods of this class

WebKit
* some core methods and classes implemented to use NSURLHandle for fetching data and NSAttributedString to read HTML files and NSText to render them

nib2mib, IMLoading
* prepared to better handle NSOwner/File Owner through encoding by a special entry
* did not encode keyEquivalentModifierMask

----------------
Version 1.4
----------------

The most important change is the new Menu system having NSMenuView and NSMenuItemCell implemented. Although these
classes are deprecated according to the Cocoa documentation, they have a pretty well designed interface. Nevertheless, Applications
should not assume these classes are available but use the NSApp mainMenu methods.
Other changes are in the nib2mib logic making the use of NIB file much more robust.

General
* Makefiles adapted to work with Zaurus-X-gcc-2.95.3X10.3
* nib2mib source code and tool generation makefile moved into this project (based on GNUstep nib2gmodel)
* made linking -lCocoa
* most important changes from mGSTEP 0.528 -> 0.530 added - Thanks, Felipe!
* made all system calls for file names use [path fileSystemRepresentationWithPath] instead of [path cString]

Protocol
* changed to use the Protocol class (subclass of Object - not NSObject) from the gcc objc library
* added a - (NSString *) description; method

NSObject
* forwardInvocation: made more robust for methods with unknown signature
* + conformsToProtocol added (was apparently missing?) - using a hack as the methods of libobjc's Protocol class don't work
* -copyWithZone and -mutableCopyWithZone added for compatibility (Zones are ignored in mySTEP)

NSProxy
* forwardInvocation: made more robust for methods with unknown signature

NSArray
* makeObjectsPerform: removed - makeObjectsPerformSelector: kept

NSCell, NSActionCell, NSButtonCell
* setHighlighted: default implementation added
* other missing methods added

NSFont
* more standard font methods defined

NSImage
* found a bug which prevented loading of system Images

NSAttributedString
* bug within range checks fixed
* range exceptions made a little more verbose

NSAttributedString Additions
* attributed string drawing implemented and aligned with Cocoa screen layout
* wrapping added for drawInRect:

NSString Additions
* string drawing re-implemented and aligned with Cocoa screen layout
* wrapping added for drawInRect:

NSMenu
* notifications for adding/inserting/removing items added

NSMenuItem
* some missing methods added

NSMenuView
* many bugs removed and made working!

NSMenuItemCell
* many bugs removed and made working!

NSWindow
* added decoding of mouseDragging events
* modified to add all windows to the NSApplication windows list so that all receive update messages

NSEvent
* Event description text table corrected

NSFileManager
* handle a virtual chroot("/home/myPDA") - no reference to this elsewhere in the mySTEP source code
* fileExistsAtPath did not use fileSystemRepresentationWithPath

NSBrowser
* didn't process setTarget, target and setAction, action in a consistent way

NSWorkspace - NSSystemStatus.h
* extension defined for getting battery status, controlling phone functions, getting (global position) location data, reading environmental sensors

NSAffineTransform, NSBezierPath
* made compiling - NSAffineTransform will replace PSMatrix completely

ZaurusCameraMovie
* renamed to NSCameraMovie to be more generic

SimpleWebKit
* based on NSText and NSAttributedString created (will be replaced by a full port of WebKit)

GMAppKit, GMArchiver, NIBClasses, IMConnectors, IMLoading, IMCustomObject
* adapted to work for and with new nib2mib tool
* use of replacementObjectForModelArchiver corrected

----------------
Version 1.3
----------------

General
* NSLog() made print messages including milliseconds precision - although not provided by kernel...
* makefiles fixed to cross-compile only changed source&headers for arm-linux version
* NSPortNameServer updated to restart the "gdomap" daemon properly
* Mib-reading made a little more foolproof (now also handles NSImageCell)
* Bug in NSPortCoder.h (SIGNATURE_FORMAT_STRING) resulted in Segmentation Faults
* DOconfig.h corrected to describe Linux_ARM stack frame conventions properly
* method_types_get_next_argument() in mframe.m adapted to properly handle indirectly passed structs (e.g. NSPoint)
* internal function calls in NSConnection and mframe changed to work around a compiler bug
* completely hide mframe.m logic in NSInvocation and NSMethodSignature
* NSStringFromSelector(SEL aSelector) did return quoted string - removed quotes to permit comparing selectors by isEqualToString:

NSPortCoder
* some bugs with bycopy protocol fixed

NSObject, NSProxy
* -performv:(SEL)aSel :(arglist_t)argFrame; and -forward:(SEL)aSel :(arglist_t)argFrame; removed
* made completely understand -forwardInvocation: and permit overriding

NSProxy
* - (NSString*) descriptionWithLocale:(NSDictionary*)locale indent:(unsigned int)indent; - (NSString*) descriptionWithLocale:(NSDictionary*)locale; added to avoid asking the distant object for existence

NSInvocation
* largely rewritten
* made properly working on ARM-Linux

NSMethodSignature
* largely rewritten
* made properly working on ARM-Linux
* non-standard method -(unsigned) getArgumentLengthAtIndex:(unsigned)index; added for convenience

NSDistantObject
* use forwardInvocation and encode/decode invocations instead of mframes

NSConnection
* changed to implement -forwardForProxy:self invocation:i
* changed to encode and decode NSInvocations

NSArray
* -initWithCoder: when decoding empty array fixed

NSGeometry
* NSPointFromString(), NSSizeFromString() etc. made more robust to additional ;  and "

NSStatusBar and NSStatusItem
* added from myPDA-3.0 project
* made use distributed objects to access a central NSStatusBar object provided by mySystemUIServer

NSImage
* made handle +imageNamed:@"NSApplicationIcon" - read CFBundleIconFile from Info.plist

NSImageCell
* added from GNUstep GUI

NSMenu
* -itemAtIndex, -numberOfItems, -removeItemAtIndex added

NSMenuItem
* -(NSMenu *) submenu, -(void) setSubmenu:(NSMenu *) etc. added

NSMenuItemCell
* added from myPDA-3.0

NSMenuView
* added from myPDA-3.0

NSCell
* NSOffState, NSOnState, NSMixedState added
* - nextState; - setNextState mechanism implemented

NSImageView
* styling, scaling, alignment passed through to underlying ImageCell

NSWorkspace
* use DO to activate/deactivate other applications
* read application search path from Info.plist of the system bundle

NSApplication
* register application with mySystemUIServer by DO to handle system menus and hide/activate
* hideOtherApplications: added -> calls [NSWorkspace hideOtherApplications]
* event processing corrected to send mouse events properly to the window below the mouse pointer and keyboard events to the key window

NSPropertyListSerialization
* ASCII representation: accept missing final ; in { key:=val; key:=val; } for dictionary
* made decosing of XML tags case sensitive as defined by the standards (i.e. <string>xxx</String> is invalid). As a side effect this speeds XML decoding up a little

IMOutletConnector
* properly handle capitalization of connection labels to set-methods e.g. "dataSource" -> "setDataSource:"

NSMovie
* Header added

ZaurusCameraMovie
* defined as subclass of NSMovie - prepared for the Sharp Zaurus CE-AG06 camera module

NSPreferencePane
* Headers and Library added - some code added but not yet tested/working

NSMenuExtra
* Headers and Library added - code partially working

----------------
Version 1.2
----------------

General
* protocol NSValidatedUserInterfaceItem added
* IBAction and IBOutlet added
* reworked source to reduce number of compiler warnings down to minimum
* NSTemporaryDirectory() added to return @"/tmp"
* libraries renamed to libAppKit, libFoundation etc.
* Mib-reading made handle NSNamedColorSpace and NSPatternColorSpace
!! merge Unicode.h to NSString.m
!! remove PropertyList.h

AddressBook/AddressBook.h
* library started based on description at http://www.cocoadev.com/index.pl?AddressBook

NSZone
* simple shortcut macros for NSZone functions added

NSObject
+ allocWithZone;	added - zone ignored
- copyWithZone; 	added - zone ignored
- (NSZone) zone;	added - returns NSDefaultMallocZone()

NSProcessInfo
- (int) processIdentifier;
  added.

NSWorkSpace
* searching for applications and file types improved and corrected
   - distinguishes between roles "Editor"/"Viewer" and "None"
   - checks if icon is defined and substitutes default

NSPropertyList
* some improvements
* converting NSDictionary into XML property list added

NSDictionary (within NSFileManager)
- (unsigned long) fileHFSCreatorCode;
- (unsigned long) fileHFSTypeCode;
- (BOOL) fileIsImmutable;
- (BOOL) fileExtensionHidden;
  and constants added for compatibility

NSApplication
* delegate changed to return NSApplicationTerminateReply
   - (NSApplicationTerminateReply) applicationShouldTerminate:(NSApplication *)sender;
* made NSApplication instantiate NSDocumentController and add to responder chain if any Document Types are defined in the Info.plist
- (NSNotificationCenter *) notificationCenter;
  added to return the defaultNotificationCenter
- (id) targetForAction:(SEL) selector
  made return nil for a nil selector instead of a segmentation fault

NSMenu
* changed to use NSApplication's targetForAction: method to scan the responder chain

NSUndoManager
* added form GNUstep-base

NSURL & NSURLHandle (incl. GSFTPURLHandle, GSHTTPURLHandle, GSMimeParser, GSMimeHeader, GSMimeDocument)
* added form GNUstep-base
* handles file:// ftp:// http:// and https:// URLs

NSNull
* added form GNUstep-base

NSColor
+ (NSColor*) colorWithCatalogName:(NSString *)listName colorName:(NSString *)colorName;
+ (NSColor*) colorWithPatternImage:(NSImage *)image;
  added - but not supported by backend!
* colors defined in system color space made much more like MacOS X

NSString
* added constants for some NSStringEncodings

NSFileWrapper
* added form GNUstep-gui

NSAffineTransform
* added form GNUstep-gui

NSBezierPath
* added form GNUstep-gui

NSDocument
* added form GNUstep-gui

NSDocumentController
* added form GNUstep-gui

NSWindowController
* added form GNUstep-gui

NSApplication
- (void) orderFrontStandardAboutPanel;
- (void) orderFrontStandardAboutPanelWithOptions:(NSDictionary *) optionsDictionary;
  added

NSResponder
- (BOOL) shouldBeTreatedAsInkEvent:(NSEvent *) theEvent;
  added - but nowhere processed for an ink-anywhere handwriting system (yet)

GMArchiver
* fixed some problems with unknown classes and a potentially uninitialized variable

GMAppKit
* NSColor unarchiving made handle NSNamedColorSpace and NSPatternColorSpace

----------------
Version 1.1
----------------

General
* nil changed to be (void *) 0
* NSOpenStepRootDirectory() added to return /home/myPDA and made the single reference to the file system locations

NSTimeZone
* database files added from GNUStep
* search path modified

NSProperyListSerialization
* Class added (Header file in: NSPropertyList.h) and partially implemented
* two extra (compared to Cocoa) encodings added: NSPropertyListAnyFormat and NSPropertyListStringFileFormat

NSString
- (id) propertyList;
   made to recognize XML based property lists

- (NSRange) rangeOfString:(NSString *) aString options:(unsigned int) mask range:(NSRange) aRange;
- (NSComparisonResult) compare:(NSString*)aString options:(unsigned int)mask range:(NSRange)aRange;
- (NSString*) commonPrefixWithString:(NSString*)aString options:(unsigned int)mask;
- (BOOL) isEqualToString:(NSString*)aString;
   added internal NSAutoreleasePool for non-literal search to handle composed Unichars (would otherwise flood the memory)

NSDictionary
+ (id) dictionaryFromFile:(NSString *) path;
   made to recognize XML based property lists

NSScanner
* improved speed a little
* WARNING:
   avoid calls like [scanner scanCharactersFromSet:[NSCharacterSet characterSetWithCharactersInString:@" \t\n\r"] intoString:nil];
   -- this will allocate a fresh autoreleased NSCharacterSet each loop cycle -> flooding the memory with approx. 8200 bytes each
   -- There is no real cure to that. There could be a NSStringCharSet subclass which optimizes memory for short strings
   -- also, NSBitmapCharSet could optimize its bifields by saving a range outside which all characters are assumed to be no members

NSBundle
* made to cope with the situation that the application executable is not within a bundle -> mainBundle == nil
* executablePath added to return the proper platform dependent location in a Fat Binary application bundle
* some other methods added (but only some implemented)

NSWorkspace
* made to search for applications and file types when first used

NSProcessInfo
- (NSString *) globallyUniqueString;
  made to contain no : or [ or blank characters (unless hostname contains these characters)
* removed MGSTEP_ROOT environment or command line mechanism - now uses exclusively NSOpenStepRootDirectory() 

NSMailDelivery
* a first draft header file (Message/NSMailDelivery.h) added

----------------
Version 1.0
----------------
* first release
* MacOS X compatible bundle structure added