CocoaGlk 1.0.3 is now available. This version of CocoaGlk mainly focuses on bug fixes, but also includes a couple of new features aimed at making it easier to port multimedia interpreters and customise client behaviour.
Read on for the complete list of changes.
Changes in this version:
- Bug fixes
- Opening a file that doesn't exist for random access will now create the file (something that's required by the glk specification but probably isn't a good idea in practice)
- Fixed a memory leak in the More view
- Fixed a potential infinite loop when cancelling sessions
- Fixed an issue that could cause the layout engine to run past the end of the text in a view
- Fixed a memory leak in the GlkPreferences object
- Fixed a crash that could occur if the glk window was closed before the startup image had finished fading out
- gestalt_Unicode now returns the right value
- Buffered put character events are no longer concatenated into put string events if they have a value less than 32 (this could cause file corruption in some circumstances due to the way OS X handles these in NSString objects)
- putBuffer: events sent to windows now send strings via the automation system – this ensures that broken interpreters that use these instead of putString: events will work with things like skeins, text to speech, etc.
- The GlkView delegate has been updated to make it possible to customize how files are prompted for.
- Added cocoaglk_set_immediate_style_hint(), cocoaglk_clear_immediate_style_hint() and cocoaglk_set_custom_text_attributes() functions to make it possible to implement more complicated font/styling models than the standard glk model.
- Added cocoaglk_get_stream_for_key() to make it possible to pass in extra streams to a client beyond just the main input stream (this is intended for use with clients that can restore a saved game as well as loading an actual game)
- When file streams belonging to the server process are opened for reading in the client, they are now buffered to increase performance for small reads.