Module: wine Branch: master Commit: 244b63566a02e1a42e06af8a51cf1d6ec7952928 URL: https://gitlab.winehq.org/wine/wine/-/commit/244b63566a02e1a42e06af8a51cf1d6...
Author: Piotr Caban piotr@codeweavers.com Date: Tue Nov 28 18:31:26 2023 +0100
winedump: Fix EMR_EXTTEXTOUTW record dumping when ETO_PDY flag is specified.
---
tools/winedump/emf.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tools/winedump/emf.c b/tools/winedump/emf.c index 42b1f9469af..253e7c658c2 100644 --- a/tools/winedump/emf.c +++ b/tools/winedump/emf.c @@ -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");