summaryrefslogtreecommitdiff
path: root/fofi
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2011-09-01 17:49:46 +0200
committerCarlos Garcia Campos <carlosgc@gnome.org>2011-09-01 17:50:37 +0200
commit68c6ebc78b89eec94a9c3538fe6e27561a21b680 (patch)
tree56d3da97795ad188762081612c7f1c055b4b9f51 /fofi
parent19204ed5cd5cb64809f1a1f51dd5ffdef2b9417a (diff)
xpdf303: codeToGID items can be < 0 now
Diffstat (limited to 'fofi')
-rw-r--r--fofi/FoFiTrueType.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/fofi/FoFiTrueType.cc b/fofi/FoFiTrueType.cc
index 53fb1a5e..36467f81 100644
--- a/fofi/FoFiTrueType.cc
+++ b/fofi/FoFiTrueType.cc
@@ -1179,8 +1179,16 @@ void FoFiTrueType::writeTTF(FoFiOutputFunc outputFunc,
newCmapTab[42] = 0; // idRangeOffset[1]
newCmapTab[43] = 0;
for (i = 0; i < 256; ++i) {
- newCmapTab[44 + 2*i] = codeToGID[i] >> 8;
- newCmapTab[44 + 2*i + 1] = codeToGID[i] & 0xff;
+ if (codeToGID[i] < 0) {
+ //~ this may not be correct - we want this character to never be
+ //~ displayed, but mapping it to the notdef glyph may result in
+ //~ little boxes being displayed
+ newCmapTab[44 + 2*i] = 0;
+ newCmapTab[44 + 2*i + 1] = 0;
+ } else {
+ newCmapTab[44 + 2*i] = codeToGID[i] >> 8;
+ newCmapTab[44 + 2*i + 1] = codeToGID[i] & 0xff;
+ }
}
} else {
newCmapLen = 0;