/////////////////////////////////////////////////////////////////////////////
-// Name: uri.cpp
+// Name: src/common/uri.cpp
// Purpose: Implementation of a URI parser
// Author: Ryan Norton,
// Vadim Zeitlin (UTF-8 URI support, many other changes)
// Created: 10/26/04
-// RCS-ID: $Id$
// Copyright: (c) 2004 Ryan Norton,
// 2008 Vadim Zeitlin
// Licence: wxWindows licence
wxASSERT_MSG( n >= 0 && n <= 0xff, "unexpected character value" );
- c = wx_static_cast(char, n);
+ c = static_cast<char>(n);
}
*p = c;
// ---------------------------------------------------------------------------
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
{
m_hostType = wxURI_IPV6ADDRESS;
- m_server.assign(start, uri - start - 1);
+ m_server.assign(start + 1, uri - start - 1);
++uri;
}
else
{
m_hostType = wxURI_IPVFUTURE;
- m_server.assign(start, uri - start - 1);
+ m_server.assign(start + 1, uri - start - 1);
++uri;
}
else // unrecognized IP literal
{
m_hostType = wxURI_IPV4ADDRESS;
- m_server.assign(start, uri - start - 1);
+ m_server.assign(start, uri - start);
}
else
{
//
// Parses a certain version of an IP address and moves the input string past
// it. Returns true if the input string contains the proper version of an ip
-// address. It is the caller's responsability to move the input string back
+// address. It is the caller's responsibility to move the input string back
// to its original position on failure.
// ---------------------------------------------------------------------------