summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHerbert Duerr [hdu] <duerr@sun.com>2010-06-30 13:26:06 +0200
committerHerbert Duerr [hdu] <duerr@sun.com>2010-06-30 13:26:06 +0200
commit9b0e62544b3ef60377c04943f211f4543f2c3a7c (patch)
tree49badf1f0ebffbf06941160fce3b018bbeaaf752
parent9b8213e2fadbc3c59f7e445098ae38cf266119cc (diff)
#i112365# ignore missing fc_local.conf files but complain about parse error in them
-rw-r--r--vcl/unx/source/fontmanager/fontconfig.cxx21
1 files changed, 12 insertions, 9 deletions
diff --git a/vcl/unx/source/fontmanager/fontconfig.cxx b/vcl/unx/source/fontmanager/fontconfig.cxx
index 816c8fb0b4c4..69c5330977bd 100644
--- a/vcl/unx/source/fontmanager/fontconfig.cxx
+++ b/vcl/unx/source/fontmanager/fontconfig.cxx
@@ -854,19 +854,22 @@ bool PrintFontManager::addFontconfigDir( const rtl::OString& rDirName )
fprintf( stderr, "FcConfigAppFontAddDir( \"%s\") => %d\n", pDirName, bRet );
#endif
- if( bDirOk )
+ if( !bDirOk )
+ return false;
+
+ // load dir-specific fc-config file too if available
+ const rtl::OString aConfFileName = rDirName + "/fc_local.conf";
+ FILE* pCfgFile = fopen( aConfFileName.getStr(), "rb" );
+ if( pCfgFile )
{
- const rtl::OString aConfFileName = rDirName + "/fc_local.conf";
+ fclose( pCfgFile);
bool bCfgOk = rWrapper.FcConfigParseAndLoad( rWrapper.FcConfigGetCurrent(),
- (FcChar8*)aConfFileName.getStr(), FcTrue );
- (void)bCfgOk; // silence compiler warning
-
-#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "FcConfigParseAndLoad( \"%s\") => %d\n", aConfFileName.getStr(), bCfgOk );
-#endif
+ (FcChar8*)aConfFileName.getStr(), FcTrue );
+ if( !bCfgOk )
+ fprintf( stderr, "FcConfigParseAndLoad( \"%s\") => %d\n", aConfFileName.getStr(), bCfgOk );
}
- return bDirOk;
+ return true;
}
static void addtopattern(FontCfgWrapper& rWrapper, FcPattern *pPattern,