mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
82 lines
1.9 KiB
C++
82 lines
1.9 KiB
C++
#include "ace/OS_NS_strings.h"
|
|
|
|
|
|
|
|
#if !defined (ACE_HAS_INLINED_OSCALLS)
|
|
# include "ace/OS_NS_strings.inl"
|
|
#endif /* ACE_HAS_INLINED_OSCALLS */
|
|
|
|
#if defined (ACE_LACKS_STRCASECMP)
|
|
# include "ace/OS_NS_ctype.h"
|
|
#endif /* ACE_LACKS_STRCASECMP */
|
|
|
|
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
|
|
|
|
#if defined (ACE_LACKS_STRCASECMP)
|
|
int
|
|
ACE_OS::strcasecmp_emulation (const char *s, const char *t)
|
|
{
|
|
const char *scan1 = s;
|
|
const char *scan2 = t;
|
|
|
|
while (*scan1 != 0
|
|
&& ACE_OS::ace_tolower (*scan1)
|
|
== ACE_OS::ace_tolower (*scan2))
|
|
{
|
|
++scan1;
|
|
++scan2;
|
|
}
|
|
|
|
// The following case analysis is necessary so that characters which
|
|
// look negative collate low against normal characters but high
|
|
// against the end-of-string NUL.
|
|
|
|
if (*scan1 == '\0' && *scan2 == '\0')
|
|
return 0;
|
|
else if (*scan1 == '\0')
|
|
return -1;
|
|
else if (*scan2 == '\0')
|
|
return 1;
|
|
else
|
|
return ACE_OS::ace_tolower (*scan1) - ACE_OS::ace_tolower (*scan2);
|
|
}
|
|
#endif /* ACE_LACKS_STRCASECMP */
|
|
|
|
#if defined (ACE_LACKS_STRCASECMP)
|
|
int
|
|
ACE_OS::strncasecmp_emulation (const char *s,
|
|
const char *t,
|
|
size_t len)
|
|
{
|
|
const char *scan1 = s;
|
|
const char *scan2 = t;
|
|
size_t count = 0;
|
|
|
|
while (count++ < len
|
|
&& *scan1 != 0
|
|
&& ACE_OS::ace_tolower (*scan1)
|
|
== ACE_OS::ace_tolower (*scan2))
|
|
{
|
|
++scan1;
|
|
++scan2;
|
|
}
|
|
|
|
if (count > len)
|
|
return 0;
|
|
|
|
// The following case analysis is necessary so that characters which
|
|
// look negative collate low against normal characters but high
|
|
// against the end-of-string NUL.
|
|
|
|
if (*scan1 == '\0' && *scan2 == '\0')
|
|
return 0;
|
|
else if (*scan1 == '\0')
|
|
return -1;
|
|
else if (*scan2 == '\0')
|
|
return 1;
|
|
else
|
|
return ACE_OS::ace_tolower (*scan1) - ACE_OS::ace_tolower (*scan2);
|
|
}
|
|
#endif /* ACE_LACKS_STRCASECMP */
|
|
|
|
ACE_END_VERSIONED_NAMESPACE_DECL
|