+ if(error)error=FT_New_Face(ft_library,(get_canvas()->get_file_path()+ETL_DIRECTORY_SEPARATOR+newfont).c_str(),face_index,&face);
+ if(error)error=FT_New_Face(ft_library,(get_canvas()->get_file_path()+ETL_DIRECTORY_SEPARATOR+newfont+".ttf").c_str(),face_index,&face);
+ }
+
+#ifdef USE_MAC_FT_FUNCS
+ if(error)
+ {
+ FSSpec fs_spec;
+ error=FT_GetFile_From_Mac_Name(newfont.c_str(),&fs_spec,&face_index);
+ if(!error)
+ {
+ char filename[512];
+ fss2path(filename,&fs_spec);
+ //FSSpecToNativePathName(fs_spec,filename,sizeof(filename)-1, 0);
+
+ error=FT_New_Face(ft_library, filename, face_index,&face);
+ //error=FT_New_Face_From_FSSpec(ft_library, &fs_spec, face_index,&face);
+ synfig::info(__FILE__":%d: \"%s\" (%s) -- ft_error=%d",__LINE__,newfont.c_str(),filename,error);
+ }
+ else
+ {
+ synfig::info(__FILE__":%d: \"%s\" -- ft_error=%d",__LINE__,newfont.c_str(),error);
+ // Unable to generate fs_spec
+ }
+
+ }
+#endif
+
+#ifdef WITH_FONTCONFIG
+ if(error)
+ {
+ FcFontSet *fs;
+ FcResult result;
+ if( !FcInit() )
+ {
+ synfig::warning("Layer_Freetype: fontconfig: %s",_("unable to initialize"));
+ error = 1;
+ } else {
+ FcPattern* pat = FcNameParse((FcChar8 *) newfont.c_str());
+ FcConfigSubstitute(0, pat, FcMatchPattern);
+ FcDefaultSubstitute(pat);
+ FcPattern *match;
+ fs = FcFontSetCreate();
+ match = FcFontMatch(0, pat, &result);
+ if (match)
+ FcFontSetAdd(fs, match);
+ if (pat)
+ FcPatternDestroy(pat);
+ if(fs){
+ FcChar8* file;
+ if( FcPatternGetString (fs->fonts[0], FC_FILE, 0, &file) == FcResultMatch )
+ error=FT_New_Face(ft_library,(const char*)file,face_index,&face);
+ FcFontSetDestroy(fs);
+ } else
+ synfig::warning("Layer_Freetype: fontconfig: %s",_("empty font set"));
+ }