fontconfig.patch
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:5k
源码类别:

midi

开发平台:

Unix_Linux

  1. --- fontconfig/src/Makefile.am Mon Sep 18 07:06:41 2006
  2. +++ fontconfig/src/Makefile.am Sat Aug 18 20:48:45 2007
  3. ***************
  4. *** 31,35 ****
  5.   
  6.   install-libtool-import-lib: 
  7. -  $(INSTALL) .libs/libfontconfig.dll.a $(DESTDIR)$(libdir)
  8.    $(INSTALL) fontconfig.def $(DESTDIR)$(libdir)/fontconfig.def
  9.   
  10. --- 31,34 ----
  11. --- fontconfig/src/Makefile.in Sun Dec  3 10:27:33 2006
  12. +++ fontconfig/src/Makefile.in Sat Aug 18 20:53:40 2007
  13. ***************
  14. *** 614,618 ****
  15.   
  16.   @OS_WIN32_TRUE@install-libtool-import-lib: 
  17. - @OS_WIN32_TRUE@ $(INSTALL) .libs/libfontconfig.dll.a $(DESTDIR)$(libdir)
  18.   @OS_WIN32_TRUE@ $(INSTALL) fontconfig.def $(DESTDIR)$(libdir)/fontconfig.def
  19.   
  20. --- 614,617 ----
  21. --- fontconfig/src/fcinit.c Sun Dec  3 07:10:30 2006
  22. +++ fontconfig/src/fcinit.c Sun Aug 19 00:52:07 2007
  23. ***************
  24. *** 26,32 ****
  25. --- 26,94 ----
  26.   #include <stdlib.h>
  27.   
  28. + #ifdef _WIN32
  29. + #define STRICT
  30. + #include <windows.h>
  31. + #undef STRICT
  32. + static char *IsWindowsDir(char *p_dir_in, char **p_dir_out)
  33. + {
  34. +     *p_dir_out = NULL;
  35. +     if( ! strcmp( p_dir_in, "WINDOWSFONTDIR" ))
  36. +     {
  37. +         int rc;
  38. +         *p_dir_out = malloc( 1000 );
  39. +         if( !*p_dir_out )
  40. +         {
  41. +             fprintf( stderr, "Fontconfig error: out of memory" );
  42. +             return p_dir_in;
  43. +         }
  44. +         rc = GetWindowsDirectory( *p_dir_out, 800 );
  45. +         if( rc == 0 || rc > 800 )
  46. +         {
  47. +             fprintf( stderr, "Fontconfig error: GetWindowsDirectory failed" );
  48. +             free( *p_dir_out );
  49. +             *p_dir_out = NULL;
  50. +      
  51. +             return p_dir_in;
  52. +         }
  53. +         if( (*p_dir_out)[ rc - 1 ] != '\' )
  54. +             strcpy( (*p_dir_out)+rc, "\" );
  55. +         strcat( *p_dir_out, "fonts" );
  56. +  
  57. +         return *p_dir_out;
  58. +     }
  59. +     else if( ! strcmp( p_dir_in, "WINDOWSTEMPDIR" ))
  60. +     {
  61. +         int rc;
  62. +         *p_dir_out = malloc( 1000 );
  63. +         if( !*p_dir_out )
  64. +         {
  65. +             fprintf( stderr, "Fontconfig error: out of memory" );
  66. +             return p_dir_in;
  67. +         }
  68. +         rc = GetTempPath( 800, *p_dir_out );
  69. +         if( rc == 0 || rc > 800 )
  70. +         {
  71. +             fprintf( stderr, "Fontconfig error: GetTempPath failed" );
  72. +             free( *p_dir_out );
  73. +             *p_dir_out = NULL;
  74. +      
  75. +             return p_dir_in;
  76. +         }
  77. +         return *p_dir_out;
  78. +     }
  79. +     return p_dir_in;
  80. + }
  81. + #else
  82. +   #define IsWindowsDir(A, B)   A
  83. + #endif
  84.   static FcConfig *
  85.   FcInitFallbackConfig (void)
  86.   {
  87. +     char        *p_dir_out = NULL;
  88.       FcConfig *config;
  89.   
  90. ***************
  91. *** 34,40 ****
  92.       if (!config)
  93.    goto bail0;
  94. !     if (!FcConfigAddDir (config, (FcChar8 *) FC_DEFAULT_FONTS))
  95.    goto bail1;
  96. !     if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR))
  97.    goto bail1;
  98.       return config;
  99. --- 96,106 ----
  100.       if (!config)
  101.    goto bail0;
  102. !     if (!FcConfigAddDir (config, (FcChar8 *) IsWindowsDir(FC_DEFAULT_FONTS, &p_dir_out)))
  103.    goto bail1;
  104. !     if (p_dir_out)
  105. !         free(p_dir_out);
  106. !     p_dir_out = NULL;
  107. !     if (!FcConfigAddCacheDir (config, (FcChar8 *) IsWindowsDir(FC_CACHEDIR, &p_dir_out)))
  108.    goto bail1;
  109.       return config;
  110. ***************
  111. *** 43,46 ****
  112. --- 109,114 ----
  113.       FcConfigDestroy (config);
  114.   bail0:
  115. +     if (p_dir_out)
  116. +         free(p_dir_out);
  117.       return 0;
  118.   }
  119. ***************
  120. *** 73,84 ****
  121.       if (config->cacheDirs && config->cacheDirs->num == 0)
  122.       {
  123.    fprintf (stderr,
  124.     "Fontconfig warning: no <cachedir> elements found. Check configuration.n");
  125.    fprintf (stderr,
  126.     "Fontconfig warning: adding <cachedir>%s</cachedir>n",
  127. !   FC_CACHEDIR);
  128.    fprintf (stderr,
  129.     "Fontconfig warning: adding <cachedir>~/.fontconfig</cachedir>n");
  130. !  if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR) ||
  131.        !FcConfigAddCacheDir (config, (FcChar8 *) "~/.fontconfig"))
  132.    {
  133. --- 141,158 ----
  134.       if (config->cacheDirs && config->cacheDirs->num == 0)
  135.       {
  136. +         char *p_dir_out = NULL;
  137.    fprintf (stderr,
  138.     "Fontconfig warning: no <cachedir> elements found. Check configuration.n");
  139.    fprintf (stderr,
  140.     "Fontconfig warning: adding <cachedir>%s</cachedir>n",
  141. !   IsWindowsDir(FC_CACHEDIR, &p_dir_out));
  142.    fprintf (stderr,
  143.     "Fontconfig warning: adding <cachedir>~/.fontconfig</cachedir>n");
  144. !         if (p_dir_out)
  145. !             free(p_dir_out);
  146. !         p_dir_out = NULL;
  147. !         if (!FcConfigAddCacheDir (config, (FcChar8 *) IsWindowsDir(FC_CACHEDIR, &p_dir_out)) ||
  148.        !FcConfigAddCacheDir (config, (FcChar8 *) "~/.fontconfig"))
  149.    {
  150. ***************
  151. *** 86,91 ****
  152. --- 160,172 ----
  153.         "Fontconfig error: out of memory");
  154.        FcConfigDestroy (config);
  155. +             if (p_dir_out)
  156. +                 free(p_dir_out);
  157. +             p_dir_out = NULL;
  158.        return FcInitFallbackConfig ();
  159.    }
  160. +         if (p_dir_out)
  161. +             free(p_dir_out);
  162.       }
  163.