]> code.ossystems Code Review - openembedded-core.git/blob
f2fd5d473156af620035b5437118ad903bedc3ac
[openembedded-core.git] /
1 From 46ec6a52d4cc447cc3ff4a13b2067ecb76c9db2e Mon Sep 17 00:00:00 2001
2 From: Behdad Esfahbod <behdad@behdad.org>
3 Date: Fri, 26 Jun 2015 17:02:13 -0700
4 Subject: [PATCH] Revert changes made to FcConfigAppFontAddDir() recently
5
6 In 32ac7c75e8db0135ef37cf86f92d8b9be000c8bb the behavior of
7 FcConfigAppFontAddFile/Dir() were changed to return false
8 if not fonts were found.  While this is welldefined and useful
9 for AddFile(), it's quite problematic for AddDir().  For example,
10 if the directory is empty, is that a failure or success?  Worse,
11 the false value from AddDir() was being propagated all the way
12 to FcInit() returning false now.  This only happened upon memory
13 allocation failure before, and some clients assert that FcInit()
14 is successful.
15
16 With this change, AddDir() is reverted back to what it was.
17 AddFont() change (which was actually in fcdir.c) from the original
18 commit is left in.
19
20 Upstream-Status: backport
21
22 Signed-off-by: Li Zhou <li.zhou@windriver.com>
23 ---
24  doc/fcconfig.fncs |    2 +-
25  src/fccfg.c       |   29 +++++++++++------------------
26  src/fcint.h       |    3 ---
27  src/fcstr.c       |    8 --------
28  4 files changed, 12 insertions(+), 30 deletions(-)
29
30 Index: fontconfig-2.11.94/doc/fcconfig.fncs
31 ===================================================================
32 --- fontconfig-2.11.94.orig/doc/fcconfig.fncs
33 +++ fontconfig-2.11.94/doc/fcconfig.fncs
34 @@ -232,7 +232,7 @@ the current configuration is used.
35  @DESC@
36  Scans the specified directory for fonts, adding each one found to the
37  application-specific set of fonts. Returns FcFalse
38 -if the fonts cannot be added (due to allocation failure or no fonts found).
39 +if the fonts cannot be added (due to allocation failure).
40  Otherwise returns FcTrue. If <parameter>config</parameter> is NULL,
41  the current configuration is used.
42  @@
43 Index: fontconfig-2.11.94/src/fccfg.c
44 ===================================================================
45 --- fontconfig-2.11.94.orig/src/fccfg.c
46 +++ fontconfig-2.11.94/src/fccfg.c
47 @@ -368,7 +368,6 @@ FcConfigAddDirList (FcConfig *config, Fc
48      FcStrList      *dirlist;
49      FcChar8        *dir;
50      FcCache        *cache;
51 -    FcBool          ret = FcFalse;
52  
53      dirlist = FcStrListCreate (dirSet);
54      if (!dirlist)
55 @@ -383,10 +382,9 @@ FcConfigAddDirList (FcConfig *config, Fc
56             continue;
57         FcConfigAddCache (config, cache, set, dirSet);
58         FcDirCacheUnload (cache);
59 -       ret = FcTrue;
60      }
61      FcStrListDone (dirlist);
62 -    return ret;
63 +    return FcTrue;
64  }
65  
66  /*
67 @@ -2199,7 +2197,6 @@ FcConfigAppFontAddFile (FcConfig    *con
68      FcStrSet   *subdirs;
69      FcStrList  *sublist;
70      FcChar8    *subdir;
71 -    FcBool      ret = FcFalse;
72  
73      if (!config)
74      {
75 @@ -2229,19 +2226,16 @@ FcConfigAppFontAddFile (FcConfig    *con
76         FcStrSetDestroy (subdirs);
77         return FcFalse;
78      }
79 -    if (subdirs->num == 0)
80 -       ret = FcTrue;
81 -    else if ((sublist = FcStrListCreate (subdirs)))
82 +    if ((sublist = FcStrListCreate (subdirs)))
83      {
84         while ((subdir = FcStrListNext (sublist)))
85         {
86 -           if (FcConfigAppFontAddDir (config, subdir))
87 -               ret = FcTrue;
88 +           FcConfigAppFontAddDir (config, subdir);
89         }
90         FcStrListDone (sublist);
91      }
92      FcStrSetDestroy (subdirs);
93 -    return ret;
94 +    return FcTrue;
95  }
96  
97  FcBool
98 @@ -2250,7 +2244,6 @@ FcConfigAppFontAddDir (FcConfig       *con
99  {
100      FcFontSet  *set;
101      FcStrSet   *dirs;
102 -    FcBool      ret = FcTrue;
103  
104      if (!config)
105      {
106 @@ -2269,8 +2262,8 @@ FcConfigAppFontAddDir (FcConfig       *con
107         set = FcFontSetCreate ();
108         if (!set)
109         {
110 -           ret = FcFalse;
111 -           goto bail;
112 +           FcStrSetDestroy (dirs);
113 +           return FcFalse;
114         }
115         FcConfigSetFonts (config, set, FcSetApplication);
116      }
117 @@ -2278,10 +2271,12 @@ FcConfigAppFontAddDir (FcConfig     *con
118      FcStrSetAddFilename (dirs, dir);
119  
120      if (!FcConfigAddDirList (config, FcSetApplication, dirs))
121 -       ret = FcFalse;
122 -bail:
123 +    {
124 +       FcStrSetDestroy (dirs);
125 +       return FcFalse;
126 +    }
127      FcStrSetDestroy (dirs);
128 -    return ret;
129 +    return FcTrue;
130  }
131  
132  void