Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=46512 Signed-off-by: Byeongsik Jeon bsjeon@hanmail.net --- GGO_METRICS does not assume a specific GGO format but applies the current DC aa_flags.
[PATCH 1-6] fixes some problems in bug#46512: 'letter cut off' and 'text layout unstable in runtime'
I'll post the other issues later: FreeType 'strong' autohinter, v40 FT_LOAD_TARGET_MONO, ClearType compatable advance width.
dlls/gdi32/freetype.c | 45 +++++++++++++++++++++++++++-------------- dlls/gdi32/tests/font.c | 1 + include/wingdi.h | 2 ++ 3 files changed, 33 insertions(+), 15 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 0fc41f3902..f5c292235e 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -7489,7 +7489,8 @@ static FT_Int get_load_flags( UINT format ) if (format & GGO_UNHINTED) return load_flags | FT_LOAD_NO_HINTING;
- switch (format & ~GGO_GLYPH_INDEX) + format &= ~(GGO_GLYPH_INDEX | WINE_GGO_METRICS); + switch (format) { case GGO_BITMAP: load_flags |= FT_LOAD_TARGET_MONO; @@ -7530,6 +7531,7 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, BOOL needsTransform = FALSE; BOOL tategaki = (font->name[0] == '@'); BOOL vertical_metrics; + BOOL ggo_metrics = format & WINE_GGO_METRICS;
TRACE("%p, %04x, %08x, %p, %08x, %p, %p\n", font, glyph, format, lpgm, buflen, buf, lpmat); @@ -7558,9 +7560,9 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, tategaki = check_unicode_tategaki(glyph); }
- format &= ~GGO_UNHINTED; + format &= ~(WINE_GGO_METRICS | GGO_UNHINTED);
- if (format == GGO_METRICS && is_identity_MAT2(lpmat) && + if (ggo_metrics && is_identity_MAT2(lpmat) && get_cached_metrics( font, glyph_index, lpgm, abc )) return 1; /* FIXME */
@@ -7608,11 +7610,11 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, tategaki, vertical_metrics, needsTransform, matrices, &gm, abc );
- if ((format == GGO_METRICS || format == GGO_BITMAP || format == WINE_GGO_GRAY16_BITMAP) && + if ((ggo_metrics || format == GGO_BITMAP || format == WINE_GGO_GRAY16_BITMAP) && is_identity_MAT2(lpmat)) /* don't cache custom transforms */ set_cached_metrics( font, glyph_index, &gm, abc );
- if(format == GGO_METRICS) + if (ggo_metrics) { *lpgm = gm; return 1; /* FIXME */ @@ -8232,7 +8234,11 @@ static DWORD freetype_GetGlyphOutline( PHYSDEV dev, UINT glyph, UINT format,
GDI_CheckNotLock(); EnterCriticalSection( &freetype_cs ); + + if (GGO_METRICS == (format & ~(GGO_UNHINTED | GGO_GLYPH_INDEX))) + format |= get_physdev_dc( dev )->aa_flags | WINE_GGO_METRICS; ret = get_glyph_outline( physdev->font, glyph, format, lpgm, &abc, buflen, buf, lpmat ); + LeaveCriticalSection( &freetype_cs ); return ret; } @@ -8388,7 +8394,7 @@ done: static BOOL freetype_GetCharWidth( PHYSDEV dev, UINT firstChar, UINT lastChar, LPINT buffer ) { static const MAT2 identity = { {0,1},{0,0},{0,0},{0,1} }; - UINT c; + UINT c, format; GLYPHMETRICS gm; ABC abc; struct freetype_physdev *physdev = get_freetype_dev( dev ); @@ -8403,10 +8409,14 @@ static BOOL freetype_GetCharWidth( PHYSDEV dev, UINT firstChar, UINT lastChar, L
GDI_CheckNotLock(); EnterCriticalSection( &freetype_cs ); - for(c = firstChar; c <= lastChar; c++) { - get_glyph_outline( physdev->font, c, GGO_METRICS, &gm, &abc, 0, NULL, &identity ); + + format = get_physdev_dc( dev )->aa_flags | WINE_GGO_METRICS; + for (c = firstChar; c <= lastChar; c++) + { + get_glyph_outline( physdev->font, c, format, &gm, &abc, 0, NULL, &identity ); buffer[c - firstChar] = abc.abcA + abc.abcB + abc.abcC; } + LeaveCriticalSection( &freetype_cs ); return TRUE; } @@ -8417,7 +8427,7 @@ static BOOL freetype_GetCharWidth( PHYSDEV dev, UINT firstChar, UINT lastChar, L static BOOL freetype_GetCharABCWidths( PHYSDEV dev, UINT firstChar, UINT lastChar, LPABC buffer ) { static const MAT2 identity = { {0,1},{0,0},{0,0},{0,1} }; - UINT c; + UINT c, format; GLYPHMETRICS gm; struct freetype_physdev *physdev = get_freetype_dev( dev );
@@ -8432,8 +8442,9 @@ static BOOL freetype_GetCharABCWidths( PHYSDEV dev, UINT firstChar, UINT lastCha GDI_CheckNotLock(); EnterCriticalSection( &freetype_cs );
+ format = get_physdev_dc( dev )->aa_flags | WINE_GGO_METRICS; for(c = firstChar; c <= lastChar; c++, buffer++) - get_glyph_outline( physdev->font, c, GGO_METRICS, &gm, buffer, 0, NULL, &identity ); + get_glyph_outline( physdev->font, c, format, &gm, buffer, 0, NULL, &identity );
LeaveCriticalSection( &freetype_cs ); return TRUE; @@ -8445,7 +8456,7 @@ static BOOL freetype_GetCharABCWidths( PHYSDEV dev, UINT firstChar, UINT lastCha static BOOL freetype_GetCharABCWidthsI( PHYSDEV dev, UINT firstChar, UINT count, LPWORD pgi, LPABC buffer ) { static const MAT2 identity = { {0,1},{0,0},{0,0},{0,1} }; - UINT c; + UINT c, format; GLYPHMETRICS gm; struct freetype_physdev *physdev = get_freetype_dev( dev );
@@ -8461,8 +8472,9 @@ static BOOL freetype_GetCharABCWidthsI( PHYSDEV dev, UINT firstChar, UINT count, GDI_CheckNotLock(); EnterCriticalSection( &freetype_cs );
+ format = get_physdev_dc( dev )->aa_flags | WINE_GGO_METRICS | GGO_GLYPH_INDEX; for(c = 0; c < count; c++, buffer++) - get_glyph_outline( physdev->font, pgi ? pgi[c] : firstChar + c, GGO_METRICS | GGO_GLYPH_INDEX, + get_glyph_outline( physdev->font, pgi ? pgi[c] : firstChar + c, format, &gm, buffer, 0, NULL, &identity );
LeaveCriticalSection( &freetype_cs ); @@ -8476,6 +8488,7 @@ static BOOL freetype_GetTextExtentExPoint( PHYSDEV dev, LPCWSTR wstr, INT count, { static const MAT2 identity = { {0,1},{0,0},{0,0},{0,1} }; INT idx, pos; + UINT format; ABC abc; GLYPHMETRICS gm; struct freetype_physdev *physdev = get_freetype_dev( dev ); @@ -8491,9 +8504,10 @@ static BOOL freetype_GetTextExtentExPoint( PHYSDEV dev, LPCWSTR wstr, INT count, GDI_CheckNotLock(); EnterCriticalSection( &freetype_cs );
+ format = get_physdev_dc( dev )->aa_flags | WINE_GGO_METRICS; for (idx = pos = 0; idx < count; idx++) { - get_glyph_outline( physdev->font, wstr[idx], GGO_METRICS, &gm, &abc, 0, NULL, &identity ); + get_glyph_outline( physdev->font, wstr[idx], format, &gm, &abc, 0, NULL, &identity ); pos += abc.abcA + abc.abcB + abc.abcC; dxs[idx] = pos; } @@ -8509,6 +8523,7 @@ static BOOL freetype_GetTextExtentExPointI( PHYSDEV dev, const WORD *indices, IN { static const MAT2 identity = { {0,1},{0,0},{0,0},{0,1} }; INT idx, pos; + UINT format; ABC abc; GLYPHMETRICS gm; struct freetype_physdev *physdev = get_freetype_dev( dev ); @@ -8524,10 +8539,10 @@ static BOOL freetype_GetTextExtentExPointI( PHYSDEV dev, const WORD *indices, IN GDI_CheckNotLock(); EnterCriticalSection( &freetype_cs );
+ format = get_physdev_dc( dev )->aa_flags | WINE_GGO_METRICS | GGO_GLYPH_INDEX; for (idx = pos = 0; idx < count; idx++) { - get_glyph_outline( physdev->font, indices[idx], GGO_METRICS | GGO_GLYPH_INDEX, - &gm, &abc, 0, NULL, &identity ); + get_glyph_outline( physdev->font, indices[idx], format, &gm, &abc, 0, NULL, &identity ); pos += abc.abcA + abc.abcB + abc.abcC; dxs[idx] = pos; } diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c index 67e8941b5e..6e7ac1e8e5 100644 --- a/dlls/gdi32/tests/font.c +++ b/dlls/gdi32/tests/font.c @@ -4839,6 +4839,7 @@ static void test_GetGlyphOutline(void) ok(ret != GDI_ERROR, "GetGlyphOutlineA error %u\n", GetLastError()); trace("Tests with height=%d,avg=%d,full=%d,face=%s,charset=%d\n", -lf.lfHeight, tm.tmAveCharWidth, gm2.gmCellIncX, lf.lfFaceName, lf.lfCharSet); + todo_wine ok(gm2.gmCellIncX == tm.tmAveCharWidth * 2 || broken(gm2.gmCellIncX == -lf.lfHeight), "expected %d, got %d (%s:%d)\n", tm.tmAveCharWidth * 2, gm2.gmCellIncX, lf.lfFaceName, lf.lfCharSet); diff --git a/include/wingdi.h b/include/wingdi.h index 1851654194..8a7453e92c 100644 --- a/include/wingdi.h +++ b/include/wingdi.h @@ -1337,6 +1337,8 @@ typedef struct #define WINE_GGO_HBGR_BITMAP 0x12 #define WINE_GGO_VRGB_BITMAP 0x13 #define WINE_GGO_VBGR_BITMAP 0x14 + +#define WINE_GGO_METRICS 0x40 #endif
typedef struct
Signed-off-by: Byeongsik Jeon bsjeon@hanmail.net --- This patch reflects the metrics changes in the subpixel rendering. The problem that arises from this patch is corrected in the following patches.
match_off_by_n(abcw[0].abcB, abc[0].abcB, 2): Because the metric value added by the current Wine subpixel rendering is roughly enough value, the abcB will be up to 2 pixels different.
Even if I calculate with bitmap data rendered by FreeType, there are many cases where 2 pixels difference is made. I think this is the limit from the difference between FreeType and Windows GDI.
dlls/gdi32/freetype.c | 56 ++++++++++++++++++----------------------- dlls/gdi32/tests/font.c | 7 ++++++ 2 files changed, 32 insertions(+), 31 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index f5c292235e..d099f6cb44 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -7136,12 +7136,12 @@ static DWORD get_antialias_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, UINT return needed; }
-static DWORD get_subpixel_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, UINT format, +static DWORD get_subpixel_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox *bbox, UINT format, BOOL fake_bold, BOOL needs_transform, FT_Matrix matrices[3], - GLYPHMETRICS *gm, DWORD buflen, BYTE *buf ) + DWORD buflen, BYTE *buf ) { - DWORD width = (bbox.xMax - bbox.xMin ) >> 6; - DWORD height = (bbox.yMax - bbox.yMin ) >> 6; + DWORD width = (bbox->xMax - bbox->xMin ) >> 6; + DWORD height = (bbox->yMax - bbox->yMin ) >> 6; DWORD pitch, needed = 0; BYTE *src, *dst; INT w, h, x; @@ -7196,19 +7196,17 @@ static DWORD get_subpixel_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, UINT f
if ( render_mode == FT_RENDER_MODE_LCD) { - gm->gmBlackBoxX += 2; - gm->gmptGlyphOrigin.x -= 1; - bbox.xMin -= (1 << 6); + bbox->xMin -= (1 << 6); + bbox->xMax += (1 << 6); } else { - gm->gmBlackBoxY += 2; - gm->gmptGlyphOrigin.y += 1; - bbox.yMax += (1 << 6); + bbox->yMax += (1 << 6); + bbox->yMin -= (1 << 6); }
- width = gm->gmBlackBoxX; - height = gm->gmBlackBoxY; + width = (bbox->xMax - bbox->xMin ) >> 6; + height = (bbox->yMax - bbox->yMin ) >> 6; pitch = width * 4; needed = pitch * height;
@@ -7237,7 +7235,7 @@ static DWORD get_subpixel_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, UINT f hmul = render_mode == FT_RENDER_MODE_LCD ? 3 : 1; vmul = render_mode == FT_RENDER_MODE_LCD ? 1 : 3;
- x_shift = glyph->bitmap_left - (bbox.xMin >> 6); + x_shift = glyph->bitmap_left - (bbox->xMin >> 6); if ( x_shift < 0 ) { src += hmul * -x_shift; @@ -7249,7 +7247,7 @@ static DWORD get_subpixel_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, UINT f width -= x_shift; }
- y_shift = (bbox.yMax >> 6) - glyph->bitmap_top; + y_shift = (bbox->yMax >> 6) - glyph->bitmap_top; if ( y_shift < 0 ) { src += src_pitch * vmul * -y_shift; @@ -7606,19 +7604,6 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, }
bbox = get_transformed_bbox( &metrics, needsTransform, matrices ); - compute_metrics( incoming_font, font, bbox, &metrics, - tategaki, vertical_metrics, needsTransform, matrices, - &gm, abc ); - - if ((ggo_metrics || format == GGO_BITMAP || format == WINE_GGO_GRAY16_BITMAP) && - is_identity_MAT2(lpmat)) /* don't cache custom transforms */ - set_cached_metrics( font, glyph_index, &gm, abc ); - - if (ggo_metrics) - { - *lpgm = gm; - return 1; /* FIXME */ - }
if(ft_face->glyph->format != ft_glyph_format_outline && (format == GGO_NATIVE || format == GGO_BEZIER)) @@ -7646,8 +7631,8 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, case WINE_GGO_HBGR_BITMAP: case WINE_GGO_VRGB_BITMAP: case WINE_GGO_VBGR_BITMAP: - needed = get_subpixel_glyph_bitmap( ft_face->glyph, bbox, format, font->fake_bold, - needsTransform, matrices, &gm, buflen, buf ); + needed = get_subpixel_glyph_bitmap( ft_face->glyph, &bbox, format, font->fake_bold, + needsTransform, matrices, buflen, buf ); break;
case GGO_NATIVE: @@ -7692,10 +7677,19 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, FIXME("Unsupported format %d\n", format); return GDI_ERROR; } - if (needed != GDI_ERROR) + + compute_metrics( incoming_font, font, bbox, &metrics, + tategaki, vertical_metrics, needsTransform, matrices, + &gm, abc ); + + if ((ggo_metrics || format == GGO_BITMAP || format == WINE_GGO_GRAY16_BITMAP) && + is_identity_MAT2(lpmat)) /* don't cache custom transforms */ + set_cached_metrics( font, glyph_index, &gm, abc ); + + if (ggo_metrics || needed != GDI_ERROR) *lpgm = gm;
- return needed; + return ggo_metrics ? 1 : needed; /* FIXME: GGO_METRICS return value? */ }
static BOOL get_bitmap_text_metrics(GdiFont *font) diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c index 6e7ac1e8e5..53035cfb9b 100644 --- a/dlls/gdi32/tests/font.c +++ b/dlls/gdi32/tests/font.c @@ -1335,8 +1335,11 @@ static void test_GetCharABCWidths(void) /* 3) compare ABC results */ ok(match_off_by_1(abcw[0].abcA, abc[0].abcA, FALSE), "got %d, expected %d (A)\n", abc[0].abcA, abcw[0].abcA); + todo_wine ok(match_off_by_1(abcw[0].abcB, abc[0].abcB, FALSE), "got %d, expected %d (B)\n", abc[0].abcB, abcw[0].abcB); + ok(match_off_by_n(abcw[0].abcB, abc[0].abcB, 2), + "got %d, expected %d (B)\n", abc[0].abcB, abcw[0].abcB); ok(match_off_by_1(abcw[0].abcC, abc[0].abcC, FALSE), "got %d, expected %d (C)\n", abc[0].abcC, abcw[0].abcC);
@@ -1382,9 +1385,11 @@ static void test_GetCharABCWidths(void) ret = GetCharABCWidthsA(hdc, code, code, abc); ok(ret, "GetCharABCWidthsA should have succeeded at width %d\n", i);
+ todo_wine ok(abc[0].abcA == gm.gmptGlyphOrigin.x, "abcA(%d) and gmptGlyphOrigin.x(%d) values are different at width %d\n", abc[0].abcA, gm.gmptGlyphOrigin.x, i); + todo_wine ok(abc[0].abcB == gm.gmBlackBoxX, "abcB(%d) and gmBlackBoxX(%d) values are different at width %d\n", abc[0].abcB, gm.gmBlackBoxX, i); @@ -6135,8 +6140,10 @@ static void check_vertical_metrics(const char *face) ok(ret != GDI_ERROR, "GetGlyphOutlineW failed\n"); ret = GetCharABCWidthsW(hdc, code, code, &vabc); ok(ret, "GetCharABCWidthsW failed\n"); + todo_wine ok(vabc.abcA == vgm.gmptGlyphOrigin.x, "expected %d, got %d\n", vabc.abcA, vgm.gmptGlyphOrigin.x); + todo_wine ok(vabc.abcB == vgm.gmBlackBoxX, "expected %d, got %d\n", vabc.abcB, vgm.gmBlackBoxX); ok(vabc.abcA + vabc.abcB + vabc.abcC == vgm.gmCellIncX,
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47422
Your paranoid android.
=== debian9 (32 bit report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(13) and gmBlackBoxX(13) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(14) and gmBlackBoxX(14) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(19) and gmBlackBoxX(19) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(21) and gmBlackBoxX(21) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(26) and gmBlackBoxX(26) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(29) and gmBlackBoxX(29) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(31) and gmBlackBoxX(31) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(37) and gmBlackBoxX(37) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(38) and gmBlackBoxX(38) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(43) and gmBlackBoxX(43) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(45) and gmBlackBoxX(45) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(50) and gmBlackBoxX(50) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(53) and gmBlackBoxX(53) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(55) and gmBlackBoxX(55) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(61) and gmBlackBoxX(61) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(62) and gmBlackBoxX(62) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(67) and gmBlackBoxX(67) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(69) and gmBlackBoxX(69) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(74) and gmBlackBoxX(74) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(77) and gmBlackBoxX(77) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(79) and gmBlackBoxX(79) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (57541 bytes)
=== debian9 (32 bit French report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(13) and gmBlackBoxX(13) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(14) and gmBlackBoxX(14) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(19) and gmBlackBoxX(19) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(21) and gmBlackBoxX(21) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(26) and gmBlackBoxX(26) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(29) and gmBlackBoxX(29) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(31) and gmBlackBoxX(31) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(37) and gmBlackBoxX(37) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(38) and gmBlackBoxX(38) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(43) and gmBlackBoxX(43) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(45) and gmBlackBoxX(45) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(50) and gmBlackBoxX(50) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(53) and gmBlackBoxX(53) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(55) and gmBlackBoxX(55) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(61) and gmBlackBoxX(61) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(62) and gmBlackBoxX(62) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(67) and gmBlackBoxX(67) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(69) and gmBlackBoxX(69) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(74) and gmBlackBoxX(74) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(77) and gmBlackBoxX(77) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(79) and gmBlackBoxX(79) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (57617 bytes)
=== debian9 (32 bit Japanese:Japan report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(13) and gmBlackBoxX(13) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(14) and gmBlackBoxX(14) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(19) and gmBlackBoxX(19) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(21) and gmBlackBoxX(21) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(26) and gmBlackBoxX(26) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(29) and gmBlackBoxX(29) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(31) and gmBlackBoxX(31) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(37) and gmBlackBoxX(37) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(38) and gmBlackBoxX(38) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(43) and gmBlackBoxX(43) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(45) and gmBlackBoxX(45) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(50) and gmBlackBoxX(50) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(53) and gmBlackBoxX(53) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(55) and gmBlackBoxX(55) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(61) and gmBlackBoxX(61) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(62) and gmBlackBoxX(62) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(67) and gmBlackBoxX(67) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(69) and gmBlackBoxX(69) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(74) and gmBlackBoxX(74) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(77) and gmBlackBoxX(77) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(79) and gmBlackBoxX(79) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (58302 bytes)
=== debian9 (32 bit Chinese:China report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(13) and gmBlackBoxX(13) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(14) and gmBlackBoxX(14) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(19) and gmBlackBoxX(19) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(21) and gmBlackBoxX(21) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(26) and gmBlackBoxX(26) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(29) and gmBlackBoxX(29) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(31) and gmBlackBoxX(31) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(37) and gmBlackBoxX(37) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(38) and gmBlackBoxX(38) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(43) and gmBlackBoxX(43) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(45) and gmBlackBoxX(45) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(50) and gmBlackBoxX(50) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(53) and gmBlackBoxX(53) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(55) and gmBlackBoxX(55) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(61) and gmBlackBoxX(61) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(62) and gmBlackBoxX(62) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(67) and gmBlackBoxX(67) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(69) and gmBlackBoxX(69) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(74) and gmBlackBoxX(74) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(77) and gmBlackBoxX(77) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(79) and gmBlackBoxX(79) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (58010 bytes)
=== debian9 (32 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(13) and gmBlackBoxX(13) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(14) and gmBlackBoxX(14) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(19) and gmBlackBoxX(19) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(21) and gmBlackBoxX(21) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(26) and gmBlackBoxX(26) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(29) and gmBlackBoxX(29) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(31) and gmBlackBoxX(31) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(37) and gmBlackBoxX(37) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(38) and gmBlackBoxX(38) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(43) and gmBlackBoxX(43) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(45) and gmBlackBoxX(45) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(50) and gmBlackBoxX(50) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(53) and gmBlackBoxX(53) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(55) and gmBlackBoxX(55) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(61) and gmBlackBoxX(61) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(62) and gmBlackBoxX(62) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(67) and gmBlackBoxX(67) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(69) and gmBlackBoxX(69) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(74) and gmBlackBoxX(74) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(77) and gmBlackBoxX(77) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(79) and gmBlackBoxX(79) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (57541 bytes)
=== debian9 (64 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(13) and gmBlackBoxX(13) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(14) and gmBlackBoxX(14) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(19) and gmBlackBoxX(19) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(21) and gmBlackBoxX(21) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(26) and gmBlackBoxX(26) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(29) and gmBlackBoxX(29) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(31) and gmBlackBoxX(31) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(37) and gmBlackBoxX(37) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(38) and gmBlackBoxX(38) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(43) and gmBlackBoxX(43) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(45) and gmBlackBoxX(45) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(50) and gmBlackBoxX(50) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(53) and gmBlackBoxX(53) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(55) and gmBlackBoxX(55) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(61) and gmBlackBoxX(61) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(62) and gmBlackBoxX(62) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(67) and gmBlackBoxX(67) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(69) and gmBlackBoxX(69) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(74) and gmBlackBoxX(74) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(77) and gmBlackBoxX(77) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(79) and gmBlackBoxX(79) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (57541 bytes)
Marvin wrote:
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47422
Your paranoid android.
=== debian9 (32 bit report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1
I'll change the order of patches to eliminate 'todo_wine'.
However, these patches are abandoned because the problem in coordinate system transformation has not been solved as I thought. The pixel added in the subpixel rendering is a problem.
I think these patches are meaningful enough, so I'll post them again.
Signed-off-by: Byeongsik Jeon bsjeon@hanmail.net --- For example, the rotation of 'O', the slant of 'V'.
get_transformed_bitmap() implementation will be posted separately: WINFNT bitmap transform(scale, slant, ...).
dlls/gdi32/freetype.c | 73 ++++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 29 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index d099f6cb44..1f1957f2ca 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -6992,8 +6992,30 @@ static void compute_metrics( GdiFont *incoming_font, GdiFont *font,
static const BYTE masks[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
-static DWORD get_mono_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, - BOOL fake_bold, BOOL needs_transform, FT_Matrix matrices[3], +static FT_BBox get_transformed_outline( FT_Outline *outline, FT_BBox bbox, + BOOL needs_transform, const FT_Matrix matrices[3] ) +{ + FT_BBox cbox; + + if (needs_transform) + pFT_Outline_Transform( outline, &matrices[matrix_vert] ); + pFT_Outline_Get_CBox( outline, &cbox ); + + /* Respect the poorly created fonts metrics fixing. */ + bbox.xMin = max( bbox.xMin, cbox.xMin ); + bbox.xMax = min( bbox.xMax, cbox.xMax ); + bbox.yMin = max( bbox.yMin, cbox.yMin ); + bbox.yMax = min( bbox.yMax, cbox.yMax ); + + bbox.xMin = bbox.xMin & -64; + bbox.xMax = (bbox.xMax + 63) & -64; + bbox.yMax = (bbox.yMax + 63) & -64; + bbox.yMin = bbox.yMin & -64; + + return bbox; +} + +static DWORD get_mono_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, BOOL fake_bold, DWORD buflen, BYTE *buf ) { DWORD width = (bbox.xMax - bbox.xMin ) >> 6; @@ -7041,12 +7063,9 @@ static DWORD get_mono_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, ft_bitmap.pixel_mode = FT_PIXEL_MODE_MONO; ft_bitmap.buffer = buf;
- if (needs_transform) - pFT_Outline_Transform( &glyph->outline, &matrices[matrix_vert] ); - pFT_Outline_Translate( &glyph->outline, -bbox.xMin, -bbox.yMin ); - /* Note: FreeType will only set 'black' bits for us. */ memset( buf, 0, buflen ); + pFT_Outline_Translate( &glyph->outline, -bbox.xMin, -bbox.yMin ); pFT_Outline_Get_Bitmap( library, &glyph->outline, &ft_bitmap ); break;
@@ -7059,8 +7078,7 @@ static DWORD get_mono_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, }
static DWORD get_antialias_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, UINT format, - BOOL fake_bold, BOOL needs_transform, FT_Matrix matrices[3], - DWORD buflen, BYTE *buf ) + BOOL fake_bold, DWORD buflen, BYTE *buf ) { DWORD width = (bbox.xMax - bbox.xMin ) >> 6; DWORD height = (bbox.yMax - bbox.yMin ) >> 6; @@ -7107,11 +7125,8 @@ static DWORD get_antialias_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, UINT ft_bitmap.pixel_mode = FT_PIXEL_MODE_GRAY; ft_bitmap.buffer = buf;
- if (needs_transform) - pFT_Outline_Transform( &glyph->outline, &matrices[matrix_vert] ); - pFT_Outline_Translate( &glyph->outline, -bbox.xMin, -bbox.yMin ); - memset( buf, 0, buflen ); + pFT_Outline_Translate( &glyph->outline, -bbox.xMin, -bbox.yMin ); pFT_Outline_Get_Bitmap( library, &glyph->outline, &ft_bitmap );
if (max_level != 255) @@ -7137,8 +7152,7 @@ static DWORD get_antialias_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox bbox, UINT }
static DWORD get_subpixel_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox *bbox, UINT format, - BOOL fake_bold, BOOL needs_transform, FT_Matrix matrices[3], - DWORD buflen, BYTE *buf ) + BOOL fake_bold, DWORD buflen, BYTE *buf ) { DWORD width = (bbox->xMax - bbox->xMin ) >> 6; DWORD height = (bbox->yMax - bbox->yMin ) >> 6; @@ -7213,9 +7227,6 @@ static DWORD get_subpixel_glyph_bitmap( FT_GlyphSlot glyph, FT_BBox *bbox, UINT if (!buf || !buflen) return needed; if (needed > buflen) return GDI_ERROR;
- if (needs_transform) - pFT_Outline_Transform( &glyph->outline, &matrices[matrix_vert] ); - #ifdef FT_LCD_FILTER_H if (pFT_Library_SetLcdFilter) pFT_Library_SetLcdFilter( library, FT_LCD_FILTER_DEFAULT ); @@ -7612,11 +7623,23 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, return GDI_ERROR; }
+ switch (ft_face->glyph->format) + { + case FT_GLYPH_FORMAT_OUTLINE: + bbox = get_transformed_outline( &ft_face->glyph->outline, bbox, needsTransform, matrices ); + break; + case FT_GLYPH_FORMAT_BITMAP: + /* TODO: winfnt, embedded bitmap transform(scale, slant, ...). */ + break; + default: + FIXME( "loaded glyph format %x\n", ft_face->glyph->format ); + return GDI_ERROR; + } + switch (format) { case GGO_BITMAP: - needed = get_mono_glyph_bitmap( ft_face->glyph, bbox, font->fake_bold, - needsTransform, matrices, buflen, buf ); + needed = get_mono_glyph_bitmap( ft_face->glyph, bbox, font->fake_bold, buflen, buf ); break;
case GGO_GRAY2_BITMAP: @@ -7624,7 +7647,7 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, case GGO_GRAY8_BITMAP: case WINE_GGO_GRAY16_BITMAP: needed = get_antialias_glyph_bitmap( ft_face->glyph, bbox, format, font->fake_bold, - needsTransform, matrices, buflen, buf ); + buflen, buf ); break;
case WINE_GGO_HRGB_BITMAP: @@ -7632,7 +7655,7 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, case WINE_GGO_VRGB_BITMAP: case WINE_GGO_VBGR_BITMAP: needed = get_subpixel_glyph_bitmap( ft_face->glyph, &bbox, format, font->fake_bold, - needsTransform, matrices, buflen, buf ); + buflen, buf ); break;
case GGO_NATIVE: @@ -7640,10 +7663,6 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, FT_Outline *outline = &ft_face->glyph->outline;
if(buflen == 0) buf = NULL; - - if (needsTransform && buf) - pFT_Outline_Transform( outline, &matrices[matrix_vert] ); - needed = get_native_glyph_outline(outline, buflen, NULL);
if (!buf || !buflen) @@ -7658,10 +7677,6 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, { FT_Outline *outline = &ft_face->glyph->outline; if(buflen == 0) buf = NULL; - - if (needsTransform && buf) - pFT_Outline_Transform( outline, &matrices[matrix_vert] ); - needed = get_bezier_glyph_outline(outline, buflen, NULL);
if (!buf || !buflen)
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47423
Your paranoid android.
=== debian9 (32 bit report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (56436 bytes)
=== debian9 (32 bit Chinese:China report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (56905 bytes)
=== debian9 (32 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (56436 bytes)
=== debian9 (64 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(2) and gmBlackBoxX(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(5) and gmBlackBoxX(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(7) and gmBlackBoxX(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(0) and gmptGlyphOrigin.x(0) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(1) and gmptGlyphOrigin.x(1) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(2) and gmptGlyphOrigin.x(2) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(3) and gmptGlyphOrigin.x(3) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(4) and gmptGlyphOrigin.x(4) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(5) and gmptGlyphOrigin.x(5) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(6) and gmptGlyphOrigin.x(6) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(7) and gmptGlyphOrigin.x(7) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(8) and gmptGlyphOrigin.x(8) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(9) and gmptGlyphOrigin.x(9) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(10) and gmptGlyphOrigin.x(10) values are different at width 1 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(3) and gmBlackBoxX(3) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-1) and gmptGlyphOrigin.x(-1) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(4) and gmBlackBoxX(4) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(6) and gmBlackBoxX(6) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-2) and gmptGlyphOrigin.x(-2) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(8) and gmBlackBoxX(8) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(10) and gmBlackBoxX(10) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(11) and gmBlackBoxX(11) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-3) and gmptGlyphOrigin.x(-3) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(12) and gmBlackBoxX(12) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(15) and gmBlackBoxX(15) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-4) and gmptGlyphOrigin.x(-4) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(16) and gmBlackBoxX(16) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(18) and gmBlackBoxX(18) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-5) and gmptGlyphOrigin.x(-5) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(20) and gmBlackBoxX(20) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(22) and gmBlackBoxX(22) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(23) and gmBlackBoxX(23) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-6) and gmptGlyphOrigin.x(-6) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(24) and gmBlackBoxX(24) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(27) and gmBlackBoxX(27) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-7) and gmptGlyphOrigin.x(-7) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(28) and gmBlackBoxX(28) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(30) and gmBlackBoxX(30) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-8) and gmptGlyphOrigin.x(-8) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(32) and gmBlackBoxX(32) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(34) and gmBlackBoxX(34) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(35) and gmBlackBoxX(35) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-9) and gmptGlyphOrigin.x(-9) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(36) and gmBlackBoxX(36) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(39) and gmBlackBoxX(39) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-10) and gmptGlyphOrigin.x(-10) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(40) and gmBlackBoxX(40) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(42) and gmBlackBoxX(42) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-11) and gmptGlyphOrigin.x(-11) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(44) and gmBlackBoxX(44) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(46) and gmBlackBoxX(46) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(47) and gmBlackBoxX(47) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-12) and gmptGlyphOrigin.x(-12) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(48) and gmBlackBoxX(48) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(51) and gmBlackBoxX(51) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-13) and gmptGlyphOrigin.x(-13) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(52) and gmBlackBoxX(52) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(54) and gmBlackBoxX(54) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-14) and gmptGlyphOrigin.x(-14) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(56) and gmBlackBoxX(56) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(58) and gmBlackBoxX(58) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(59) and gmBlackBoxX(59) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-15) and gmptGlyphOrigin.x(-15) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(60) and gmBlackBoxX(60) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(63) and gmBlackBoxX(63) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-16) and gmptGlyphOrigin.x(-16) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(64) and gmBlackBoxX(64) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(66) and gmBlackBoxX(66) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-17) and gmptGlyphOrigin.x(-17) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(68) and gmBlackBoxX(68) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(70) and gmBlackBoxX(70) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(71) and gmBlackBoxX(71) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-18) and gmptGlyphOrigin.x(-18) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(72) and gmBlackBoxX(72) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(75) and gmBlackBoxX(75) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-19) and gmptGlyphOrigin.x(-19) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(76) and gmBlackBoxX(76) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(78) and gmBlackBoxX(78) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-20) and gmptGlyphOrigin.x(-20) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(80) and gmBlackBoxX(80) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(82) and gmBlackBoxX(82) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(83) and gmBlackBoxX(83) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-21) and gmptGlyphOrigin.x(-21) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(84) and gmBlackBoxX(84) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(87) and gmBlackBoxX(87) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-22) and gmptGlyphOrigin.x(-22) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(88) and gmBlackBoxX(88) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(90) and gmBlackBoxX(90) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-23) and gmptGlyphOrigin.x(-23) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(92) and gmBlackBoxX(92) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(94) and gmBlackBoxX(94) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(95) and gmBlackBoxX(95) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-24) and gmptGlyphOrigin.x(-24) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(96) and gmBlackBoxX(96) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(99) and gmBlackBoxX(99) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-25) and gmptGlyphOrigin.x(-25) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(100) and gmBlackBoxX(100) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(102) and gmBlackBoxX(102) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-26) and gmptGlyphOrigin.x(-26) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(104) and gmBlackBoxX(104) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(106) and gmBlackBoxX(106) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(107) and gmBlackBoxX(107) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-27) and gmptGlyphOrigin.x(-27) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(108) and gmBlackBoxX(108) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(111) and gmBlackBoxX(111) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-28) and gmptGlyphOrigin.x(-28) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(112) and gmBlackBoxX(112) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(114) and gmBlackBoxX(114) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-29) and gmptGlyphOrigin.x(-29) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(116) and gmBlackBoxX(116) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(118) and gmBlackBoxX(118) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(119) and gmBlackBoxX(119) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-30) and gmptGlyphOrigin.x(-30) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(120) and gmBlackBoxX(120) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(123) and gmBlackBoxX(123) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-31) and gmptGlyphOrigin.x(-31) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(124) and gmBlackBoxX(124) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(126) and gmBlackBoxX(126) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-32) and gmptGlyphOrigin.x(-32) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(128) and gmBlackBoxX(128) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(130) and gmBlackBoxX(130) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(131) and gmBlackBoxX(131) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-33) and gmptGlyphOrigin.x(-33) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(132) and gmBlackBoxX(132) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(135) and gmBlackBoxX(135) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-34) and gmptGlyphOrigin.x(-34) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(136) and gmBlackBoxX(136) values are different at width 2 font.c:1389: Test succeeded inside todo block: abcA(-35) and gmptGlyphOrigin.x(-35) values are different at width 2 font.c:1393: Test succeeded inside todo block: abcB(138) and gmBlackBoxX(138) values are different at width 2 font.c:6144: Test succeeded inside todo block: expected 816, got 816 font.c:6147: Test succeeded inside todo block: expected 836, got 836
Report errors: gdi32:font prints too much data (56436 bytes)
Signed-off-by: Byeongsik Jeon bsjeon@hanmail.net --- - The abc{A,B} value reflects the subpixel rendering metrics modification when the glyph unrotated.
- fake_italic==TRUE, rotation==ZERO situation does not require a recalculation of abc{A,B}. and Wine current method can not calculate it.
- Even if font_desc.matrix != identity, there are more situations where abc{A,B} recalculation is not needed. There are some solutions, but I need more investigation.
dlls/gdi32/freetype.c | 25 +++++++++++++++++-------- dlls/gdi32/tests/font.c | 21 ++++++++++++--------- 2 files changed, 29 insertions(+), 17 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 1f1957f2ca..8abffe121d 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -6917,15 +6917,26 @@ static void compute_metrics( GdiFont *incoming_font, GdiFont *font, { FT_Vector adv, vec, origin;
- if (!needs_transform) + if (!(font->orientation % 3600) && is_identity_FMAT2( &font->font_desc.matrix ) && + !vertical) { - adv = get_advance_metric( incoming_font, font, metrics, NULL, vertical_metrics ); - gm->gmCellIncX = adv.x >> 6; - gm->gmCellIncY = 0; + if (!needs_transform) + { + adv = get_advance_metric( incoming_font, font, metrics, NULL, vertical_metrics ); + gm->gmCellIncX = adv.x >> 6; + gm->gmCellIncY = 0; + } + else + { + adv = get_advance_metric( incoming_font, font, metrics, &matrices[matrix_hori], + vertical_metrics ); + gm->gmCellIncX = adv.x >> 6; + gm->gmCellIncY = adv.y >> 6; + } origin.x = bbox.xMin; origin.y = bbox.yMax; abc->abcA = origin.x >> 6; - abc->abcB = (metrics->width + 63) >> 6; + abc->abcB = (bbox.xMax - bbox.xMin) >> 6; } else { @@ -6959,8 +6970,6 @@ static void compute_metrics( GdiFont *incoming_font, GdiFont *font,
adv = get_advance_metric( incoming_font, font, metrics, &matrices[matrix_unrotated], vertical_metrics ); - adv.x = pFT_Vector_Length( &adv ); - adv.y = 0;
vec.x = lsb; vec.y = 0; @@ -6975,7 +6984,7 @@ static void compute_metrics( GdiFont *incoming_font, GdiFont *font, abc->abcB = ((pFT_Vector_Length( &vec ) + 63) >> 6) - abc->abcA; } if (!abc->abcB) abc->abcB = 1; - abc->abcC = (adv.x >> 6) - abc->abcA - abc->abcB; + abc->abcC = (pFT_Vector_Length( &adv ) >> 6) - abc->abcA - abc->abcB;
gm->gmptGlyphOrigin.x = origin.x >> 6; gm->gmptGlyphOrigin.y = origin.y >> 6; diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c index 53035cfb9b..f14e6f80c8 100644 --- a/dlls/gdi32/tests/font.c +++ b/dlls/gdi32/tests/font.c @@ -1347,7 +1347,7 @@ static void test_GetCharABCWidths(void)
/* test abcA == gmptGlyphOrigin.x && abcB == gmBlackBoxX in various widths. */ - for (i = 1; i <= 2; i++) + for (i = 1; i <= 3; i++) { UINT j; UINT code; @@ -1365,6 +1365,11 @@ static void test_GetCharABCWidths(void) lf.lfItalic = TRUE; code = 'f'; break; + case 3: + strcpy(lf.lfFaceName, "Tahoma"); + lf.lfItalic = TRUE; /* simulated italic */ + code = 'V'; + break; } if (!is_truetype_font_installed(lf.lfFaceName)) { @@ -1380,19 +1385,17 @@ static void test_GetCharABCWidths(void) hfont = SelectObject(hdc, hfont);
nb = GetGlyphOutlineA(hdc, code, GGO_METRICS, &gm, 0, NULL, &mat); - ok(nb, "GetGlyphOutlineA should have succeeded at width %d\n", i); + ok(nb, "%d: GetGlyphOutlineA should have succeeded at width %d\n", i, j);
ret = GetCharABCWidthsA(hdc, code, code, abc); - ok(ret, "GetCharABCWidthsA should have succeeded at width %d\n", i); + ok(ret, "%d: GetCharABCWidthsA should have succeeded at width %d\n", i, j);
- todo_wine ok(abc[0].abcA == gm.gmptGlyphOrigin.x, - "abcA(%d) and gmptGlyphOrigin.x(%d) values are different at width %d\n", - abc[0].abcA, gm.gmptGlyphOrigin.x, i); - todo_wine + "%d: abcA(%d) and gmptGlyphOrigin.x(%d) values are different at width %d\n", + i, abc[0].abcA, gm.gmptGlyphOrigin.x, j); ok(abc[0].abcB == gm.gmBlackBoxX, - "abcB(%d) and gmBlackBoxX(%d) values are different at width %d\n", - abc[0].abcB, gm.gmBlackBoxX, i); + "%d: abcB(%d) and gmBlackBoxX(%d) values are different at width %d\n", + i, abc[0].abcB, gm.gmBlackBoxX, j); DeleteObject(SelectObject(hdc, hfont)); } }
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47424
Your paranoid android.
=== debian9 (32 bit report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:6147: Test succeeded inside todo block: expected 816, got 816 font.c:6150: Test succeeded inside todo block: expected 836, got 836
=== debian9 (32 bit French report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:6147: Test succeeded inside todo block: expected 816, got 816 font.c:6150: Test succeeded inside todo block: expected 836, got 836
=== debian9 (32 bit Japanese:Japan report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:6147: Test succeeded inside todo block: expected 816, got 816 font.c:6150: Test succeeded inside todo block: expected 836, got 836
=== debian9 (32 bit Chinese:China report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:6147: Test succeeded inside todo block: expected 816, got 816 font.c:6150: Test succeeded inside todo block: expected 836, got 836
=== debian9 (32 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:6147: Test succeeded inside todo block: expected 816, got 816 font.c:6150: Test succeeded inside todo block: expected 836, got 836
=== debian9 (64 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B) font.c:6147: Test succeeded inside todo block: expected 816, got 816 font.c:6150: Test succeeded inside todo block: expected 836, got 836
Signed-off-by: Byeongsik Jeon bsjeon@hanmail.net --- Another case of [PATCH 4].
dlls/gdi32/freetype.c | 51 +++++++++++++++++++---------------------- dlls/gdi32/tests/font.c | 2 -- 2 files changed, 24 insertions(+), 29 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 8abffe121d..375d4bc059 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -6916,9 +6916,30 @@ static void compute_metrics( GdiFont *incoming_font, GdiFont *font, GLYPHMETRICS *gm, ABC *abc ) { FT_Vector adv, vec, origin; + FT_Pos lsb;
- if (!(font->orientation % 3600) && is_identity_FMAT2( &font->font_desc.matrix ) && - !vertical) + if (vertical && (font->potm || get_outline_text_metrics( font ))) + { + if (vertical_metrics) + lsb = metrics->horiBearingY + metrics->vertBearingY; + else + lsb = metrics->vertAdvance + (font->potm->otmDescent << 6); + vec.x = lsb; + vec.y = font->potm->otmDescent << 6; + TRACE( "Vec %ld, %ld\n", vec.x >> 6, vec.y >> 6 ); + pFT_Vector_Transform( &vec, &matrices[matrix_hori] ); + origin.x = (vec.x + bbox.xMin) & -64; + origin.y = (vec.y + bbox.yMax + 63) & -64; + lsb -= metrics->horiBearingY; + } + else + { + origin.x = bbox.xMin; + origin.y = bbox.yMax; + lsb = metrics->horiBearingX; + } + + if (!(font->orientation % 3600) && is_identity_FMAT2( &font->font_desc.matrix )) { if (!needs_transform) { @@ -6933,36 +6954,12 @@ static void compute_metrics( GdiFont *incoming_font, GdiFont *font, gm->gmCellIncX = adv.x >> 6; gm->gmCellIncY = adv.y >> 6; } - origin.x = bbox.xMin; - origin.y = bbox.yMax; + abc->abcA = origin.x >> 6; abc->abcB = (bbox.xMax - bbox.xMin) >> 6; } else { - FT_Pos lsb; - - if (vertical && (font->potm || get_outline_text_metrics( font ))) - { - if (vertical_metrics) - lsb = metrics->horiBearingY + metrics->vertBearingY; - else - lsb = metrics->vertAdvance + (font->potm->otmDescent << 6); - vec.x = lsb; - vec.y = font->potm->otmDescent << 6; - TRACE( "Vec %ld,%ld\n", vec.x>>6, vec.y>>6 ); - pFT_Vector_Transform( &vec, &matrices[matrix_hori] ); - origin.x = (vec.x + bbox.xMin) & -64; - origin.y = (vec.y + bbox.yMax + 63) & -64; - lsb -= metrics->horiBearingY; - } - else - { - origin.x = bbox.xMin; - origin.y = bbox.yMax; - lsb = metrics->horiBearingX; - } - adv = get_advance_metric( incoming_font, font, metrics, &matrices[matrix_hori], vertical_metrics ); gm->gmCellIncX = adv.x >> 6; diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c index f14e6f80c8..cad99235cc 100644 --- a/dlls/gdi32/tests/font.c +++ b/dlls/gdi32/tests/font.c @@ -6143,10 +6143,8 @@ static void check_vertical_metrics(const char *face) ok(ret != GDI_ERROR, "GetGlyphOutlineW failed\n"); ret = GetCharABCWidthsW(hdc, code, code, &vabc); ok(ret, "GetCharABCWidthsW failed\n"); - todo_wine ok(vabc.abcA == vgm.gmptGlyphOrigin.x, "expected %d, got %d\n", vabc.abcA, vgm.gmptGlyphOrigin.x); - todo_wine ok(vabc.abcB == vgm.gmBlackBoxX, "expected %d, got %d\n", vabc.abcB, vgm.gmBlackBoxX); ok(vabc.abcA + vabc.abcB + vabc.abcC == vgm.gmCellIncX,
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47425
Your paranoid android.
=== debian9 (32 bit report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)
=== debian9 (32 bit French report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)
=== debian9 (32 bit Japanese:Japan report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)
=== debian9 (32 bit Chinese:China report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)
=== debian9 (32 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)
=== debian9 (64 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)
Signed-off-by: Byeongsik Jeon bsjeon@hanmail.net --- Since previous patches have modified the glyph metrics unstable problem, we can caching the glyph metrics by GGO format.
dlls/gdi32/freetype.c | 114 ++++++++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 33 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 375d4bc059..27a233687d 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -305,6 +305,17 @@ typedef struct tagFamily { struct list *replacement; } Family;
+enum GM_type +{ + GM_TYPE_MONO, + GM_TYPE_GRAY, + GM_TYPE_LCD, + GM_TYPE_LCD_V, + GM_TYPE_OUTLINE, + GM_TYPE_NONE +}; +#define GM_NBTYPES GM_TYPE_NONE + typedef struct { GLYPHMETRICS gm; ABC abc; /* metrics of the unrotated char */ @@ -403,8 +414,8 @@ struct tagGdiFont { struct list entry; struct list unused_entry; unsigned int refcount; - GM **gm; - DWORD gmsize; + GM **gm[GM_NBTYPES]; + DWORD gmsize[GM_NBTYPES]; OUTLINETEXTMETRICW *potm; DWORD total_kern_pairs; KERNINGPAIR *kern_pairs; @@ -4656,11 +4667,16 @@ static int get_nearest_charset(const WCHAR *family_name, Face *face, int *cp)
static GdiFont *alloc_font(void) { + DWORD type; + GdiFont *ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ret)); ret->refcount = 1; - ret->gmsize = 1; - ret->gm = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GM*)); - ret->gm[0] = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GM) * GM_BLOCK_SIZE); + for (type = 0; type < GM_NBTYPES; type++) + { + ret->gmsize[type] = 1; + ret->gm[type] = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GM *) ); + ret->gm[type][0] = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GM) * GM_BLOCK_SIZE ); + } ret->potm = NULL; ret->font_desc.matrix.eM11 = ret->font_desc.matrix.eM22 = 1.0; ret->total_kern_pairs = (DWORD)-1; @@ -4673,7 +4689,7 @@ static GdiFont *alloc_font(void) static void free_font(GdiFont *font) { CHILD_FONT *child, *child_next; - DWORD i; + DWORD type, block;
LIST_FOR_EACH_ENTRY_SAFE( child, child_next, &font->child_fonts, CHILD_FONT, entry ) { @@ -4691,23 +4707,52 @@ static void free_font(GdiFont *font) HeapFree(GetProcessHeap(), 0, font->kern_pairs); HeapFree(GetProcessHeap(), 0, font->potm); HeapFree(GetProcessHeap(), 0, font->name); - for (i = 0; i < font->gmsize; i++) - HeapFree(GetProcessHeap(),0,font->gm[i]); - HeapFree(GetProcessHeap(), 0, font->gm); + for (type = 0; type < GM_NBTYPES; type++) + { + for (block = 0; block < font->gmsize[type]; block++) + HeapFree( GetProcessHeap(), 0, font->gm[type][block] ); + HeapFree( GetProcessHeap(), 0, font->gm[type] ); + } HeapFree(GetProcessHeap(), 0, font->GSUB_Table); HeapFree(GetProcessHeap(), 0, font); }
-/* TODO: GGO format support */ -static BOOL get_cached_metrics( GdiFont *font, UINT index, GLYPHMETRICS *gm, ABC *abc ) +static UINT get_cached_metrics_type( UINT format ) { + switch (format) + { + case GGO_BITMAP: return GM_TYPE_MONO; + + case GGO_GRAY2_BITMAP: + case GGO_GRAY4_BITMAP: + case GGO_GRAY8_BITMAP: return GM_TYPE_GRAY; + + case WINE_GGO_HRGB_BITMAP: + case WINE_GGO_HBGR_BITMAP: return GM_TYPE_LCD; + + case WINE_GGO_VRGB_BITMAP: + case WINE_GGO_VBGR_BITMAP: return GM_TYPE_LCD_V; + + case GGO_NATIVE: + case GGO_BEZIER: return GM_TYPE_OUTLINE; + + default: return GM_TYPE_NONE; + } +} + +static BOOL get_cached_metrics( GdiFont *font, UINT index, UINT format, + GLYPHMETRICS *gm, ABC *abc ) +{ + UINT type = get_cached_metrics_type( format ); UINT block = index / GM_BLOCK_SIZE; UINT entry = index % GM_BLOCK_SIZE;
- if (block < font->gmsize && font->gm[block] && font->gm[block][entry].init) + if (type == GM_TYPE_NONE) return FALSE; + + if (block < font->gmsize[type] && font->gm[type][block] && font->gm[type][block][entry].init) { - *gm = font->gm[block][entry].gm; - *abc = font->gm[block][entry].abc; + *gm = font->gm[type][block][entry].gm; + *abc = font->gm[type][block][entry].abc;
TRACE( "cached gm: %u, %u, %s, %d, %d abc: %d, %u, %d\n", gm->gmBlackBoxX, gm->gmBlackBoxY, wine_dbgstr_point( &gm->gmptGlyphOrigin ), @@ -4718,31 +4763,35 @@ static BOOL get_cached_metrics( GdiFont *font, UINT index, GLYPHMETRICS *gm, ABC return FALSE; }
-static void set_cached_metrics( GdiFont *font, UINT index, const GLYPHMETRICS *gm, const ABC *abc ) +static void set_cached_metrics( GdiFont *font, UINT index, UINT format, + const GLYPHMETRICS *gm, const ABC *abc ) { + UINT type = get_cached_metrics_type( format ); UINT block = index / GM_BLOCK_SIZE; UINT entry = index % GM_BLOCK_SIZE;
- if (block >= font->gmsize) + if (type == GM_TYPE_NONE) return; + + if (block >= font->gmsize[type]) { GM **ptr = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, - font->gm, (block + 1) * sizeof(GM *) ); + font->gm[type], (block + 1) * sizeof(GM *) ); if (!ptr) return;
- font->gmsize = block + 1; - font->gm = ptr; + font->gmsize[type] = block + 1; + font->gm[type] = ptr; }
- if (!font->gm[block]) + if (!font->gm[type][block]) { - font->gm[block] = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(GM) * GM_BLOCK_SIZE ); - if (!font->gm[block]) return; + font->gm[type][block] = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(GM) * GM_BLOCK_SIZE ); + if (!font->gm[type][block]) return; }
- font->gm[block][entry].gm = *gm; - font->gm[block][entry].abc = *abc; - font->gm[block][entry].init = TRUE; + font->gm[type][block][entry].gm = *gm; + font->gm[type][block][entry].abc = *abc; + font->gm[type][block][entry].init = TRUE; }
static DWORD get_font_data( GdiFont *font, DWORD table, DWORD offset, LPVOID buf, DWORD cbData) @@ -7547,6 +7596,7 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, BOOL tategaki = (font->name[0] == '@'); BOOL vertical_metrics; BOOL ggo_metrics = format & WINE_GGO_METRICS; + BOOL can_use_cache = is_identity_MAT2(lpmat) && !(format & GGO_UNHINTED);
TRACE("%p, %04x, %08x, %p, %08x, %p, %p\n", font, glyph, format, lpgm, buflen, buf, lpmat); @@ -7563,7 +7613,6 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, TRACE("translate glyph index %04x -> %04x\n", glyph, glyph_index); } else glyph_index = glyph; - format &= ~GGO_GLYPH_INDEX; /* TODO: Window also turns off tategaki for glyphs passed in by index if their unicode code points fall outside of the range that is rotated. */ @@ -7575,10 +7624,10 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, tategaki = check_unicode_tategaki(glyph); }
- format &= ~(WINE_GGO_METRICS | GGO_UNHINTED); + format &= ~(WINE_GGO_METRICS | GGO_UNHINTED | GGO_GLYPH_INDEX);
- if (ggo_metrics && is_identity_MAT2(lpmat) && - get_cached_metrics( font, glyph_index, lpgm, abc )) + if (ggo_metrics && can_use_cache && + get_cached_metrics( font, glyph_index, format, lpgm, abc )) return 1; /* FIXME */
needsTransform = get_transform_matrices( font, tategaki, lpmat, matrices ); @@ -7703,9 +7752,8 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, tategaki, vertical_metrics, needsTransform, matrices, &gm, abc );
- if ((ggo_metrics || format == GGO_BITMAP || format == WINE_GGO_GRAY16_BITMAP) && - is_identity_MAT2(lpmat)) /* don't cache custom transforms */ - set_cached_metrics( font, glyph_index, &gm, abc ); + if (can_use_cache && needed != GDI_ERROR) + set_cached_metrics( font, glyph_index, format, &gm, abc );
if (ggo_metrics || needed != GDI_ERROR) *lpgm = gm;
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=47426
Your paranoid android.
=== debian9 (32 bit report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)
=== debian9 (32 bit Chinese:China report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)
=== debian9 (32 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)
=== debian9 (64 bit WoW report) ===
gdi32: font.c:1339: Test succeeded inside todo block: got 72, expected 72 (B)