Just forward Stricmp() in wx/string.h to wxCRT_StricmpA().

Don't redo the tests already done in wx/wxcrtbase.h in wx/string.h too,
especially as they were not done correctly there (they didn't take into
account the case of MinGW in strict ANSI mode). Just call wxCRT_StricmpA().

This also allows us to get rid of HAVE_STRCASECMP_IN_STRING[S]_H tests in
configure.

Closes #15349.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2013-07-17 17:27:20 +00:00
parent e24c4e1238
commit 4c8acbdfd5
8 changed files with 2 additions and 190 deletions

83
configure vendored
View File

@ -19934,89 +19934,6 @@ $as_echo "$as_me: WARNING: Building DLLs requires OMF mode, enabled" >&2;}
wxUSE_OMF=yes
enable_omf=yes
fi
;;
*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strcasecmp() in string.h" >&5
$as_echo_n "checking for strcasecmp() in string.h... " >&6; }
if ${ac_cv_string_strcasecmp+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <string.h>
int
main ()
{
strcasecmp("foo", "bar");
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_string_strcasecmp=yes
else
ac_cv_string_strcasecmp=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_string_strcasecmp" >&5
$as_echo "$ac_cv_string_strcasecmp" >&6; }
if test x"$ac_cv_string_strcasecmp" = "xyes"; then
$as_echo "#define HAVE_STRCASECMP_IN_STRING_H 1" >>confdefs.h
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strcasecmp() in strings.h" >&5
$as_echo_n "checking for strcasecmp() in strings.h... " >&6; }
if ${ac_cv_strings_strcasecmp+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <strings.h>
int
main ()
{
strcasecmp("foo", "bar");
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_strings_strcasecmp=yes
else
ac_cv_strings_strcasecmp=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_strings_strcasecmp" >&5
$as_echo "$ac_cv_strings_strcasecmp" >&6; }
if test x"$ac_cv_strings_strcasecmp" = "xyes"; then
$as_echo "#define HAVE_STRCASECMP_IN_STRINGS_H 1" >>confdefs.h
else
as_fn_error $? "No case-insensitive string comparison function found." "$LINENO" 5
fi
fi
;;
esac

View File

@ -1519,50 +1519,6 @@ case "${host}" in
fi
dnl (end of OS/2-only piece)
;;
*)
dnl ---------------------------------------------------------------------
dnl look for strcasecmp() in string.h and then strings.h if it's not
dnl there. Don't do this on OS/2, where "stricmp" is the function to be
dnl used.
dnl ---------------------------------------------------------------------
dnl (non-OS/2-only piece)
AC_CACHE_CHECK([for strcasecmp() in string.h], ac_cv_string_strcasecmp, [
AC_TRY_LINK([
#include <string.h>
],
[
strcasecmp("foo", "bar");
],
ac_cv_string_strcasecmp=yes,
ac_cv_string_strcasecmp=no
)
])
if test x"$ac_cv_string_strcasecmp" = "xyes"; then
AC_DEFINE(HAVE_STRCASECMP_IN_STRING_H)
else
AC_CACHE_CHECK([for strcasecmp() in strings.h], ac_cv_strings_strcasecmp, [
AC_TRY_LINK([
#include <strings.h>
],
[
strcasecmp("foo", "bar");
],
ac_cv_strings_strcasecmp=yes,
ac_cv_strings_strcasecmp=no
)
])
if test x"$ac_cv_strings_strcasecmp" = "xyes"; then
AC_DEFINE(HAVE_STRCASECMP_IN_STRINGS_H)
else
AC_MSG_ERROR([No case-insensitive string comparison function found.])
fi
fi
dnl (end of non-OS/2-only piece)
;;
esac
dnl ------------------------------------------------------------------------

View File

@ -31,7 +31,6 @@
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
#define HAVE_THREAD_PRIORITY_FUNCTIONS 1
#define HAVE_SSIZE_T 1
#define HAVE_STRCASECMP_IN_STRING_H 1
#define HAVE_WPRINTF 1
#define SIZEOF_INT 4

View File

