// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "confbase.h"
-#endif
#include "wx/wxprec.h"
// ----------------------------------------------------------------------------
wxConfigPathChanger::wxConfigPathChanger(const wxConfigBase *pContainer,
- const wxString& strEntry)
+ const wxString& strEntry)
{
+ m_bChanged = false;
m_pContainer = (wxConfigBase *)pContainer;
// the path is everything which precedes the last slash
{
if ( m_pContainer->GetPath() != strPath )
{
- // do change the path
+ // we do change the path so restore it later
m_bChanged = true;
/* JACS: work around a memory bug that causes an assert
}
else {
// it's a name only, without path - nothing to do
- m_bChanged = false;
m_strName = strEntry;
}
}
// understands both Unix and Windows (but only under Windows) environment
// variables expansion: i.e. $var, $(var) and ${var} are always understood
// and in addition under Windows %var% is also.
+
+// don't change the values the enum elements: they must be equal
+// to the matching [closing] delimiter.
+enum Bracket
+{
+ Bracket_None,
+ Bracket_Normal = ')',
+ Bracket_Curly = '}',
+#ifdef __WXMSW__
+ Bracket_Windows = '%', // yeah, Windows people are a bit strange ;-)
+#endif
+ Bracket_Max
+};
+
wxString wxExpandEnvVars(const wxString& str)
{
wxString strResult;
strResult.Alloc(str.Len());
- // don't change the values the enum elements: they must be equal
- // to the matching [closing] delimiter.
- enum Bracket
- {
- Bracket_None,
- Bracket_Normal = ')',
- Bracket_Curly = '}',
-#ifdef __WXMSW__
- Bracket_Windows = '%', // yeah, Windows people are a bit strange ;-)
-#endif
- Bracket_Max
- };
-
size_t m;
for ( size_t n = 0; n < str.Len(); n++ ) {
switch ( str[n] ) {
// under Unix, OTOH, this warning could be useful for the user to
// understand why isn't the variable expanded as intended
#ifndef __WXMSW__
- wxLogWarning(_("Environment variables expansion failed: missing '%c' at position %d in '%s'."),
- (char)bracket, m + 1, str.c_str());
+ wxLogWarning(_("Environment variables expansion failed: missing '%c' at position %u in '%s'."),
+ (char)bracket, (unsigned int) (m + 1), str.c_str());
#endif // __WXMSW__
}
else {