X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3b466481eac25cbef1d35aaf6ee9d94167a07b9..3d05544e4e71e7ff10984dae5a9b8a07d92f42a6:/src/msw/iniconf.cpp diff --git a/src/msw/iniconf.cpp b/src/msw/iniconf.cpp index 2076a1f3d8..b8e524f752 100644 --- a/src/msw/iniconf.cpp +++ b/src/msw/iniconf.cpp @@ -23,7 +23,9 @@ #ifndef WX_PRECOMP #include #include + #include #include + #include #endif //WX_PRECOMP #include @@ -141,7 +143,7 @@ void wxIniConfig::SetPath(const wxString& strPath) // other functions assume that all this is true, i.e. there are no trailing // underscores at the end except if the group is the root one wxASSERT( (m_strPath.IsEmpty() || m_strPath.Last() != PATH_SEP_REPLACE) && - (m_strGroup == PATH_SEP_REPLACE || + (m_strGroup == wxString(PATH_SEP_REPLACE) || m_strGroup.Last() != PATH_SEP_REPLACE) ); } @@ -152,7 +154,7 @@ const wxString& wxIniConfig::GetPath() const // always return abs path s_str = wxCONFIG_PATH_SEPARATOR; - if ( m_strGroup == PATH_SEP_REPLACE ) { + if ( m_strGroup == (const char*) PATH_SEP_REPLACE ) { // we're at the root level, nothing to do } else { @@ -183,7 +185,7 @@ wxString wxIniConfig::GetKeyName(const wxString& szKey) const { wxString strKey; - if ( m_strGroup != PATH_SEP_REPLACE ) + if ( m_strGroup != wxString(PATH_SEP_REPLACE) ) strKey << m_strGroup << PATH_SEP_REPLACE; if ( !m_strPath.IsEmpty() ) strKey << m_strPath << PATH_SEP_REPLACE; @@ -398,12 +400,18 @@ bool wxIniConfig::Flush(bool /* bCurrentOnly */) // delete // ---------------------------------------------------------------------------- -bool wxIniConfig::DeleteEntry(const char *szKey, bool bGroupIfEmptyAlso) +bool wxIniConfig::DeleteEntry(const wxString& szKey, bool bGroupIfEmptyAlso) { // passing NULL as value to WritePrivateProfileString deletes the key - if ( !Write(szKey, (const char *)NULL) ) +// if ( !Write(szKey, (const char *)NULL) ) +// return FALSE; + wxConfigPathChanger path(this, szKey); + wxString strKey = GetPrivateKeyName(path.Name()); + + if (WritePrivateProfileString(m_strGroup, szKey, + (const char*) NULL, m_strLocalFilename) == 0) return FALSE; - + if ( !bGroupIfEmptyAlso || !IsEmpty() ) return TRUE; @@ -417,7 +425,7 @@ bool wxIniConfig::DeleteEntry(const char *szKey, bool bGroupIfEmptyAlso) return bOk; } -bool wxIniConfig::DeleteGroup(const char *szKey) +bool wxIniConfig::DeleteGroup(const wxString& szKey) { wxConfigPathChanger path(this, szKey); @@ -432,6 +440,10 @@ bool wxIniConfig::DeleteGroup(const char *szKey) return bOk; } +#ifndef MAX_PATH +#define MAX_PATH 256 +#endif + bool wxIniConfig::DeleteAll() { // first delete our group in win.ini @@ -448,7 +460,7 @@ bool wxIniConfig::DeleteAll() wxString strFile = szBuf; strFile << '\\' << m_strLocalFilename; - if ( !DeleteFile(strFile) ) { + if ( !wxRemoveFile(strFile) ) { wxLogSysError(_("Can't delete the INI file '%s'"), strFile.c_str()); return FALSE; }