X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/b03db5b6836720d38860cc5fca352fce7cf48c24..fc40b431a9049585675e171643eb308cc548713c:/windows/window.c diff --git a/windows/window.c b/windows/window.c index 80ca7955..a0a52685 100644 --- a/windows/window.c +++ b/windows/window.c @@ -699,6 +699,12 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) } /* + * Initialise the fonts, simultaneously correcting the guesses + * for font_{width,height}. + */ + init_fonts(0,0); + + /* * Initialise the terminal. (We have to do this _after_ * creating the window, since the terminal is the first thing * which will call schedule_timer(), which will in turn call @@ -712,12 +718,6 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) conf_get_int(conf, CONF_savelines)); /* - * Initialise the fonts, simultaneously correcting the guesses - * for font_{width,height}. - */ - init_fonts(0,0); - - /* * Correct the guesses for extra_{width,height}. */ { @@ -3371,6 +3371,7 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len, if (attr & ATTR_NARROW) nfont |= FONT_NARROW; +#ifdef USES_VTLINE_HACK /* Special hack for the VT100 linedraw glyphs. */ if (text[0] >= 0x23BA && text[0] <= 0x23BD) { switch ((unsigned char) (text[0])) { @@ -3395,6 +3396,7 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len, force_manual_underline = 1; } } +#endif /* Anything left as an original character set is unprintable. */ if (DIRECT_CHAR(text[0]) && @@ -3513,12 +3515,13 @@ void do_text_internal(Context ctx, int x, int y, wchar_t *text, int len, len += 2; } - if (len > lpDx_len) { - if (len > lpDx_len) { - lpDx_len = len * 9 / 8 + 16; - lpDx = sresize(lpDx, lpDx_len, int); - } - } + if (len > lpDx_len) { + lpDx_len = len * 9 / 8 + 16; + lpDx = sresize(lpDx, lpDx_len, int); + + if (lpDx_maybe) lpDx_maybe = lpDx; + } + { int i; /* only last char has dx width in SURROGATE PAIR and