diff --git a/src/frontend/wdisp/windisp.c b/src/frontend/wdisp/windisp.c index c99b1d683..d3a1837cb 100644 --- a/src/frontend/wdisp/windisp.c +++ b/src/frontend/wdisp/windisp.c @@ -694,16 +694,17 @@ int WIN_NewViewport(GRAPH *graph) 0, 0, WinLineWidth, i * 2 - 22, NULL, NULL, hInst, NULL); #else /* UTF-8 support */ - wchar_t *wtext, *wtext2; - wtext = TMALLOC(wchar_t, 2 * strlen(graph->plotname) + 1); - wtext2 = TMALLOC(wchar_t, 2 * strlen(WindowName) + 1); + const int n_byte_wide = 2 * (int)strlen(graph->plotname) + 1; + wchar_t* const wtext = TMALLOC(wchar_t, n_byte_wide); + const int n_byte_wide2 = 2 * (int)strlen(WindowName) + 1; + wchar_t* const wtext2 = TMALLOC(wchar_t, n_byte_wide2); /* translate UTF-8 to UTF-16 */ - MultiByteToWideChar(CP_UTF8, 0, graph->plotname, -1, wtext, 2 * (int)strlen(graph->plotname) + 1); - MultiByteToWideChar(CP_UTF8, 0, WindowName, -1, wtext2, 2 * (int)strlen(WindowName) + 1); + MultiByteToWideChar(CP_UTF8, 0, graph->plotname, -1, wtext, n_byte_wide); + MultiByteToWideChar(CP_UTF8, 0, WindowName, -1, wtext2, n_byte_wide2); window = CreateWindowW(wtext2, wtext, WS_OVERLAPPEDWINDOW, 0, 0, WinLineWidth, i * 2 - 22, NULL, NULL, hInst, NULL); - tfree(wtext); - tfree(wtext2); + txfree(wtext); + txfree(wtext2); #endif if (!window) return 1; @@ -734,7 +735,7 @@ int WIN_NewViewport(GRAPH *graph) wd->PaintFlag = 0; wd->FirstFlag = 1; - /* modify system menue */ + /* modify system menu */ sysmenu = GetSystemMenu(window, FALSE); AppendMenu(sysmenu, MF_SEPARATOR, 0, NULL); AppendMenu(sysmenu, MF_STRING, ID_DRUCKEN, STR_DRUCKEN); @@ -1043,11 +1044,12 @@ int WIN_Text(char *text, int x, int y, int angle) #ifdef EXT_ASC TextOut(wd->hDC, x, wd->Area.bottom - y - currentgraph->fontheight, text, (int)strlen(text)); #else - wchar_t *wtext; - wtext = TMALLOC(wchar_t, 2 * strlen(text) + 1); - MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, 2 * (int)strlen(text) + 1); - TextOutW(wd->hDC, x, wd->Area.bottom - y - currentgraph->fontheight, wtext, 2 * (int)strlen(text) + 1); - tfree(wtext); + const int n_byte_wide = 2 * (int)strlen(text) + 1; + wchar_t* const wtext = TMALLOC(wchar_t, n_byte_wide); + MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, n_byte_wide); + TextOutW(wd->hDC, x, wd->Area.bottom - y - currentgraph->fontheight, + wtext, n_byte_wide); + txfree(wtext); #endif DeleteObject(SelectObject(wd->hDC, hfont)); diff --git a/src/frontend/wdisp/winprint.c b/src/frontend/wdisp/winprint.c index c368955e5..d4e120759 100644 --- a/src/frontend/wdisp/winprint.c +++ b/src/frontend/wdisp/winprint.c @@ -294,13 +294,15 @@ int WPRINT_NewViewport(GRAPH * graph) TextOut(PrinterDC, PrinterWidth - graph->fontwidth, 1, graph->plotname, (int)strlen(graph->plotname)); #else - wchar_t* wtext; - wtext = TMALLOC(wchar_t, 2 * strlen(graph->plotname) + 1); - MultiByteToWideChar(CP_UTF8, 0, graph->plotname, -1, wtext, 2 * (int)strlen(graph->plotname) + 1); - TextOutW(PrinterDC, PrinterWidth - graph->fontwidth, 1, wtext, 2 * (int)strlen(graph->plotname) + 1); - tfree(wtext); + const int n_byte_wide = 2 * (int)strlen(graph->plotname) + 1; + wchar_t* const wtext = TMALLOC(wchar_t, n_byte_wide); + MultiByteToWideChar(CP_UTF8, 0, graph->plotname, -1, wtext, + n_byte_wide); + TextOutW(PrinterDC, PrinterWidth - graph->fontwidth, 1, wtext, + n_byte_wide); + txfree(wtext); #endif - SetTextAlign( PrinterDC, align); + SetTextAlign(PrinterDC, align); } /* fertig */ @@ -431,11 +433,12 @@ int WPRINT_Text(char * text, int x, int y, int degrees) #ifdef EXT_ASC TextOut(PrinterDC, x, PrinterHeight - y - currentgraph->fontheight, text, (int)strlen(text)); #else - wchar_t* wtext; - wtext = TMALLOC(wchar_t, 2 * strlen(text) + 1); - MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, 2 * (int)strlen(text) + 1); - TextOutW(PrinterDC, x, PrinterHeight - y - currentgraph->fontheight, wtext, 2 * (int)strlen(text) + 1); - tfree(wtext); + const int n_byte_wide = 2 * (int)strlen(text) + 1; + wchar_t* const wtext = TMALLOC(wchar_t, n_byte_wide); + MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, n_byte_wide); + TextOutW(PrinterDC, x, PrinterHeight - y - currentgraph->fontheight, + wtext, n_byte_wide); + txfree(wtext); #endif return (0); }