diff --git a/src/common/arrstr.cpp b/src/common/arrstr.cpp index 6c830ef631..c2fdb7fda9 100644 --- a/src/common/arrstr.cpp +++ b/src/common/arrstr.cpp @@ -25,23 +25,6 @@ #include #include "wx/afterstd.h" -#if defined( __WINDOWS__ ) - #include - - // In some distributions of MinGW32, this function is exported in the library, - // but not declared in shlwapi.h. Therefore we declare it here. - #if defined( __MINGW32_TOOLCHAIN__ ) - extern "C" __declspec(dllimport) int WINAPI StrCmpLogicalW(LPCWSTR psz1, LPCWSTR psz2); - #endif - - // For MSVC we can also link the library containing StrCmpLogicalW() - // directly from here, for the other compilers this needs to be done at - // makefiles level. - #ifdef __VISUALC__ - #pragma comment(lib, "shlwapi") - #endif -#endif - // ============================================================================ // ArrayString // ============================================================================ @@ -912,15 +895,13 @@ int wxCMPFUNC_CONV wxCmpNaturalGeneric(const wxString& s1, const wxString& s2) // ---------------------------------------------------------------------------- // wxCmpNatural // ---------------------------------------------------------------------------- -// -// If a native version of Natural sort is available, then use that, otherwise -// use the generic version. + +// If native natural sort function isn't available, use the generic version. +#if !defined(__WINDOWS__) + int wxCMPFUNC_CONV wxCmpNatural(const wxString& s1, const wxString& s2) { -#if defined( __WINDOWS__ ) - return StrCmpLogicalW(s1.wc_str(), s2.wc_str()); -#else return wxCmpNaturalGeneric(s1, s2); -#endif // #if defined( __WINDOWS__ ) } +#endif // #if !defined( __WINDOWS__ ) diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index 6090e1351d..f4e55c31ab 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -95,6 +95,22 @@ // For wxKillAllChildren #include +// For wxCmpNatural() +#include + +// In some distributions of MinGW32, this function is exported in the library, +// but not declared in shlwapi.h. Therefore we declare it here. +#if defined( __MINGW32_TOOLCHAIN__ ) + extern "C" __declspec(dllimport) int WINAPI StrCmpLogicalW(LPCWSTR psz1, LPCWSTR psz2); +#endif + +// For MSVC we can also link the library containing StrCmpLogicalW() +// directly from here, for the other compilers this needs to be done at +// makefiles level. +#ifdef __VISUALC__ + #pragma comment(lib, "shlwapi") +#endif + // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- @@ -1583,3 +1599,8 @@ wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc) return hwnd; } + +int wxCMPFUNC_CONV wxCmpNatural(const wxString& s1, const wxString& s2) +{ + return StrCmpLogicalW(s1.wc_str(), s2.wc_str()); +}