X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c9f7896861f734ce044ee8601ba2d8a6959c9d9e..82cddbd97a4dfbd0dcf5c44c9336173d6dd386ef:/src/common/uri.cpp diff --git a/src/common/uri.cpp b/src/common/uri.cpp index 022b66b590..bcdd7eae66 100644 --- a/src/common/uri.cpp +++ b/src/common/uri.cpp @@ -23,6 +23,10 @@ #pragma hdrstop #endif +#ifndef WX_PRECOMP + #include "wx/crt.h" +#endif + #include "wx/uri.h" // --------------------------------------------------------------------------- @@ -93,7 +97,10 @@ const wxChar* wxURI::Create(const wxString& uri) if (m_fields) Clear(); - return Parse(uri); + // FIXME-UTF8: rewrite ParseXXX() methods using iterators + // NB: using wxWxCharBuffer instead of just c_str() avoids keeping + // converted string in memory for longer than needed + return Parse(wxWxCharBuffer(uri.c_str())); } // --------------------------------------------------------------------------- @@ -374,7 +381,7 @@ bool wxURI::IsReference() const // URI-reference = URI / relative // --------------------------------------------------------------------------- -const wxChar* wxURI::Parse(const wxChar* uri) +const wxChar* wxURI::Parse(const wxChar *uri) { uri = ParseScheme(uri); uri = ParseAuthority(uri); @@ -389,7 +396,7 @@ const wxChar* wxURI::Parse(const wxChar* uri) // Individual parsers for each URI component // --------------------------------------------------------------------------- -const wxChar* wxURI::ParseScheme(const wxChar* uri) +const wxChar* wxURI::ParseScheme(const wxChar *uri) { wxASSERT(uri != NULL); @@ -641,7 +648,8 @@ const wxChar* wxURI::ParsePath(const wxChar* uri, bool bReference, bool bNormali if (bNormalize) { wxStringBufferLength theBuffer(m_path, m_path.length() + 1); -#if wxUSE_STL +#if wxUSE_STL || wxUSE_UNICODE_UTF8 + // FIXME-UTF8: have some wxReadWriteStringBuffer instead? wxTmemcpy(theBuffer, m_path.c_str(), m_path.length()+1); #endif Normalize(theBuffer, true); @@ -693,7 +701,8 @@ const wxChar* wxURI::ParsePath(const wxChar* uri, bool bReference, bool bNormali if (bNormalize) { wxStringBufferLength theBuffer(m_path, m_path.length() + 1); -#if wxUSE_STL +#if wxUSE_STL || wxUSE_UNICODE_UTF8 + // FIXME-UTF8: have some wxReadWriteStringBuffer instead? wxTmemcpy(theBuffer, m_path.c_str(), m_path.length()+1); #endif Normalize(theBuffer);