+
+ if (s->uni_to_font != NULL)
+ DisposeUnicodeToTextInfo(&s->uni_to_font);
+ if (mac_gestalts.encvvers == 0 ||
+ UpgradeScriptInfoToTextEncoding(kTextScriptDontCare,
+ kTextLanguageDontCare,
+ kTextRegionDontCare, macfont,
+ &enc) != noErr ||
+ CreateUnicodeToTextInfoByEncoding(enc, &s->uni_to_font) != noErr) {
+ s->uni_to_font = NULL;
+ } else {
+ if (uni_to_font_fallback_upp == NULL)
+ uni_to_font_fallback_upp =
+ NewUnicodeToTextFallbackProc(&uni_to_font_fallback);
+ if (SetFallbackUnicodeToText(s->uni_to_font,
+ uni_to_font_fallback_upp,
+ kUnicodeFallbackCustomOnly | kUnicodeFallbackInterruptSafeMask,
+ NULL) != noErr) {
+ DisposeUnicodeToTextInfo(&s->uni_to_font);
+ s->uni_to_font = NULL;
+ }
+ }
+