]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/url.cpp
added clipboard events (wxEVT_COMMAND_TEXT_COPY/CUT/PASTE) and implemented them for...
[wxWidgets.git] / src / common / url.cpp
index cf3272ef225262d6dfcc087daefcdcb85e3a706f..3ece422a3443c6860cbe73e1ea6f7f7ec329a471 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        url.cpp
+// Name:        src/common/url.cpp
 // Purpose:     URL parser
 // Author:      Guilhem Lavaux
 // Modified by:
@@ -9,25 +9,25 @@
 // 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"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
 #if wxUSE_URL
 
-#include "wx/string.h"
-#include "wx/list.h"
-#include "wx/utils.h"
-#include "wx/module.h"
 #include "wx/url.h"
 
+#ifndef WX_PRECOMP
+    #include "wx/list.h"
+    #include "wx/string.h"
+    #include "wx/utils.h"
+#endif
+
+#include "wx/module.h"
+
 #include <string.h>
 #include <ctype.h>
 
@@ -332,7 +332,7 @@ void wxURL::SetDefaultProxy(const wxString& url_proxy)
             return;
 
         wxString hostname = tmp_str(0, pos),
-        port = tmp_str(pos+1, tmp_str.Length()-pos);
+        port = tmp_str(pos+1, tmp_str.length()-pos);
         wxIPV4address addr;
 
         if (!addr.Hostname(hostname))
@@ -375,7 +375,7 @@ void wxURL::SetProxy(const wxString& url_proxy)
             return;
 
         hostname = tmp_str(0, pos);
-        port = tmp_str(pos+1, tmp_str.Length()-pos);
+        port = tmp_str(pos+1, tmp_str.length()-pos);
 
         addr.Hostname(hostname);
         addr.Service(port);
@@ -440,4 +440,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