Added ReplaceIllegalFileNameChars() for wxString&

This commit is contained in:
Maciej Suminski 2018-03-06 10:11:54 +01:00
parent 23f49f014b
commit dfc47464d7
2 changed files with 35 additions and 3 deletions

View File

@ -484,6 +484,7 @@ bool ReplaceIllegalFileNameChars( std::string* aName, int aReplaceChar )
{
bool changed = false;
std::string result;
result.reserve( aName->length() );
for( std::string::iterator it = aName->begin(); it != aName->end(); ++it )
{
@ -507,3 +508,33 @@ bool ReplaceIllegalFileNameChars( std::string* aName, int aReplaceChar )
return changed;
}
bool ReplaceIllegalFileNameChars( wxString& aName, int aReplaceChar )
{
bool changed = false;
wxString result;
result.reserve( aName.Length() );
for( wxString::iterator it = aName.begin(); it != aName.end(); ++it )
{
if( strchr( illegalFileNameChars, *it ) )
{
if( aReplaceChar )
result += aReplaceChar;
else
result += wxString::Format( "%%%02x", *it );
changed = true;
}
else
{
result += *it;
}
}
if( changed )
aName = result;
return changed;
}

View File

@ -172,6 +172,7 @@ wxString GetIllegalFileNameWxChars();
* @return true if any characters have been replaced in \a aName.
*/
bool ReplaceIllegalFileNameChars( std::string* aName, int aReplaceChar = 0 );
bool ReplaceIllegalFileNameChars( wxString& aName, int aReplaceChar = 0 );
#ifndef HAVE_STRTOKR
// common/strtok_r.c optionally: