]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/url.cpp
filename correction
[wxWidgets.git] / src / common / url.cpp
index cf3272ef225262d6dfcc087daefcdcb85e3a706f..3bf910e4250f310939a074c9cf28b6cec592c79b 100644 (file)
@@ -9,10 +9,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "url.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -440,4 +436,84 @@ void wxURLModule::OnExit()
 
 #endif // wxUSE_SOCKETS
 
+// ---------------------------------------------------------------------------
+//
+//                        wxURL Compatibility
+//
+// ---------------------------------------------------------------------------
+
+#if WXWIN_COMPATIBILITY_2_4
+
+#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...
+
+wxString wxURL::ConvertToValidURI(const wxString& uri, const wxChar* delims)
+{
+  wxString out_str;
+  wxString hexa_code;
+  size_t i;
+
+  for (i = 0; i < uri.Len(); i++)
+  {
+    wxChar c = uri.GetChar(i);
+
+    if (c == wxT(' '))
+    {
+      // GRG, Apr/2000: changed to "%20" instead of '+'
+
+      out_str += wxT("%20");
+    }
+    else
+    {
+      // GRG, Apr/2000: modified according to the URI definition (RFC 2396)
+      //
+      // - Alphanumeric characters are never escaped
+      // - Unreserved marks are never escaped
+      // - Delimiters must be escaped if they appear within a component
+      //     but not if they are used to separate components. Here we have
+      //     no clear way to distinguish between these two cases, so they
+      //     are escaped unless they are passed in the 'delims' parameter
+      //     (allowed delimiters).
+
+      static const wxChar marks[] = wxT("-_.!~*()'");
+
+      if ( !wxIsalnum(c) && !wxStrchr(marks, c) && !wxStrchr(delims, c) )
+      {
+        hexa_code.Printf(wxT("%%%02X"), c);
+        out_str += hexa_code;
+      }
+      else
+      {
+        out_str += c;
+      }
+    }
+  }
+
+  return out_str;
+}
+
+wxString wxURL::ConvertFromURI(const wxString& uri)
+{
+    return wxURI::Unescape(uri);
+}
+
+#endif //WXWIN_COMPATIBILITY_2_4
+
 #endif // wxUSE_URL