]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/uri.h
Prevent seg fault for older GTK+
[wxWidgets.git] / include / wx / uri.h
index a2a16b242182b50c782e5dfda9001d9b8b369a5b..b273c37a129aecd453777fdd4cbbd5b0dbce6ae4 100644 (file)
@@ -1,20 +1,17 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        uri.h
-// Purpose:     wxURI - Class for parsing URIs 
+// Purpose:     wxURI - Class for parsing URIs
 // Author:      Ryan Norton
-// Modified By: 
+// Modified By:
 // Created:     07/01/2004
 // RCS-ID:      $Id$
-// Licence:     wxWindows
+// Copyright:   (c) Ryan Norton
+// Licence:     wxWindows Licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_URI_H_
 #define _WX_URI_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "uri.h"
-#endif
-
 #include "wx/defs.h"
 #include "wx/object.h"
 #include "wx/string.h"
 // Host Type that the server component can be
 enum wxURIHostType
 {
-    wxURI_REGNAME,             // Host is a normal register name (www.mysite.com etc.)
-    wxURI_IPV4ADDRESS, // Host is a version 4 ip address (192.168.1.100)
+    wxURI_REGNAME,      // Host is a normal register name (www.mysite.com etc.)
+    wxURI_IPV4ADDRESS,  // Host is a version 4 ip address (192.168.1.100)
     wxURI_IPV6ADDRESS,  // Host is a version 6 ip address [aa:aa:aa:aa::aa:aa]:5050
-    wxURI_IPVFUTURE            // Host is a future ip address (wxURI is unsure what kind)
+    wxURI_IPVFUTURE     // Host is a future ip address (wxURI is unsure what kind)
 };
 
 // Component Flags
@@ -49,9 +46,7 @@ enum wxURIFlags
 
 // Generic class for parsing URIs.
 //
-// Originally based off of RFC 2396 - then
-// extended to meet the newer RFC 2396.bis
-// specifications.
+// See RFC 3986
 class WXDLLIMPEXP_BASE wxURI : public wxObject
 {
 public:
@@ -70,7 +65,7 @@ public:
     bool HasPath() const        {   return (m_fields & wxURI_PATH) == wxURI_PATH;           }
     bool HasQuery() const       {   return (m_fields & wxURI_QUERY) == wxURI_QUERY;         }
     bool HasFragment() const    {   return (m_fields & wxURI_FRAGMENT) == wxURI_FRAGMENT;   }
-    
+
     const wxString& GetScheme() const           {   return m_scheme;    }
     const wxString& GetPath() const             {   return m_path;      }
     const wxString& GetQuery() const            {   return m_query;     }
@@ -83,7 +78,7 @@ public:
     //Note that the following two get functions are explicitly depreciated by RFC 2396
     wxString GetUser() const;
     wxString GetPassword() const;
-    
+
     wxString BuildURI() const;
     wxString BuildUnescapedURI() const;
 
@@ -95,7 +90,7 @@ public:
     bool operator == (const wxURI& uri) const;
 
     static wxString Unescape (const wxString& szEscapedURI);
-    
+
 protected:
     wxURI& Assign(const wxURI& uri);
 
@@ -121,9 +116,11 @@ protected:
 
     static void Normalize(wxChar* uri, bool bIgnoreLeads = false);
     static void UpTree(const wxChar* uristart, const wxChar*& uri);
+    static void UpTree(wxString::const_iterator uristart,
+                       wxString::const_iterator& uri);
 
-    static wxChar TranslateEscape(const wxChar* s);
-    static void Escape  (wxString& s, const wxChar& c);
+    static wxUniChar TranslateEscape(const wxString::const_iterator& s);
+    static void Escape(wxString& s, const wxChar& c);
     static bool IsEscape(const wxChar*& uri);
 
     static wxChar CharToHex(const wxChar& c);