Corrected wxFileSystemHandler::GetRightLocation for the case
where a DOS drive is specified. Otherwise, the value returned for e.g. file://c:\temp\thing.txt is \temp\thing.txt, because the test for twos colon doesn't handle this case. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
3a5bcc4db0
commit
8b0d53975d
@ -157,11 +157,24 @@ wxString wxFileSystemHandler::GetRightLocation(const wxString& location) const
|
||||
|
||||
for (i = l-1;
|
||||
(i >= 0) &&
|
||||
((location[i] != wxT(':')) || (i == 1) || (location[i-2] == wxT(':')));
|
||||
((location[i] != wxT(':')) || (i == 1) ||
|
||||
(location[i-2] == wxT(':'))
|
||||
#ifdef __WXMSW__
|
||||
|| ((i > 3) && location[i-4] == wxT(':')) // E.g. file://C:/thing.jpg
|
||||
#endif
|
||||
);
|
||||
i--)
|
||||
{
|
||||
if (location[i] == wxT('#')) l2 = i + 1;
|
||||
}
|
||||
#ifdef __WXMSW__
|
||||
// We may now have //c:/thing.jpg
|
||||
if (((i + 4) < l) && location[i+1] == wxT('/') && location[i+2] == wxT('/') &&
|
||||
location[i+4] == wxT(':'))
|
||||
{
|
||||
i = i + 2;
|
||||
}
|
||||
#endif
|
||||
if (i == 0) return wxEmptyString;
|
||||
else return location.Mid(i + 1, l2 - i - 2);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user