Skip to content
Permalink
Browse files
Added internal function __PHYSFS_platformStrnicmp().
  • Loading branch information
icculus committed Nov 9, 2003
1 parent 13d6a13 commit 09ef260209d4a2e3acab6673ce1e443205e554bd
Showing with 98 additions and 1 deletion.
  1. +5 −0 physfs_internal.h
  2. +7 −0 platform/macclassic.c
  3. +24 −0 platform/os2.c
  4. +6 −1 platform/pocketpc.c
  5. +22 −0 platform/posix.c
  6. +6 −0 platform/skeleton.c
  7. +28 −0 platform/win32.c
@@ -1313,6 +1313,11 @@ PHYSFS_uint64 __PHYSFS_platformGetThreadID(void);
*/
int __PHYSFS_platformStricmp(const char *str1, const char *str2);

/*
* This is a pass-through to whatever strnicmp() is called on your platform.
*/
int __PHYSFS_platformStrnicmp(const char *s1, const char *s2, PHYSFS_uint32 l);

/*
* Return non-zero if filename (in platform-dependent notation) exists.
* Symlinks should NOT be followed; at this stage, we do not care what the
@@ -350,6 +350,13 @@ int __PHYSFS_platformStricmp(const char *x, const char *y)
} /* __PHYSFS_platformStricmp */


int __PHYSFS_platformStrnicmp(const char *x, const char *y, PHYSFS_uint32 l)
{
extern int _strnicmp(const char *, const char *, int);
return(_strnicmp(x, y, (int) l)); /* (*shrug*) */
} /* __PHYSFS_platformStricmp */


static OSErr fnameToFSSpecNoAlias(const char *fname, FSSpec *spec)
{
OSErr err;
@@ -340,6 +340,30 @@ int __PHYSFS_platformStricmp(const char *x, const char *y)
} /* __PHYSFS_platformStricmp */


int __PHYSFS_platformStrnicmp(const char *x, const char *y, PHYSFS_uint32 len)
{
int ux, uy;

if (!len)
return(0);

do
{
ux = toupper((int) *x);
uy = toupper((int) *y);
if (ux > uy)
return(1);
else if (ux < uy)
return(-1);
x++;
y++;
len--;
} while ((ux) && (uy) && (len));

return(0);
} /* __PHYSFS_platformStrnicmp */


int __PHYSFS_platformExists(const char *fname)
{
FILESTATUS3 fs;
@@ -211,10 +211,15 @@ PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
int __PHYSFS_platformStricmp(const char *x, const char *y)
{
return(_stricmp(x, y));

} /* __PHYSFS_platformStricmp */


int __PHYSFS_platformStrnicmp(const char *x, const char *y, PHYSFS_uint32 len)
{
return(_strnicmp(x, y, (int) len));
} /* __PHYSFS_platformStrnicmp */


int __PHYSFS_platformExists(const char *fname)
{
int retval=0;
@@ -141,6 +141,28 @@ int __PHYSFS_platformStricmp(const char *x, const char *y)
} /* __PHYSFS_platformStricmp */


int __PHYSFS_platformStrnicmp(const char *x, const char *y, PHYSFS_uint32 len)
{
int ux, uy;

if (!len)
return(0);

do
{
ux = toupper((int) *x);
uy = toupper((int) *y);
if (ux != uy)
return((ux > uy) ? 1 : -1);
x++;
y++;
len--;
} while ((ux) && (uy) && (len));

return(0);
} /* __PHYSFS_platformStrnicmp */


#if (defined __PHYSFS_NO_SYMLINKS__)
#define doStat stat
#else
@@ -68,6 +68,12 @@ int __PHYSFS_platformStricmp(const char *x, const char *y)
} /* __PHYSFS_platformStricmp */


int __PHYSFS_platformStrnicmp(const char *x, const char *y, PHYSFS_uint32 l)
{
BAIL_MACRO(ERR_NOT_IMPLEMENTED, 0);
} /* __PHYSFS_platformStrnicmp */


int __PHYSFS_platformExists(const char *fname)
{
BAIL_MACRO(ERR_NOT_IMPLEMENTED, 0);
@@ -368,6 +368,34 @@ int __PHYSFS_platformStricmp(const char *x, const char *y)
} /* __PHYSFS_platformStricmp */


int __PHYSFS_platformStrnicmp(const char *x, const char *y, PHYSFS_uint32 len)
{
#if (defined _MSC_VER)
return(strnicmp(x, y, (int) len));
#else
int ux, uy;

if (!len)
return(0);

do
{
ux = toupper((int) *x);
uy = toupper((int) *y);
if (ux > uy)
return(1);
else if (ux < uy)
return(-1);
x++;
y++;
len--;
} while ((ux) && (uy) && (len));

return(0);
#endif
} /* __PHYSFS_platformStricmp */


int __PHYSFS_platformExists(const char *fname)
{
BAIL_IF_MACRO(GetFileAttributes(fname) == INVALID_FILE_ATTRIBUTES,

0 comments on commit 09ef260

Please sign in to comment.