@ -117,7 +117,6 @@
#define HAVE_LANGINFO_H 1
#define HAVE_WCSRTOMBS 1
#define HAVE_FPUTWS 1
#define HAVE_STRCASECMP_IN_STRING_H 1
#define HAVE_WPRINTF 1
#define HAVE_VSWPRINTF 1
#define HAVE_VSWSCANF 1

View File

@ -43,10 +43,6 @@
# include <stdlib.h>
#endif
#ifdef HAVE_STRCASECMP_IN_STRINGS_H
#include <strings.h> // for strcasecmp()
#endif // HAVE_STRCASECMP_IN_STRINGS_H
#include "wx/wxcrtbase.h" // for wxChar, wxStrlen() etc.
#include "wx/strvararg.h"
#include "wx/buffer.h" // for wxCharBuffer
@ -145,50 +141,7 @@ inline size_t Strlen(const char *psz)
// portable strcasecmp/_stricmp
wxDEPRECATED( inline int Stricmp(const char *psz1, const char *psz2) );
inline int Stricmp(const char *psz1, const char *psz2)
{
#if defined(__VISUALC__) && defined(__WXWINCE__)
register char c1, c2;
do {
c1 = tolower(*psz1++);
c2 = tolower(*psz2++);
} while ( c1 && (c1 == c2) );
return c1 - c2;
#elif defined(__VISUALC__)
return _stricmp(psz1, psz2);
#elif defined(__SC__)
return _stricmp(psz1, psz2);
#elif defined(__BORLANDC__)
return stricmp(psz1, psz2);
#elif defined(__WATCOMC__)
return stricmp(psz1, psz2);
#elif defined(__DJGPP__)
return stricmp(psz1, psz2);
#elif defined(__EMX__)
return stricmp(psz1, psz2);
#elif defined(__WXPM__)
return stricmp(psz1, psz2);
#elif defined(HAVE_STRCASECMP_IN_STRING_H) || \
defined(HAVE_STRCASECMP_IN_STRINGS_H) || \
defined(__GNUWIN32__)
return strcasecmp(psz1, psz2);
#else
// almost all compilers/libraries provide this function (unfortunately under
// different names), that's why we don't implement our own which will surely
// be more efficient than this code (uncomment to use):
/*
register char c1, c2;
do {
c1 = tolower(*psz1++);
c2 = tolower(*psz2++);
} while ( c1 && (c1 == c2) );
return c1 - c2;
*/
#error "Please define string case-insensitive compare for your OS/compiler"
#endif // OS/compiler
}
{ return wxCRT_StricmpA(psz1, psz2); }
#endif // WXWIN_COMPATIBILITY_2_8

View File

@ -249,7 +249,7 @@ WXDLLIMPEXP_BASE void *calloc( size_t num, size_t size );
defined(__EMX__) || defined(__DJGPP__)
#define wxCRT_StricmpA stricmp
#define wxCRT_StrnicmpA strnicmp
#elif defined(__SYMANTEC__) || defined(__VISUALC__)
#elif defined(__SYMANTEC__) || (defined(__VISUALC__) && !defined(__WXWINCE__))
#define wxCRT_StricmpA _stricmp
#define wxCRT_StrnicmpA _strnicmp
#elif defined(__UNIX__) || (defined(__GNUWIN32__) && !defined(__WX_STRICT_ANSI_GCC__))

View File

@ -1194,12 +1194,6 @@
/* Define this if you have fputws() */
#undef HAVE_FPUTWS
/* Define this if you have strcasecmp() function in <string.h> */
#undef HAVE_STRCASECMP_IN_STRING_H
/* Define this if you have strcasecmp() function in <strings.h> */
#undef HAVE_STRCASECMP_IN_STRINGS_H
/* Define this if you have wprintf() and related functions */
#undef HAVE_WPRINTF

View File

@ -1319,12 +1319,6 @@ typedef pid_t GPid;
/* Define this if you have fputws() */
#define HAVE_FPUTWS 1
/* Define this if you have strcasecmp() function in <string.h> */
#define HAVE_STRCASECMP_IN_STRING_H 1
/* Define this if you have strcasecmp() function in <strings.h> */
#undef HAVE_STRCASECMP_IN_STRINGS_H
/* Define this if you have wprintf() and related functions */
#define HAVE_WPRINTF 1