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
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);
}