File diff r18395:22ade7a0b9e1 → r18396:32c4522595fa
src/strings.cpp
Show inline comments
 
@@ -1796,28 +1796,29 @@ static bool FindMissingGlyphs(const char
 
 * does not support. If this is the case an error
 
 * message will be shown in English. The error
 
 * message will not be localized because that would
 
 * mean it might use characters that are not in the
 
 * font, which is the whole reason this check has
 
 * been added.
 
 * @param base_font Whether to look at the base font as well.
 
 */
 
void CheckForMissingGlyphsInLoadedLanguagePack()
 
void CheckForMissingGlyphsInLoadedLanguagePack(bool base_font)
 
{
 
	bool bad_font = FindMissingGlyphs(NULL);
 
	bool bad_font = !base_font || FindMissingGlyphs(NULL);
 
#ifdef WITH_FREETYPE
 
	if (bad_font) {
 
		/* We found an unprintable character... lets try whether we can find
 
		 * a fallback font that can print the characters in the current language. */
 
		FreeTypeSettings backup;
 
		memcpy(&backup, &_freetype, sizeof(backup));
 

	
 
		bad_font = !SetFallbackFont(&_freetype, _langpack->isocode, _langpack->winlangid, &FindMissingGlyphs);
 

	
 
		memcpy(&_freetype, &backup, sizeof(backup));
 

	
 
		if (bad_font) {
 
		if (bad_font && base_font) {
 
			/* Our fallback font does miss characters too, so keep the
 
			 * user chosen font as that is more likely to be any good than
 
			 * the wild guess we made */
 
			UninitFreeType();
 
			InitFreeType();
 
		}