lf.lfPitchAndFamily = (BYTE)(DEFAULT_PITCH) | ff_family;
- if ( !wxStrlen(lf.lfFaceName) )
- {
- SetFaceName(facename);
- }
+ // reset the facename so that CreateFontIndirect() will automatically choose a
+ // face name based only on the font family.
+ lf.lfFaceName[0] = '\0';
}
void wxNativeFontInfo::SetEncoding(wxFontEncoding encoding)
{
long l;
- wxStringTokenizer tokenizer(s, wxS(";"));
+ wxStringTokenizer tokenizer(s, wxS(";"), wxTOKEN_RET_EMPTY_ALL);
// first the version
wxString token = tokenizer.GetNextToken();
return false;
lf.lfPitchAndFamily = (BYTE)l;
- token = tokenizer.GetNextToken();
- if(!token)
+ if ( !tokenizer.HasMoreTokens() )
return false;
- wxStrcpy(lf.lfFaceName, token.c_str());
+
+ // the face name may be empty
+ wxStrcpy(lf.lfFaceName, tokenizer.GetNextToken());
return true;
}
lf.lfClipPrecision,
lf.lfQuality,
lf.lfPitchAndFamily,
- (const wxChar*)lf.lfFaceName);
+ lf.lfFaceName);
return s;
}