fix wxURI::GetUser() for URIs without password; added unit test case for it (closes #10412)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-01-21 17:02:11 +00:00
parent d81b2f54cc
commit 62e3e6c2bc
2 changed files with 19 additions and 10 deletions

View File

@@ -184,22 +184,19 @@ void wxURI::AppendNextEscaped(wxString& s, const char *& p)
// ---------------------------------------------------------------------------
wxString wxURI::GetUser() const
{
size_t dwPasswordPos = m_userinfo.find(':');
if (dwPasswordPos == wxString::npos)
dwPasswordPos = 0;
return m_userinfo(0, dwPasswordPos);
// if there is no colon at all, find() returns npos and this method returns
// the entire string which is correct as it means that password was omitted
return m_userinfo(0, m_userinfo.find(':'));
}
wxString wxURI::GetPassword() const
{
size_t dwPasswordPos = m_userinfo.find(':');
size_t posColon = m_userinfo.find(':');
if (dwPasswordPos == wxString::npos)
if ( posColon == wxString::npos )
return "";
else
return m_userinfo(dwPasswordPos+1, m_userinfo.length() + 1);
return m_userinfo(posColon + 1, wxString::npos);
}
// combine all URI fields in a single string, applying funcDecode to each