winedump: Fix EMR_EXTTEXTOUTW record dumping when ETO_PDY flag is specified.

This commit is contained in:
Piotr Caban 2023-11-28 18:31:26 +01:00 committed by Alexandre Julliard
parent 0d6c905add
commit 244b63566a

View file

@ -384,6 +384,7 @@ unsigned long dump_emfrecord(const char *pfx, unsigned long offset)
{
const EMREXTTEXTOUTW *etoW = PRD(offset, sizeof(*etoW));
const int *dx = (const int *)((const BYTE *)etoW + etoW->emrtext.offDx);
int dx_size;
printf("%s%-20s %08x\n", pfx, "EMR_EXTTEXTOUTW", length);
printf("%sbounds (%s) mode %#x x_scale %f y_scale %f pt (%d,%d) rect (%s) flags %#x, %s\n",
@ -392,10 +393,13 @@ unsigned long dump_emfrecord(const char *pfx, unsigned long offset)
debugstr_rect( &etoW->emrtext.rcl ), (UINT)etoW->emrtext.fOptions,
debugstr_wn((LPCWSTR)((const BYTE *)etoW + etoW->emrtext.offString), etoW->emrtext.nChars));
printf("%sdx_offset %u {", pfx, (UINT)etoW->emrtext.offDx);
for (i = 0; i < etoW->emrtext.nChars; ++i)
dx_size = etoW->emrtext.nChars;
if (etoW->emrtext.fOptions & ETO_PDY)
dx_size *= 2;
for (i = 0; i < dx_size; ++i)
{
printf("%d", dx[i]);
if (i != etoW->emrtext.nChars - 1)
if (i != dx_size - 1)
putchar(',');
}
printf("}\n");