X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/35c2aa4f19cce4f5a6bd0199333017453e569a2d..394fd6e2f214cce788baec5a4347dffa5981e01e:/src/common/filename.cpp diff --git a/src/common/filename.cpp b/src/common/filename.cpp index 9285be0e5d..371101a689 100644 --- a/src/common/filename.cpp +++ b/src/common/filename.cpp @@ -1896,19 +1896,21 @@ wxString wxFileName::GetLongPath() const size_t count = dirs.GetCount(); for ( size_t i = 0; i < count; i++ ) { + const wxString& dir = dirs[i]; + // We're using pathOut to collect the long-name path, but using a // temporary for appending the last path component which may be // short-name - tmpPath = pathOut + dirs[i]; - - if ( tmpPath.empty() ) - continue; - - // can't see this being necessary? MF - if ( tmpPath.Last() == GetVolumeSeparator(wxPATH_DOS) ) + tmpPath = pathOut + dir; + + // We must not process "." or ".." here as they would be (unexpectedly) + // replaced by the corresponding directory names so just leave them + // alone + // + // And we can't pass a drive and root dir to FindFirstFile (VZ: why?) + if ( tmpPath.empty() || dir == '.' || dir == ".." || + tmpPath.Last() == GetVolumeSeparator(wxPATH_DOS) ) { - // Can't pass a drive and root dir to FindFirstFile, - // so continue to next dir tmpPath += wxFILE_SEP_PATH; pathOut = tmpPath; continue;