]> git.saurik.com Git - wxWidgets.git/commitdiff
Fixed wxConfig (I hope) and disabled wxRegConfig::DeleteAll.
authorJulian Smart <julian@anthemion.co.uk>
Wed, 20 Jan 1999 12:23:40 +0000 (12:23 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Wed, 20 Jan 1999 12:23:40 +0000 (12:23 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

distrib/msw/msw.rsp
samples/config/conftest.cpp
src/common/config.cpp
src/msw/regconf.cpp

index 7934c19e9cb6046e7cf5887cf405a1503ebde81a..05f261da53fcad85a945e230953452827ce04fd3 100644 (file)
@@ -18,6 +18,7 @@ src/makesc.env
 src/makeg95.env
 src/makesl.env
 src/makeprog.sl
+src/salford.lnk
 src/ntwxwin.mak
 src/maketwin.env
 src/makeprog.twn
index 4626dd0122c8f607c78409a836d73a5a4bc5d9f3..4d485ac2694ef528d7104d16fb43a14ac70dbc77 100644 (file)
@@ -204,15 +204,15 @@ void MyFrame::OnDelete(wxCommandEvent&)
 {
   // VZ: it seems that DeleteAll() wreaks havoc on NT. Disabled until I
   // investigate it further, do _not_ compile this code in meanwhile!
-#if 0
-  if ( wxConfigBase::Get()->DeleteAll() ) {
+  // JACS: wxRegConfig::DeleteAll is disabled, so it's safe to call DeleteAll,
+  // it just won't do anything useful on Win95/NT.
+    if ( wxConfigBase::Get()->DeleteAll() ) {
     wxLogMessage("Config file/registry key successfully deleted.");
 
     delete wxConfigBase::Set((wxConfigBase *) NULL);
     wxConfigBase::DontCreateOnDemand();
   }
   else
-#endif // 0
     wxLogError("Deleting config file/registry key failed.");
 }
 
index 47cf94f498f0856c203c6e6e7a86e3c4f6e8bc39..d85831979555be91f80e5682e9e94c79f76a26cb 100644 (file)
@@ -226,7 +226,8 @@ wxConfigPathChanger::wxConfigPathChanger(const wxConfigBase *pContainer,
                                  const wxString& strEntry)
 {
   m_pContainer = (wxConfigBase *)pContainer;
-  wxString strPath = strEntry.Before(wxCONFIG_PATH_SEPARATOR);
+//  wxString strPath = strEntry.Before(wxCONFIG_PATH_SEPARATOR);
+  wxString strPath = strEntry.BeforeLast(wxCONFIG_PATH_SEPARATOR);
 
   // special case of "/keyname" when there is nothing before "/"
   if ( strPath.IsEmpty() && ((!strEntry.IsEmpty()) && strEntry[0] == wxCONFIG_PATH_SEPARATOR ))
@@ -235,7 +236,8 @@ wxConfigPathChanger::wxConfigPathChanger(const wxConfigBase *pContainer,
   if ( !strPath.IsEmpty() ) {
     // do change the path
     m_bChanged = TRUE;
-    m_strName = strEntry.Right(wxCONFIG_PATH_SEPARATOR);
+//    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);
index 2fe6d9da5849d3948c301a41af0cd4a599f20b7d..f06413bf318de948a27c597244b87066f459d836 100644 (file)
@@ -467,12 +467,16 @@ bool wxRegConfig::DeleteAll()
 {
   m_keyLocal.Close();
   m_keyGlobal.Close();
-
+#if 1
+  wxFAIL_MSG("wxRegConfig::DeleteAll will wipe out your entire registry, so please do not use until it's fixed!");
+  return FALSE;
+#else
   bool bOk = m_keyLocalRoot.DeleteSelf();
   if ( bOk )
     bOk = m_keyGlobalRoot.DeleteSelf();
 
   return bOk;
+#endif
 }
 
 #endif