From: Patrick Lam (plam@plam.lcs.mit.edu)
Date: Tue Mar 26 2002 - 03:19:31 EST
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
This archive was generated by hypermail 2.1.4 : Tue Mar 26 2002 - 03:21:02 EST