X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7502ba2975bfd348dc50fef2a978e91f543d6bfe..bd0df01f3f59940fdbca7a3472c256be2d034ab9:/src/common/config.cpp diff --git a/src/common/config.cpp b/src/common/config.cpp index 667d25e5fe..f9d449b7f2 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -37,9 +37,19 @@ #include #include #include -#include -#include +// we must include (one of) these files for wxConfig::Create +#if defined(__MSWIN__) && defined(wxCONFIG_WIN32_NATIVE) + #ifdef __WIN32__ + #include + #else //WIN16 + #include + #endif +#else // either we're under Unix or wish to use files even under Windows + #include +#endif + +#include #include // for isalnum() // ---------------------------------------------------------------------------- @@ -55,9 +65,6 @@ wxConfig *wxConfig::ms_pConfig = NULL; // ---------------------------------------------------------------------------- // wxConfig // ---------------------------------------------------------------------------- -wxConfig::~wxConfig() -{ -} wxConfig *wxConfig::Set(wxConfig *pConfig) { @@ -66,9 +73,19 @@ wxConfig *wxConfig::Set(wxConfig *pConfig) return pOld; } -void wxConfig::Create() +wxConfig *wxConfig::Create() { - ms_pConfig = wxTheApp->CreateConfig(); + return ms_pConfig = +#if defined(__MSWIN__) && defined(wxCONFIG_WIN32_NATIVE) + #ifdef __WIN32__ + new wxRegConfig(wxTheApp->GetAppName(), wxTheApp->GetVendorName()); + #else //WIN16 + #error "Sorry, no wxIniConfig yet..." + //new wxIniConfig(wxTheApp->GetAppName(), wxTheApp->GetVendorName()); + #endif +#else // either we're under Unix or wish to use files even under Windows + new wxFileConfig(wxTheApp->GetAppName()); +#endif } const char *wxConfig::Read(const char *szKey, const char *szDefault) const @@ -89,18 +106,18 @@ wxConfig::PathChanger::PathChanger(const wxConfig *pContainer, const wxString& strEntry) { m_pContainer = (wxConfig *)pContainer; - wxString strPath = strEntry.Before(APPCONF_PATH_SEPARATOR); + wxString strPath = strEntry.Before(wxCONFIG_PATH_SEPARATOR); // special case of "/keyname" when there is nothing before "/" - if ( strPath.IsEmpty() && strEntry[0] == APPCONF_PATH_SEPARATOR ) - strPath = APPCONF_PATH_SEPARATOR; + if ( strPath.IsEmpty() && strEntry[0] == wxCONFIG_PATH_SEPARATOR ) + strPath = wxCONFIG_PATH_SEPARATOR; if ( !strPath.IsEmpty() ) { // do change the path m_bChanged = TRUE; - m_strName = strEntry.Right(APPCONF_PATH_SEPARATOR); + m_strName = strEntry.Right(wxCONFIG_PATH_SEPARATOR); m_strOldPath = m_pContainer->GetPath(); - m_strOldPath += APPCONF_PATH_SEPARATOR; + m_strOldPath += wxCONFIG_PATH_SEPARATOR; m_pContainer->SetPath(strPath); } else { @@ -125,7 +142,7 @@ wxConfig::PathChanger::~PathChanger() // 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. -wxString ExpandEnvVars(const wxString& str) +wxString wxExpandEnvVars(const wxString& str) { wxString strResult; strResult.Alloc(str.Len()); @@ -224,14 +241,14 @@ wxString ExpandEnvVars(const wxString& str) } // this function is used to properly interpret '..' in path -void SplitPath(wxArrayString& aParts, const char *sz) +void wxSplitPath(wxArrayString& aParts, const char *sz) { aParts.Empty(); wxString strCurrent; const char *pc = sz; for ( ;; ) { - if ( *pc == '\0' || *pc == APPCONF_PATH_SEPARATOR ) { + if ( *pc == '\0' || *pc == wxCONFIG_PATH_SEPARATOR ) { if ( strCurrent == "." ) { // ignore }