BabelStone Blog

Saturday, 23 October 2010

BabelPad and BabelMap Version

New versions of BabelPad and BabelMap that support Unicode 6.0 have been released today, and can be downloaded directly :

Creative Commons License
This screenshot of BabelMap is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License (CC-BY-SA-3.0) by Andrew West.

Important Technical Note

BabelPad and BabelMap were scheduled for release on 11 October, to coincide with the release of Unicode 6.0 on that day, but their release was delayed due to a Blue Screen of Death crash that occured with the beta versions of both BabelMap and BabelPad when the Windows function ExtTextOutW is called within a path bracket, and the selected font is Symbola font version 6.00, and the ETO_GLYPH_INDEX flag is set, and the glyph index passed to the function corresponds to U+1F5FD STATUE OF LIBERTY (this problem only occurs in BabelPad when in Simple Rendering mode, which bypasses Microsoft's Uniscribe rendering engine). The glyph for U+1F5FD in the Symbola font has a mega-complex glyph outline (which oddly enough is the glyph for an angel, whilst the glyph for the Statue of Liberty is actually at U+FFFED), which probably results in a buffer overrun somewhere within Windows GDI. In order to work around this problem I have had to rewrite, refactor and retest core sections of the source code.

The newly released versions of BabelPad and BabelMap fix the problem described above, and should be safe for use with the Symbola font under normal usage scenarios, but the glyphs for U+1F5FB (MOUNT FUJI) through U+1F5FF (MOYAI) are rendered very slowly because of their extreme complexity (several thousand points for each glyph), resulting in sluggish response in BabelMap when scrolling through the Miscellaneous Symbols And Pictographs block, and potentially extremely sluggish performance in BabelPad.

Moreover, the Symbola font may still cause a Blue Screen of Death crash (reporting an infinite loop) on some systems when rendering U+1F5FD STATUE OF LIBERTY at high point sizes with standard Windows applications such as Notepad (my test case is to set Notepad to use the Symbola font at 72 points, and then paste in a string comprising twelve instances of U+1F5FD — my XP machine then blue screens, although my Vista machine is OK). This general Windows-level vulnerability to Symbola version 6.00 means that BabelMap may still blue screen if you insert multiple instances of U+1F5FD into the BabelMap edit buffer, and BabelPad may still blue screen if you attempt to display a document with multiple instances of U+1F5FD at a large point size in Complex Rendering mode (i.e. using Uniscribe). For this reason, you are strongly advised not to install Symbola version 6.00, but if you do install this font I cannot be responsible for any loss or damage incurred due to a system crash when running either BabelPad or BabelMap.

BabelPad Enhancements

BabelMap Enhancements


BabelMap | BabelPad

Index of BabelStone Blog Posts