Compare commits

...

2 Commits

Author SHA1 Message Date
Michael R Sweet
088646e1cf
Drop the FEFF prefix on Unicode strings. 2023-11-19 07:30:17 -05:00
Michael R Sweet
3f0aad7564
Fix another bug in the CMAPv4 code, and a bug in the unit test program. 2023-11-19 07:06:35 -05:00
5 changed files with 8 additions and 7 deletions

View File

@ -7,6 +7,7 @@ v1.1.4 (Month DD, YYYY)
- Fixed detection of encrypted strings that are too short (Issue #52)
- Fixed a TrueType CMAP decoding bug.
- Fixed a text rendering issue for Asian text.
v1.1.3 (November 15, 2023)

View File

@ -3053,7 +3053,7 @@ write_string(pdfio_stream_t *st, // I - Stream
// Start the string...
if (!pdfioStreamPuts(st, unicode ? "<FEFF" : "("))
if (!pdfioStreamPuts(st, unicode ? "<" : "("))
return (false);
// Loop through the string, handling UTF-8 as needed...

View File

@ -2392,7 +2392,8 @@ write_font_test(
"Märr-ŋamathirri",
"Ẹ ku abọ",
"Kíimak 'oolal",
"Ngiyakwemukela"
"Ngiyakwemukela",
"いらっしゃいませ"
};

View File

@ -165,8 +165,7 @@ test_font(const char *filename) // I - Font filename
}
else
{
puts("FAIL");
errors ++;
puts("WARNING (no copyright found)");
}
for (i = 0; i < (int)(sizeof(strings) / sizeof(strings[0])); i ++)
@ -195,7 +194,7 @@ test_font(const char *filename) // I - Font filename
}
fputs("ttfGetItalicAngle: ", stdout);
if ((realvalue = ttfGetItalicAngle(font)) >= 0.0)
if ((realvalue = ttfGetItalicAngle(font)) >= -180.0 && realvalue <= 180.0)
{
printf("PASS (%g)\n", realvalue);
}

4
ttf.c
View File

@ -1282,7 +1282,7 @@ read_cmap(ttf_t *font) // I - Font
// Based on the end code of the segent table, allocate space for the
// uncompressed cmap table...
segCount --; // Last segment is not used (sigh)
// segCount --; // Last segment is not used (sigh)
font->num_cmap = segments[segCount - 1].endCode + 1;
font->cmap = cmapptr = (int *)malloc(font->num_cmap * sizeof(int));
@ -1307,7 +1307,7 @@ read_cmap(ttf_t *font) // I - Font
{
// Use an "obscure indexing trick" (words from the spec, not
// mine) to look up the glyph index...
temp = segment->idRangeOffset / 2 - segCount + (ch - segment->startCode) + (seg - segCount);
temp = segment->idRangeOffset / 2 - segCount + (ch - segment->startCode) + (segment - segments);
TTF_DEBUG("read_cmap: ch=%d, temp=%d\n", ch, temp);
if (temp < 0 || temp >= numGlyphIdArray)