X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0627d0917bc2e34724055f72e6c36787a7de642f..6962f34ea5bf7a931bb9b636f46ad1316473a724:/src/msw/filedlg.cpp diff --git a/src/msw/filedlg.cpp b/src/msw/filedlg.cpp index 89bf4ae96c..c50dfe1f0d 100644 --- a/src/msw/filedlg.cpp +++ b/src/msw/filedlg.cpp @@ -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;