提交 e6d27baf 编写于 作者: A Andy Polyakov

Rely on e_os.h to appropriately define str[n]casecmp in non-POSIX

environments.
上级 e7e11507
......@@ -60,12 +60,9 @@
#include <e_os.h>
#include "o_str.h"
#undef strncasecmp
#undef strcasecmp
int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n)
{
#if defined(OPENSSL_SYS_VMS)
#if defined(OPENSSL_IMPLEMENTS_strncasecmp)
while (*str1 && *str2 && n)
{
int res = toupper(*str1) - toupper(*str2);
......@@ -81,18 +78,17 @@ int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n)
if (*str2)
return -1;
return 0;
#elif defined(OPENSSL_SYS_WINDOWS)
return _strnicmp(str1, str2, n);
#else
/* Recursion hazard warning! Whenever strncasecmp is #defined as
* OPENSSL_strncasecmp, OPENSSL_IMPLEMENTS_strncasecmp must be
* defined as well. */
return strncasecmp(str1, str2, n);
#endif
}
int OPENSSL_strcasecmp(const char *str1, const char *str2)
{
#if defined(OPENSSL_SYS_VMS)
#if defined(OPENSSL_IMPLEMENTS_strncasecmp)
return OPENSSL_strncasecmp(str1, str2, (size_t)-1);
#elif defined(OPENSSL_SYS_WINDOWS)
return _stricmp(str1, str2);
#else
return strcasecmp(str1, str2);
#endif
......
......@@ -556,6 +556,7 @@ extern char *sys_errlist[]; extern int sys_nerr;
# include "o_str.h"
# define strcasecmp OPENSSL_strcasecmp
# define strncasecmp OPENSSL_strncasecmp
# define OPENSSL_IMPLEMENTS_strncasecmp
#elif defined(OPENSSL_SYS_OS2) && defined(__EMX__)
# define strcasecmp stricmp
# define strncasecmp strnicmp
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册