Open Bug 173979 Opened 22 years ago Updated 2 years ago

RFE: Ensure that font's CCMap matches the content of the loaded font.

Categories

(Core :: XUL, defect)

All
Linux
defect

Tracking

()

People

(Reporter: roland.mainz, Unassigned)

Details

Attachments

(1 file)

RFE: Ensure that font's CCMap matches the content of the loaded font.

Taking a quick look at nsFontMetricsGTK.cpp - it looks there is no check which
scans a loaded font and updates the CCMap based on that information if there is
a |XFontStruct->per_char| information available.
This is really "fun":
1. "iso-8859-1" font:
-- snip --
####### ValidateCCMap failed: aFont:
'-adobe-times-medium-r-normal--12-120-75-75-p-*-iso8859-1' - no glyph(s) at :
5f, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 6a, 6b, 6c, 6d, 6e, 6f, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 7a, 7b, 7c, 7d, 7e.
-- snip --
2. "jisx0208.1983-0"-font:
-- snip --
####### ValidateCCMap failed: aFont:
'-jis-fixed-medium-r-normal--16-110-100-100-c-*-jisx0208.1983-0' - no glyph(s)
at : a8, d7, f7, 391, 392, 393, 394, 395, 396, 397, 398, 399, 39a, 39b, 39c,
39d, 39e, 39f, 3a0, 3a1, 3a3, 3a4, 3a5, 3a6, 3a7, 3a8, 3a9, 3b1, 3b2, 3b3, 3b4,
3b5, 3b6, 3b7, 3b8, 3b9, 3ba, 3bb, 3bc, 3bd, 3be, 3bf, 3c0, 3c1, 3c3, 3c4, 3c5,
3c6, 3c7, 3c8, 3c9, 401, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 41a,
41b, 41c, 41d, 41e, 41f, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 42a,
42b, 42c, 42d, 42e, 42f, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 43a,
43b, 43c, 43d, 43e, 43f, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 44a,
44b, 44c, 44d, 44e, 44f, 451.
-- snip --

Just apply the patch - and smile... :) ... (or better: whine... ;-( ) ...
bstell:
There is no place where we catch such stuff, right ?
Summary: RFE: Ensure that font's CCMap matches the content of the loaded font. → RFE: Ensure that font's CCMap matches the content of the loaded font.
Comment on attachment 102607 [details] [diff] [review]
Demonstration patch for 2002-09-29-08-trunk

The 2nd example wasn't valid, I forgot that |mCCMap| is in unicode but the font
uses it's native encoding (jisx0208.1983-0 in this case) ...

... but the 1st example is still valid (ISO-8859-1 is a subset of iso-10646-1).
Attachment #102607 - Flags: needs-work+
There is no code to cross check the per-char metrics vs the CCMap.
There is also no code to handle to more problematic case where there is no
per-char metrics.
Assignee: jag → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: