]> git.wh0rd.org - fontconfig.git/blobdiff - src/fcxml.c
Bug 22037 - No Fonts installed on a default install on Windows Server 2003
[fontconfig.git] / src / fcxml.c
index e829422b318fc3fd35ae767a5dd54fc73a5fe4f8..840bdcad0007989ed1f675583ab234f2967e5fa3 100644 (file)
@@ -57,6 +57,7 @@
 #define STRICT
 #include <windows.h>
 #undef STRICT
+#include <mbstring.h>
 #endif
 
 static void
@@ -2059,7 +2060,13 @@ FcEndElement(void *userData, const XML_Char *name)
                        FcConfigMessage (parse, FcSevereError, "GetModuleFileName failed");
                        break;
                }
-               p = strrchr (data, '\\');
+               /*
+                * Must use the multi-byte aware function to search
+                * for backslash because East Asian double-byte code
+                * pages have characters with backslash as the second
+                * byte.
+                */
+               p = _mbsrchr (data, '\\');
                if (p) *p = '\0';
                strcat (data, "\\fonts");
        }
@@ -2072,7 +2079,7 @@ FcEndElement(void *userData, const XML_Char *name)
                        FcConfigMessage (parse, FcSevereError, "GetModuleFileName failed");
                        break;
                }
-               p = strrchr (data, '\\');
+               p = _mbsrchr (data, '\\');
                if (p) *p = '\0';
                strcat (data, "\\..\\share\\fonts");
        }
@@ -2080,7 +2087,11 @@ FcEndElement(void *userData, const XML_Char *name)
        {
            int rc;
            data = buffer;
+#if _WIN32_WINNT >= 0x0500
            rc = GetSystemWindowsDirectory (buffer, sizeof (buffer) - 20);
+#else
+           rc = GetWindowsDirectory (buffer, sizeof (buffer) - 20);
+#endif
            if (rc == 0 || rc > sizeof (buffer) - 20)
            {
                FcConfigMessage (parse, FcSevereError, "GetSystemWindowsDirectory failed");