'\\' can be used to suppress special meaning in '%' and '$' in wxExpandEnvVars

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1998-08-11 21:12:06 +00:00
parent d1427b7053
commit 906373bf01

View File

@@ -222,11 +222,12 @@ wxString wxExpandEnvVars(const wxString& str)
// check the closing bracket // check the closing bracket
if ( bracket != Bracket_None ) { if ( bracket != Bracket_None ) {
if ( m == str.Len() || str[m] != (char)bracket ) { if ( m == str.Len() || str[m] != (char)bracket ) {
wxLogWarning(_("missing '%c' at position %d in '%s'."), wxLogWarning(_("Environment variables expansion failed: "
"missing '%c' at position %d in '%s'."),
(char)bracket, m + 1, str.c_str()); (char)bracket, m + 1, str.c_str());
} }
else { else {
// skip closing bracket // skip closing bracket unless the variables wasn't expanded
if ( pszValue == NULL ) if ( pszValue == NULL )
strResult << (char)bracket; strResult << (char)bracket;
m++; m++;
@@ -237,6 +238,15 @@ wxString wxExpandEnvVars(const wxString& str)
} }
break; break;
case '\\':
// backslash can be used to suppress special meaning of % and $
if ( n != str.Len() && (str[n + 1] == '%' || str[n + 1] == '$') ) {
strResult += str[++n];
break;
}
//else: fall through
default: default:
strResult += str[n]; strResult += str[n];
} }