fixed debug assert in VC 7.1 CRT due to calling isalnum() with 8bit chars

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26203 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2004-03-13 12:14:37 +00:00
parent 8027eb22c6
commit 3c9642b54d

View File

@@ -2021,14 +2021,22 @@ static wxString FilterOutEntryName(const wxString& str)
strResult.Alloc(str.Len());
for ( const wxChar *pc = str.c_str(); *pc != wxT('\0'); pc++ ) {
wxChar c = *pc;
const wxChar c = *pc;
// we explicitly allow some of "safe" chars and 8bit ASCII characters
// which will probably never have special meaning
// which will probably never have special meaning and with which we can't
// use isalnum() anyhow (in ASCII built, in Unicode it's just fine)
//
// NB: note that wxCONFIG_IMMUTABLE_PREFIX and wxCONFIG_PATH_SEPARATOR
// should *not* be quoted
if ( !wxIsalnum(c) && !wxStrchr(wxT("@_/-!.*%"), c) && ((c & 0x80) == 0) )
if (
#if !wxUSE_UNICODE
(c < 127) &&
#endif // ANSI
!wxIsalnum(c) && !wxStrchr(wxT("@_/-!.*%"), c) )
{
strResult += wxT('\\');
}
strResult += c;
}