[Fontconfig] fontconfig: Branch 'master'

Akira TAGOH tagoh at kemper.freedesktop.org
Wed Jun 13 04:02:30 PDT 2012


 src/fcatomic.c |    7 ++++---
 src/fccfg.c    |   18 +++++++++---------
 src/fcint.h    |    4 +++-
 src/fcstat.c   |   16 ++++++++++------
 src/fcstr.c    |    6 +++---
 src/fcxml.c    |   24 ++++++++++++------------
 6 files changed, 41 insertions(+), 34 deletions(-)

New commits:
commit cd280f6532663981fb5fcc2d38f99973033568db
Author: Akira TAGOH <akira at tagoh.org>
Date:   Wed Jun 13 20:01:30 2012 +0900

    Fix a build fail on MINGW

diff --git a/src/fcatomic.c b/src/fcatomic.c
index 4f6ab01..bc7b07b 100644
--- a/src/fcatomic.c
+++ b/src/fcatomic.c
@@ -99,12 +99,13 @@ FcAtomicCreate (const FcChar8   *file)
 FcBool
 FcAtomicLock (FcAtomic *atomic)
 {
-    int		fd = -1;
-    FILE	*f = 0;
     int		ret;
     struct stat	lck_stat;
 
 #ifdef HAVE_LINK
+    int		fd = -1;
+    FILE	*f = 0;
+
     strcpy ((char *) atomic->tmp, (char *) atomic->file);
     strcat ((char *) atomic->tmp, TMP_NAME);
     fd = mkstemp ((char *) atomic->tmp);
@@ -185,7 +186,7 @@ FcBool
 FcAtomicReplaceOrig (FcAtomic *atomic)
 {
 #ifdef _WIN32
-    unlink (atomic->file);
+    unlink ((const char *) atomic->file);
 #endif
     if (rename ((char *) atomic->new, (char *) atomic->file) < 0)
 	return FcFalse;
diff --git a/src/fccfg.c b/src/fccfg.c
index 3f1fa73..d3752e5 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -1672,7 +1672,7 @@ DllMain (HINSTANCE hinstDLL,
 
   switch (fdwReason) {
   case DLL_PROCESS_ATTACH:
-      if (!GetModuleFileName ((HMODULE) hinstDLL, fontconfig_path,
+      if (!GetModuleFileName ((HMODULE) hinstDLL, (LPCH) fontconfig_path,
 			      sizeof (fontconfig_path)))
 	  break;
 
@@ -1681,15 +1681,15 @@ DllMain (HINSTANCE hinstDLL,
        * "etc/fonts" in there as FONTCONFIG_PATH. Otherwise use the
        * folder where the DLL is as FONTCONFIG_PATH.
        */
-      p = strrchr (fontconfig_path, '\\');
+      p = (FcChar8 *) strrchr ((const char *) fontconfig_path, '\\');
       if (p)
       {
 	  *p = '\0';
-	  p = strrchr (fontconfig_path, '\\');
-	  if (p && (FcStrCmpIgnoreCase (p + 1, "bin") == 0 ||
-		    FcStrCmpIgnoreCase (p + 1, "lib") == 0))
+	  p = (FcChar8 *) strrchr ((const char *) fontconfig_path, '\\');
+	  if (p && (FcStrCmpIgnoreCase (p + 1, (const FcChar8 *) "bin") == 0 ||
+		    FcStrCmpIgnoreCase (p + 1, (const FcChar8 *) "lib") == 0))
 	      *p = '\0';
-	  strcat (fontconfig_path, "\\etc\\fonts");
+	  strcat ((char *) fontconfig_path, "\\etc\\fonts");
       }
       else
           fontconfig_path[0] = '\0';
@@ -1804,11 +1804,11 @@ FcConfigGetPath (void)
 	if (fontconfig_path[0] == '\0')
 	{
 		char *p;
-		if(!GetModuleFileName(NULL, fontconfig_path, sizeof(fontconfig_path)))
+		if(!GetModuleFileName(NULL, (LPCH) fontconfig_path, sizeof(fontconfig_path)))
 			goto bail1;
-		p = strrchr (fontconfig_path, '\\');
+		p = strrchr ((const char *) fontconfig_path, '\\');
 		if (p) *p = '\0';
-		strcat (fontconfig_path, "\\fonts");
+		strcat ((char *) fontconfig_path, "\\fonts");
 	}
 #endif
     dir = (FcChar8 *) FONTCONFIG_PATH;
diff --git a/src/fcint.h b/src/fcint.h
index 60bc0cc..ca6b4f2 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -55,7 +55,9 @@
 #endif
 
 #ifdef _WIN32
-#  define _WIN32_WINNT 0x0500
+#  ifndef _WIN32_WINNT
+#    define _WIN32_WINNT 0x0500
+#  endif
 #  define WIN32_LEAN_AND_MEAN
 #  define STRICT
 #  include <windows.h>
diff --git a/src/fcstat.c b/src/fcstat.c
index d8ede59..d8663d0 100644
--- a/src/fcstat.c
+++ b/src/fcstat.c
@@ -82,7 +82,7 @@ FcStat (const FcChar8 *file, struct stat *statb)
     char *basename;
     DWORD rc;
 
-    if (!GetFileAttributesEx (file, GetFileExInfoStandard, &wfad))
+    if (!GetFileAttributesEx ((LPCSTR) file, GetFileExInfoStandard, &wfad))
 	return -1;
 
     statb->st_dev = 0;
@@ -91,12 +91,12 @@ FcStat (const FcChar8 *file, struct stat *statb)
      * Call GetLongPathName() to get the spelling of the path name as it
      * is on disk.
      */
-    rc = GetFullPathName (file, sizeof (full_path_name), full_path_name, &basename);
+    rc = GetFullPathName ((LPCSTR) file, sizeof (full_path_name), full_path_name, &basename);
     if (rc == 0 || rc > sizeof (full_path_name))
 	return -1;
 
     rc = GetLongPathName (full_path_name, full_path_name, sizeof (full_path_name));
-    statb->st_ino = FcStringHash (full_path_name);
+    statb->st_ino = FcStringHash ((const FcChar8 *) full_path_name);
 
     statb->st_mode = _S_IREAD | _S_IWRITE;
     statb->st_mode |= (statb->st_mode >> 3) | (statb->st_mode >> 6);
@@ -129,8 +129,6 @@ FcStat (const FcChar8 *file, struct stat *statb)
   return stat ((char *) file, statb);
 }
 
-#endif
-
 /* Adler-32 checksum implementation */
 struct Adler32 {
     int a;
@@ -238,6 +236,7 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum)
 
     return 0;
 }
+#endif /* _WIN32 */
 
 int
 FcStatChecksum (const FcChar8 *file, struct stat *statb)
@@ -245,11 +244,16 @@ FcStatChecksum (const FcChar8 *file, struct stat *statb)
     if (FcStat (file, statb) == -1)
         return -1;
 
+#ifndef _WIN32
+    /* We have a workaround of the broken stat() in FcStat() for Win32.
+     * No need to do something further more.
+     */
     if (FcIsFsMtimeBroken (file))
     {
         if (FcDirChecksum (file, &statb->st_mtime) == -1)
             return -1;
     }
+#endif
 
     return 0;
 }
@@ -258,7 +262,7 @@ static int
 FcFStatFs (int fd, FcStatFS *statb)
 {
     const char *p = NULL;
-    int ret;
+    int ret = -1;
     FcBool flag = FcFalse;
 
     memset (statb, 0, sizeof (FcStatFS));
diff --git a/src/fcstr.c b/src/fcstr.c
index c446bcd..f505ea6 100644
--- a/src/fcstr.c
+++ b/src/fcstr.c
@@ -1052,13 +1052,13 @@ FcStrCanonFilename (const FcChar8 *s)
 {
 #ifdef _WIN32
     FcChar8 full[FC_MAX_FILE_LEN + 2];
-    int size = GetFullPathName (s, sizeof (full) -1,
-				full, NULL);
+    int size = GetFullPathName ((LPCSTR) s, sizeof (full) -1,
+				(LPSTR) full, NULL);
 
     if (size == 0)
 	perror ("GetFullPathName");
 
-    FcConvertDosPath (full);
+    FcConvertDosPath ((char *) full);
     return FcStrCanonAbsoluteFilename (full);
 #else
     if (s[0] == '/')
diff --git a/src/fcxml.c b/src/fcxml.c
index d70f70b..b8e4469 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -1882,11 +1882,11 @@ FcParseDir (FcConfigParse *parse)
 	data = prefix;
     }
 #ifdef _WIN32
-    if (strcmp (data, "CUSTOMFONTDIR") == 0)
+    if (strcmp ((const char *) data, "CUSTOMFONTDIR") == 0)
     {
 	char *p;
 	data = buffer;
-	if (!GetModuleFileName (NULL, buffer, sizeof (buffer) - 20))
+	if (!GetModuleFileName (NULL, (LPCH) buffer, sizeof (buffer) - 20))
 	{
 	    FcConfigMessage (parse, FcSevereError, "GetModuleFileName failed");
 	    goto bail;
@@ -1901,11 +1901,11 @@ FcParseDir (FcConfigParse *parse)
 	if (p) *p = '\0';
 	strcat (data, "\\fonts");
     }
-    else if (strcmp (data, "APPSHAREFONTDIR") == 0)
+    else if (strcmp ((const char *) data, "APPSHAREFONTDIR") == 0)
     {
 	char *p;
 	data = buffer;
-	if (!GetModuleFileName (NULL, buffer, sizeof (buffer) - 20))
+	if (!GetModuleFileName (NULL, (LPCH) buffer, sizeof (buffer) - 20))
 	{
 	    FcConfigMessage (parse, FcSevereError, "GetModuleFileName failed");
 	    goto bail;
@@ -1914,17 +1914,17 @@ FcParseDir (FcConfigParse *parse)
 	if (p) *p = '\0';
 	strcat (data, "\\..\\share\\fonts");
     }
-    else if (strcmp (data, "WINDOWSFONTDIR") == 0)
+    else if (strcmp ((const char *) data, "WINDOWSFONTDIR") == 0)
     {
 	int rc;
 	data = buffer;
-	rc = pGetSystemWindowsDirectory (buffer, sizeof (buffer) - 20);
+	rc = pGetSystemWindowsDirectory ((LPSTR) buffer, sizeof (buffer) - 20);
 	if (rc == 0 || rc > sizeof (buffer) - 20)
 	{
 	    FcConfigMessage (parse, FcSevereError, "GetSystemWindowsDirectory failed");
 	    goto bail;
 	}
-	if (data [strlen (data) - 1] != '\\')
+	if (data [strlen ((const char *) data) - 1] != '\\')
 	    strcat (data, "\\");
 	strcat (data, "fonts");
     }
@@ -1978,7 +1978,7 @@ FcParseCacheDir (FcConfigParse *parse)
 	data = prefix;
     }
 #ifdef _WIN32
-    if (strcmp (data, "WINDOWSTEMPDIR_FONTCONFIG_CACHE") == 0)
+    if (strcmp ((const char *) data, "WINDOWSTEMPDIR_FONTCONFIG_CACHE") == 0)
     {
 	int rc;
 	FcStrFree (data);
@@ -1989,17 +1989,17 @@ FcParseCacheDir (FcConfigParse *parse)
 	    goto bail;
 	}
 	FcMemAlloc (FC_MEM_STRING, 1000);
-	rc = GetTempPath (800, data);
+	rc = GetTempPath (800, (LPSTR) data);
 	if (rc == 0 || rc > 800)
 	{
 	    FcConfigMessage (parse, FcSevereError, "GetTempPath failed");
 	    goto bail;
 	}
-	if (data [strlen (data) - 1] != '\\')
+	if (data [strlen ((const char *) data) - 1] != '\\')
 	    strcat (data, "\\");
 	strcat (data, "fontconfig\\cache");
     }
-    else if (strcmp (data, "LOCAL_APPDATA_FONTCONFIG_CACHE") == 0)
+    else if (strcmp ((const char *) data, "LOCAL_APPDATA_FONTCONFIG_CACHE") == 0)
     {
 	char szFPath[MAX_PATH + 1];
 	size_t len;
@@ -2019,7 +2019,7 @@ FcParseCacheDir (FcConfigParse *parse)
 	    goto bail;
 	}
 	FcMemAlloc (FC_MEM_STRING, len);
-	strncpy(data, szFPath, len);
+	strncpy((char *) data, szFPath, len);
     }
 #endif
     if (strlen ((char *) data) == 0)


More information about the Fontconfig mailing list