|
@@ -403,6 +403,28 @@ UTIL_OpenRequiredFile(
|
|
|
|
|
|
fp = fopen(va("%s%s", PAL_PREFIX, lpszFileName), "rb");
|
|
fp = fopen(va("%s%s", PAL_PREFIX, lpszFileName), "rb");
|
|
|
|
|
|
|
|
+#ifndef _WIN32
|
|
|
|
+ if (fp == NULL)
|
|
|
|
+ {
|
|
|
|
+ //
|
|
|
|
+ // try converting the filename to upper-case.
|
|
|
|
+ //
|
|
|
|
+ char *pBuf = strdup(lpszFileName);
|
|
|
|
+ char *p = pBuf;
|
|
|
|
+ while (*p)
|
|
|
|
+ {
|
|
|
|
+ if (*p >= 'a' && *p <= 'z')
|
|
|
|
+ {
|
|
|
|
+ *p -= 'a' - 'A';
|
|
|
|
+ }
|
|
|
|
+ p++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ fp = fopen(va("%s%s", PAL_PREFIX, pBuf), "rb");
|
|
|
|
+ free(pBuf);
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
|
|
+
|
|
if (fp == NULL)
|
|
if (fp == NULL)
|
|
{
|
|
{
|
|
TerminateOnError("File not found: %s!\n", lpszFileName);
|
|
TerminateOnError("File not found: %s!\n", lpszFileName);
|
|
@@ -411,6 +433,54 @@ UTIL_OpenRequiredFile(
|
|
return fp;
|
|
return fp;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+FILE *
|
|
|
|
+UTIL_OpenFile(
|
|
|
|
+ LPCSTR lpszFileName
|
|
|
|
+)
|
|
|
|
+/*++
|
|
|
|
+ Purpose:
|
|
|
|
+
|
|
|
|
+ Open a file. If fails, return NULL.
|
|
|
|
+
|
|
|
|
+ Parameters:
|
|
|
|
+
|
|
|
|
+ [IN] lpszFileName - file name to open.
|
|
|
|
+
|
|
|
|
+ Return value:
|
|
|
|
+
|
|
|
|
+ Pointer to the file.
|
|
|
|
+
|
|
|
|
+--*/
|
|
|
|
+{
|
|
|
|
+ FILE *fp;
|
|
|
|
+
|
|
|
|
+ fp = fopen(va("%s%s", PAL_PREFIX, lpszFileName), "rb");
|
|
|
|
+
|
|
|
|
+#ifndef _WIN32
|
|
|
|
+ if (fp == NULL)
|
|
|
|
+ {
|
|
|
|
+ //
|
|
|
|
+ // try converting the filename to upper-case.
|
|
|
|
+ //
|
|
|
|
+ char *pBuf = strdup(lpszFileName);
|
|
|
|
+ char *p = pBuf;
|
|
|
|
+ while (*p)
|
|
|
|
+ {
|
|
|
|
+ if (*p >= 'a' && *p <= 'z')
|
|
|
|
+ {
|
|
|
|
+ *p -= 'a' - 'A';
|
|
|
|
+ }
|
|
|
|
+ p++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ fp = fopen(va("%s%s", PAL_PREFIX, pBuf), "rb");
|
|
|
|
+ free(pBuf);
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+ return fp;
|
|
|
|
+}
|
|
|
|
+
|
|
VOID
|
|
VOID
|
|
UTIL_CloseFile(
|
|
UTIL_CloseFile(
|
|
FILE *fp
|
|
FILE *fp
|