]> git.wh0rd.org - fontconfig.git/commitdiff
Don't make FcPatternFindFullFname available to fccfg, it's not really safe.
authorPatrick Lam <plam@MIT.EDU>
Tue, 29 Nov 2005 06:09:18 +0000 (06:09 +0000)
committerPatrick Lam <plam@MIT.EDU>
Tue, 29 Nov 2005 06:09:18 +0000 (06:09 +0000)
    Instead go through FcPatternGetString (sorry, perf guys.) Also, use
    globs for dirs as well.

ChangeLog
src/fccfg.c
src/fcint.h
src/fcpat.c

index e41b48416b32b6dc1f7a06526759e275b58d346c..0c577e43e4e9c9dc824b0b3c6f1508a26188e9f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-11-29  Patrick Lam  <plam@mit.edu>
+       * src/fccfg.c (FcConfigBuildFonts):
+       * src/fcint.h:
+       * src/fcpat.c (FcPatternFindFullFname):
+
+       Don't make FcPatternFindFullFname available to fccfg, it's not
+       really safe.  Instead go through FcPatternGetString (sorry,
+       perf guys.)  Also, use globs for dirs as well.
+
 2005-11-28  Patrick Lam  <plam@mit.edu>
        * src/fccfg.c (FcConfigBuildFonts):
 
index f021979629e65874aa57092dc321a8f850a52968..00510e5a66d0de5cba6c6cbd18ffdbc74d234a91 100644 (file)
@@ -308,11 +308,13 @@ FcConfigBuildFonts (FcConfig *config)
 
        for (i = 0; i < cached_fonts->nfont; i++)
        {
-            const char * cfn = (FcChar8 *)FcPatternFindFullFname
-                (cached_fonts->fonts[i]);
+           FcChar8     *cfn, *cfd; 
+           FcPatternGetString (cached_fonts->fonts[i], FC_FILE, 0, &cfn);
+           cfd = (FcChar8 *)FcCacheFindBankDir (cached_fonts->fonts[i]->bank);
 
            if (FcConfigAcceptFont (config, cached_fonts->fonts[i]) &&
-                (cfn && FcConfigAcceptFilename (config, cfn)))
+                (cfn && FcConfigAcceptFilename (config, cfn)) &&
+               (cfd && FcConfigAcceptFilename (config, cfd)))
                FcFontSetAdd (fonts, cached_fonts->fonts[i]);
 
            cached_fonts->fonts[i] = 0; /* prevent free in FcFontSetDestroy */
index 9b833f764a4c57f7d07ee7e453f6e81d2d129a2e..561c5cb5bd6382857f2fd68894125bfcc658e7ab 100644 (file)
@@ -848,9 +848,6 @@ FcPatternAppend (FcPattern *p, FcPattern *s);
 void
 FcPatternAddFullFname (const FcPattern *p, const char *fname);
 
-const char *
-FcPatternFindFullFname (const FcPattern *p);
-
 void
 FcPatternTransferFullFname (const FcPattern *new, const FcPattern *orig);
 
index cba99911d99e7222f2cd61e60f1cfc454981b903..834bb5e2035e9fe5beb4fa24126ce05aeb08c80f 100644 (file)
@@ -37,6 +37,9 @@ static int fcvaluelist_bank_count = 0, fcvaluelist_ptr, fcvaluelist_count;
 static FcPatternEltPtr
 FcPatternEltPtrCreateDynamic (FcPatternElt * e);
 
+static const char *
+FcPatternFindFullFname (const FcPattern *p);
+
 /* If you are trying to duplicate an FcPattern which will be used for
  * rendering, be aware that (internally) you also have to use
  * FcPatternTransferFullFname to transfer the associated filename.  If
@@ -2014,7 +2017,7 @@ FcPatternAddFullFname (const FcPattern *p, const char *fname)
     pb->next->m.fname = fname;
 }
 
-const char *
+static const char *
 FcPatternFindFullFname (const FcPattern *p)
 {
     struct patternDirBucket    *pb;