[Bug 48447] New: GetUnicodeRanges() returned data is inaccurate

WineHQ Bugzilla wine-bugs at winehq.org
Sat Jan 11 15:23:55 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=48447

            Bug ID: 48447
           Summary: GetUnicodeRanges() returned data is inaccurate
           Product: Wine
           Version: 5.0-rc5
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: dwrite
          Assignee: wine-bugs at winehq.org
          Reporter: bunglehead at gmail.com
      Distribution: ---

Current GetUnicodeRanges() implementation returns ranges as specified by cmap,
while some point might still fall on zero glyph, splitting ranges further or
discarding some ranges. Windows takes that into account, and returns ranges
that will tell exactly which points are covered with non-zero glyphs. We'll
have to follow that, but it should most likely be disk-cached somehow, because
iterating whole cmap every time is not very practical.

Once does correctly this data could be used for binary lookup in
HasCharacter(), if it turns out not to be slower that looking up actual glyph
id.

Test failures for that problem will entirely depend on the font, and could look
like this:

---
font.c:3742: Test failed: L"DejaVu Sans" - L"ExtraLight": unexpected range
count 181, expected 182.
font.c:3742: Test failed: L"DejaVu Sans" - L"ExtraLight Oblique": unexpected
range count 181, expected 182.
...
font.c:3742: Test failed: L"DejaVu Sans Mono" - L"Oblique": unexpected range
count 209, expected 210.
font.c:3742: Test failed: L"DejaVu Sans Mono" - L"Bold": unexpected range count
252, expected 253.
font.c:3742: Test failed: L"DejaVu Sans Mono" - L"Bold Oblique": unexpected
range count 209, expected 210.
---

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list