]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/filedlg.cpp
ensure that the compatibility defines are not set for wxBase which doesn't need them
[wxWidgets.git] / src / msw / filedlg.cpp
index 89bf4ae96cd8a728ecebe4d31255b06c7228663f..c50dfe1f0d9708b968fcbcc0f6965e358fcc26ab 100644 (file)
@@ -398,7 +398,7 @@ int wxFileDialog::ShowModal()
                                             : (GetOpenFileName(&of) != 0);
         }
     }
-#endif
+#endif // __WIN32__
 
     if ( success )
     {
@@ -424,7 +424,7 @@ int wxFileDialog::ShowModal()
                 i += wxStrlen(&fileNameBuffer[i]) + 1;
             }
 #else
-            wxStringTokenizer toke(fileNameBuffer, " \t\r\n");
+            wxStringTokenizer toke(fileNameBuffer, _T(" \t\r\n"));
             m_dir = toke.GetNextToken();
             m_fileName = toke.GetNextToken();
             m_fileNames.Add(m_fileName);
@@ -448,9 +448,21 @@ int wxFileDialog::ShowModal()
 
             m_filterIndex = (int)of.nFilterIndex - 1;
 
-            if ( !of.nFileExtension || (of.nFileExtension && fileNameBuffer[ of.nFileExtension-1] != wxT('.')) )
-            {                                    // user has typed an filename
-                // without an extension:
+            if ( !of.nFileExtension || 
+                 (of.nFileExtension && fileNameBuffer[of.nFileExtension] == wxT('\0')) )
+            {
+                // User has typed a filename without an extension:
+
+                // A filename can end in a "." here ("abc."), this means it
+                // does not have an extension. Because later on a "." with
+                // the default extension is appended we remove the "." if
+                // filename ends with one (We don't want files called
+                // "abc..ext")
+                int idx = wxStrlen(fileNameBuffer) - 1;
+                if ( fileNameBuffer[idx] == wxT('.') )
+                {
+                    fileNameBuffer[idx] = wxT('\0');
+                }
 
                 int   maxFilter = (int)(of.nFilterIndex*2L-1L);
                 extension = filterBuffer;