From d9784aa7eba13626d6397ebc2f8d2d1374dceb94 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 23 Aug 2012 08:14:55 -0600 Subject: [PATCH] win32 racket/gui: fix decoding of system font name Closes PR 12997 --- collects/mred/private/wx/win32/font.rkt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/collects/mred/private/wx/win32/font.rkt b/collects/mred/private/wx/win32/font.rkt index d71d174a7c..2da8ac2948 100644 --- a/collects/mred/private/wx/win32/font.rkt +++ b/collects/mred/private/wx/win32/font.rkt @@ -61,11 +61,12 @@ [lfFaceName (_array _uint16 32)])) (define (logfont->pango-family logfontw) - (define logfont (malloc _LOGFONTW)) - (memcpy logfont logfontw (ctype-sizeof _LOGFONTW)) ; bit enough for _LOGFONTA, too + ;; We'll allocate `logfont' as LOGFONTW but use it as LOGFONTA: + (define logfont (cast (malloc _LOGFONTW) _pointer (_gcable _LOGFONTW-pointer))) + (memcpy logfont logfontw (ctype-sizeof _LOGFONTW)) (WideCharToMultiByte 0 0 - (array-ptr (LOGFONTW-lfFaceName logfontw)) 0 - (array-ptr (LOGFONTW-lfFaceName logfontw)) 32 + (array-ptr (LOGFONTW-lfFaceName logfontw)) -1 + (array-ptr (LOGFONTW-lfFaceName logfont)) 32 #f #f) (define desc (pango_win32_font_description_from_logfont logfont))