]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fileconf.cpp
don't crash when loading images with verbose==false (patch 1449823)
[wxWidgets.git] / src / common / fileconf.cpp
index 3a25662db7c74018a7e7fe1474b205d347f5b66a..d492e6466d0baee4b1ab34db01063b91d0b69f37 100644 (file)
@@ -308,18 +308,22 @@ wxString wxFileConfig::GetLocalDir()
 
 #if defined(__WXMAC__) || defined(__DOS__)
     // no local dir concept on Mac OS 9 or MS-DOS
 
 #if defined(__WXMAC__) || defined(__DOS__)
     // no local dir concept on Mac OS 9 or MS-DOS
-    return GetGlobalDir() ;
+    strDir << GetGlobalDir() ;
 #else
     wxGetHomeDir(&strDir);
 
 #else
     wxGetHomeDir(&strDir);
 
-#ifdef  __UNIX__
-#ifdef __VMS
-    if (strDir.Last() != wxT(']'))
-#endif
-    if (strDir.Last() != wxT('/')) strDir << wxT('/');
-#else
-    if (strDir.Last() != wxT('\\')) strDir << wxT('\\');
-#endif
+    #ifdef  __UNIX__
+        if (
+            (strDir.Last() != wxT('/'))
+        #ifdef __VMS
+            && (strDir.Last() != wxT(']'))
+        #endif
+            )
+            strDir << wxT('/');
+    #else
+        if (strDir.Last() != wxT('\\'))
+            strDir << wxT('\\');
+    #endif
 #endif
 
     return strDir;
 #endif
 
     return strDir;
@@ -1156,9 +1160,6 @@ bool wxFileConfig::DeleteAll()
                         m_strLocalFile.c_str());
           return false;
       }
                         m_strLocalFile.c_str());
           return false;
       }
-
-      m_strLocalFile =
-      m_strGlobalFile = wxEmptyString;
   }
 
   Init();
   }
 
   Init();
@@ -2026,8 +2027,11 @@ static wxString FilterInEntryName(const wxString& str)
   strResult.Alloc(str.Len());
 
   for ( const wxChar *pc = str.c_str(); *pc != '\0'; pc++ ) {
   strResult.Alloc(str.Len());
 
   for ( const wxChar *pc = str.c_str(); *pc != '\0'; pc++ ) {
-    if ( *pc == wxT('\\') )
-      pc++;
+    if ( *pc == wxT('\\') ) {
+      // we need to test it here or we'd skip past the NUL in the loop line
+      if ( *++pc == _T('\0') )
+        break;
+    }
 
     strResult += *pc;
   }
 
     strResult += *pc;
   }