Create(uri);
}
-wxURI::wxURI(const wxURI& uri) : m_hostType(wxURI_REGNAME), m_fields(0)
+wxURI::wxURI(const wxURI& uri) : wxObject(), m_hostType(wxURI_REGNAME), m_fields(0)
{
Assign(uri);
}
void wxURI::Clear()
{
m_scheme = m_user = m_server = m_port = m_path =
- m_query = m_fragment = wxT("");
+ m_query = m_fragment = wxEmptyString;
m_hostType = wxURI_REGNAME;
{
wxASSERT_MSG(IsHex(*s) && IsHex(*(s+1)), wxT("Invalid escape!"));
- return (wxChar)( CharToHex(*s) * 0x10 + CharToHex(*++s) );
+ //<<4 == 16
+ return (wxChar)( CharToHex(*s) << 4 ) | CharToHex(*++s);
}
wxString wxURI::Unescape(const wxString& uri)
new_uri += wxURI::TranslateEscape( &(uri.c_str()[i+1]) );
i += 2;
}
+ else
+ new_uri += uri[i];
}
return new_uri;
}
else
//relative uri with relative path reference
- m_scheme = wxT("");
+ m_scheme = wxEmptyString;
}
// else
//relative uri with _possible_ relative path reference
uricopy = ++uri;
}
else
- m_user = wxT("");
+ m_user = wxEmptyString;
return uricopy;
}
// IP-literal = "[" ( IPv6address / IPvFuture ) "]"
if (*uri == wxT('['))
{
- if (ParseIPv6address(++uri) && *uri == wxT(']'))
+ ++uri; //some compilers don't support *&ing a ++*
+ if (ParseIPv6address(uri) && *uri == wxT(']'))
{
++uri;
m_hostType = wxURI_IPV6ADDRESS;
wxStringBufferLength theBuffer(m_server, uri - uricopy);
- wxMemcpy(theBuffer, uricopy, uri-uricopy);
+ wxTmemcpy(theBuffer, uricopy, uri-uricopy);
theBuffer.SetLength(uri-uricopy);
}
else
{
uri = uricopy;
- if (ParseIPvFuture(++uri) && *uri == wxT(']'))
+ ++uri; //some compilers don't support *&ing a ++*
+ if (ParseIPvFuture(uri) && *uri == wxT(']'))
{
++uri;
m_hostType = wxURI_IPVFUTURE;
wxStringBufferLength theBuffer(m_server, uri - uricopy);
- wxMemcpy(theBuffer, uricopy, uri-uricopy);
+ wxTmemcpy(theBuffer, uricopy, uri-uricopy);
theBuffer.SetLength(uri-uricopy);
}
else
m_hostType = wxURI_IPV4ADDRESS;
wxStringBufferLength theBuffer(m_server, uri - uricopy);
- wxMemcpy(theBuffer, uricopy, uri-uricopy);
+ wxTmemcpy(theBuffer, uricopy, uri-uricopy);
theBuffer.SetLength(uri-uricopy);
}
else
{
wxStringBufferLength theBuffer(m_path, m_path.length() + 1);
#if wxUSE_STL
- wxMemcpy(theBuffer, m_path.c_str(), m_path.length()+1);
+ wxTmemcpy(theBuffer, m_path.c_str(), m_path.length()+1);
#endif
Normalize(theBuffer, true);
theBuffer.SetLength(wxStrlen(theBuffer));
{
wxStringBufferLength theBuffer(m_path, m_path.length() + 1);
#if wxUSE_STL
- wxMemcpy(theBuffer, m_path.c_str(), m_path.length()+1);
+ wxTmemcpy(theBuffer, m_path.c_str(), m_path.length()+1);
#endif
Normalize(theBuffer);
theBuffer.SetLength(wxStrlen(theBuffer));
return;
}
- //No sheme - inherit
+ //No scheme - inherit
m_scheme = base.m_scheme;
m_fields |= wxURI_SCHEME;
// T.query = R.query;
if (m_path[0u] != wxT('/'))
{
- //Marge paths
+ //Merge paths
const wxChar* op = m_path.c_str();
const wxChar* bp = base.m_path.c_str() + base.m_path.Length();
// ---------------------------------------------------------------------------
//static
-wxInt32 wxURI::CharToHex(const wxChar& c)
+wxChar wxURI::CharToHex(const wxChar& c)
{
- if ((c >= wxT('A')) && (c <= wxT('Z'))) return c - wxT('A') + 0x0A;
- if ((c >= wxT('a')) && (c <= wxT('z'))) return c - wxT('a') + 0x0a;
- if ((c >= wxT('0')) && (c <= wxT('9'))) return c - wxT('0') + 0x00;
+ if ((c >= wxT('A')) && (c <= wxT('Z'))) return wxChar(c - wxT('A') + 0x0A);
+ if ((c >= wxT('a')) && (c <= wxT('z'))) return wxChar(c - wxT('a') + 0x0a);
+ if ((c >= wxT('0')) && (c <= wxT('9'))) return wxChar(c - wxT('0') + 0x00);
return 0;
}
// ---------------------------------------------------------------------------
//
-// wxURL Compatability
+// wxURL Compatibility
//
// ---------------------------------------------------------------------------
#include "wx/url.h"
+wxString wxURL::GetProtocolName() const
+{
+ return m_scheme;
+}
+
+wxString wxURL::GetHostName() const
+{
+ return m_server;
+}
+
+wxString wxURL::GetPath() const
+{
+ return m_path;
+}
+
//Note that this old code really doesn't convert to a URI that well and looks
//more like a dirty hack than anything else...