// Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////////
-// ============================================================================
-// declarations
-// ============================================================================
-
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/wxprec.h"
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+#include <wx/confbase.h>
+
+#if wxUSE_CONFIG
+
#ifdef __BORLANDC__
#pragma hdrstop
#endif //__BORLANDC__
-#ifndef WX_PRECOMP
- #include <wx/string.h>
- #include <wx/intl.h>
-#endif //WX_PRECOMP
-
#include <wx/app.h>
#include <wx/file.h>
#include <wx/log.h>
#include <wx/textfile.h>
-#include <wx/confbase.h>
+#include <wx/utils.h>
// we must include (one of) these files for wxConfigBase::Create
#if defined(__WXMSW__) && defined(wxCONFIG_WIN32_NATIVE)
// Not all args will always be used by derived classes, but
// including them all in each class ensures compatibility.
wxConfigBase::wxConfigBase(const wxString& appName, const wxString& vendorName,
- const wxString& localFilename, const wxString& globalFilename, long style):
+ const wxString& WXUNUSED(localFilename), const wxString& WXUNUSED(globalFilename), long style):
m_appName(appName), m_vendorName(vendorName), m_style(style)
{
m_bExpandEnvVars = TRUE; m_bRecordDefaults = FALSE;
bool wxConfigBase::Read(const wxString& key, double* val) const
{
wxString str;
- if (Read(key, str))
+ if (Read(key, & str))
{
*val = atof(str);
return TRUE;
}
// Convenience functions
+
+bool wxConfigBase::Read(const wxString& key, int *pi) const
+{
+ long l;
+ bool ret = Read(key, &l);
+ if (ret)
+ *pi = (int) l;
+ return ret;
+}
+
+bool wxConfigBase::Read(const wxString& key, int *pi, int defVal) const
+{
+ long l;
+ bool ret = Read(key, &l, (long) defVal);
+ *pi = (int) l;
+ return ret;
+}
+
bool wxConfigBase::Write(const wxString& key, double val)
{
wxString str;
return Write(key, l);
}
+wxString wxConfigBase::ExpandEnvVars(const wxString& str) const
+{
+ wxString tmp; // Required for BC++
+ if (IsExpandingEnvVars())
+ tmp = wxExpandEnvVars(str);
+ else
+ tmp = str;
+ return tmp;
+}
// ----------------------------------------------------------------------------
// wxConfigPathChanger
const wxString& strEntry)
{
m_pContainer = (wxConfigBase *)pContainer;
- wxString strPath = strEntry.Before(wxCONFIG_PATH_SEPARATOR);
- // special case of "/keyname" when there is nothing before "/"
- if ( strPath.IsEmpty() && ((!strEntry.IsEmpty()) && strEntry[0] == wxCONFIG_PATH_SEPARATOR ))
+ // the path is everything which precedes the last slash
+ wxString strPath = strEntry.BeforeLast(wxCONFIG_PATH_SEPARATOR);
+
+ // except in the special case of "/keyname" when there is nothing before "/"
+ if ( strPath.IsEmpty() &&
+ ((!strEntry.IsEmpty()) && strEntry[0] == wxCONFIG_PATH_SEPARATOR) )
+ {
strPath = wxCONFIG_PATH_SEPARATOR;
+ }
if ( !strPath.IsEmpty() ) {
// do change the path
m_bChanged = TRUE;
- m_strName = strEntry.Right(wxCONFIG_PATH_SEPARATOR);
+ m_strName = strEntry.AfterLast(wxCONFIG_PATH_SEPARATOR);
m_strOldPath = m_pContainer->GetPath();
m_strOldPath += wxCONFIG_PATH_SEPARATOR;
m_pContainer->SetPath(strPath);
{
Bracket_None,
Bracket_Normal = ')',
- Bracket_Curly = '}',
+ Bracket_Curly = '}'
#ifdef __WXMSW__
- Bracket_Windows = '%' // yeah, Windows people are a bit strange ;-)
+ ,Bracket_Windows = '%' // yeah, Windows people are a bit strange ;-)
#endif
};
}
}
+#endif
+
+ // wxUSE_CONFIG