]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fileconf.cpp
(1) Denis Pershin's patch for wxGTK (memory leaks corrections)
[wxWidgets.git] / src / common / fileconf.cpp
index a4df6e1d65f49298cfe9b8f6c9f282b1db200f91..7cc86f423d7e151bf5bd30c6fe887eed8319b02d 100644 (file)
@@ -220,14 +220,17 @@ wxFileConfig::wxFileConfig(const wxString& strLocal, const wxString& strGlobal)
             : m_strLocalFile(strLocal), m_strGlobalFile(strGlobal)
 {
   // if the path is not absolute, prepend the standard directory to it
-
-  if ( !strLocal.IsEmpty() && !wxIsPathSeparator(strLocal[0u]) )
-    m_strLocalFile = GetLocalDir();
-  m_strLocalFile << strLocal;
-
-  if ( !strGlobal.IsEmpty() && !wxIsPathSeparator(strGlobal[0u]) )
-    m_strGlobalFile = GetGlobalDir();
-  m_strGlobalFile << strGlobal;
+  if ( !strLocal.IsEmpty() && !wxIsAbsolutePath(strLocal) )
+  {
+     m_strLocalFile = GetLocalDir();
+     m_strLocalFile << strLocal;
+  }
+  
+  if ( !strGlobal.IsEmpty() && !wxIsAbsolutePath(strGlobal) )
+  {
+     m_strGlobalFile = GetGlobalDir();
+     m_strGlobalFile << strGlobal;
+  }
 
   Init();
 }
@@ -529,6 +532,8 @@ bool wxFileConfig::Read(wxString   *pstr,
 
   ConfigEntry *pEntry = m_pCurrentGroup->FindEntry(path.Name());
   if (pEntry == NULL) {
+    if( IsRecordingDefaults() )
+      ((wxFileConfig *)this)->Write(szKey,szDefault);
     *pstr = ExpandEnvVars(szDefault);
     return FALSE;
   }