Here's your fix, hub. cheesy hack to fix 2990 CVS: ---------------------------------------------------------------------- CVS: Enter Log. Lines beginning with `CVS:' are removed automatically CVS: CVS: Committing in . CVS: CVS: Modified Files: CVS: src/af/xap/unix/xap_UnixFont.cpp CVS: src/af/xap/unix/xap_UnixPSGraphics.cpp CVS: ----------------------------------------------------------------------
The problem was that the .afm file for our fonts uses Adobe glyph names, while we use Unicode to store our characters. There's a method which does adobe to unicode translation. Unfortunately, it's not completely correct, because it assumes that the mapping is 1 to 1. Unfortunately, the mapping is not 1 to 1: http://partners.adobe.com/asn/developer/type/unicodegn.html#4 This breaks down, most importantly, for the Adobe space glyph, which maps to Unicode 32 and 160. We weren't capturing the width of Unicode 160, which resulted in it getting replaced with the no-width character (possibly bogus in itself, but that's another issue). Cheesy hack: When we read the width for unicode 32, also copy it to be the width for unicode 160. Pango, anyone? pat
