widths[FONT_BOLD] != widths[FONT_NORMAL]) {
fsize[FONT_BOLD] != fsize[FONT_NORMAL]) {
static void init_fonts(void) {    TEXTMETRIC tm;    int i, j;    int widths[5];    HDC hdc;    int fw_dontcare, fw_bold;    for (i=0; i<8; i++)	fonts[i] = NULL;    if (cfg.fontisbold) {	fw_dontcare = FW_BOLD;	fw_bold = FW_BLACK;   } else {	fw_dontcare = FW_DONTCARE;	fw_bold = FW_BOLD;    }#define f(i,c,w,u) \    fonts[i] = CreateFont (cfg.fontheight, 0, 0, 0, w, FALSE, u, FALSE, \			   c, OUT_DEFAULT_PRECIS, \		           CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, \			   FIXED_PITCH | FF_DONTCARE, cfg.font)    if (cfg.vtmode != VT_OEMONLY) {	f(FONT_NORMAL, cfg.fontcharset, fw_dontcare, FALSE);	f(FONT_UNDERLINE, cfg.fontcharset, fw_dontcare, TRUE);    }    if (cfg.vtmode == VT_OEMANSI || cfg.vtmode == VT_OEMONLY) {	f(FONT_OEM, OEM_CHARSET, fw_dontcare, FALSE);	f(FONT_OEMUND, OEM_CHARSET, fw_dontcare, TRUE);    }    if (bold_mode == BOLD_FONT) {	if (cfg.vtmode != VT_OEMONLY) {	    f(FONT_BOLD, cfg.fontcharset, fw_bold, FALSE);	    f(FONT_BOLDUND, cfg.fontcharset, fw_bold, TRUE);	}	if (cfg.vtmode == VT_OEMANSI || cfg.vtmode == VT_OEMONLY) {	    f(FONT_OEMBOLD, OEM_CHARSET, fw_bold, FALSE);	    f(FONT_OEMBOLDUND, OEM_CHARSET, fw_bold, TRUE);	}    } else {	fonts[FONT_BOLD] = fonts[FONT_BOLDUND] = NULL;	fonts[FONT_OEMBOLD] = fonts[FONT_OEMBOLDUND] = NULL;    }#undef f    hdc = GetDC(hwnd);    if (cfg.vtmode == VT_OEMONLY)	j = 4;    else	j = 0;    for (i=0; i<(cfg.vtmode == VT_OEMANSI ? 5 : 4); i++) {	if (fonts[i+j]) {	    SelectObject (hdc, fonts[i+j]);	    GetTextMetrics(hdc, &tm);	    if (i == 0 || i == 4) {		font_height = tm.tmHeight;		font_width = tm.tmAveCharWidth;		descent = tm.tmAscent + 1;		if (descent >= font_height)		    descent = font_height - 1;	    }	    widths[i] = tm.tmAveCharWidth;	}    }    ReleaseDC (hwnd, hdc);    if (widths[FONT_UNDERLINE] != widths[FONT_NORMAL] ||	(bold_mode == BOLD_FONT &&	 widths[FONT_BOLDUND] != widths[FONT_BOLD])) {	und_mode = UND_LINE;	DeleteObject (fonts[FONT_UNDERLINE]);	if (bold_mode == BOLD_FONT)	    DeleteObject (fonts[FONT_BOLDUND]);    }    if (bold_mode == BOLD_FONT &&	widths[FONT_BOLD] != widths[FONT_NORMAL]) {	bold_mode = BOLD_SHADOW;	DeleteObject (fonts[FONT_BOLD]);	if (und_mode == UND_FONT)	    DeleteObject (fonts[FONT_BOLDUND]);    }    if (cfg.vtmode == VT_OEMANSI && widths[FONT_OEM] != widths[FONT_NORMAL]) {	MessageBox(NULL, "The OEM and ANSI versions of this font are\n"		   "different sizes. Using OEM-only mode instead",		   "Font Size Mismatch", MB_ICONINFORMATION | MB_OK);	cfg.vtmode = VT_OEMONLY;	for (i=0; i<4; i++)	    if (fonts[i])		DeleteObject (fonts[i]);    }}