]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/stringops.h
Initial work on virtual file system support for the WebKitGTK+ backend. It now suppor...
[wxWidgets.git] / include / wx / stringops.h
index 50aa1376ac30215f5c204395122c5b1d440e0416..c7eb83bc4b3190d18cd019ca4ca9892f37e55cb8 100644 (file)
 struct WXDLLIMPEXP_BASE wxStringOperationsWchar
 {
     // moves the iterator to the next Unicode character
 struct WXDLLIMPEXP_BASE wxStringOperationsWchar
 {
     // moves the iterator to the next Unicode character
-    static void IncIter(wxStringImpl::iterator& i) { ++i; }
-    static void IncIter(wxStringImpl::const_iterator& i) { ++i; }
+    template <typename Iterator>
+    static void IncIter(Iterator& i) { ++i; }
 
     // moves the iterator to the previous Unicode character
 
     // moves the iterator to the previous Unicode character
-    static void DecIter(wxStringImpl::iterator& i) { --i; }
-    static void DecIter(wxStringImpl::const_iterator& i) { --i; }
+    template <typename Iterator>
+    static void DecIter(Iterator& i) { --i; }
 
     // moves the iterator by n Unicode characters
 
     // moves the iterator by n Unicode characters
-    static wxStringImpl::iterator AddToIter(const wxStringImpl::iterator& i, ptrdiff_t n)
-        { return i + n; }
-    static wxStringImpl::const_iterator AddToIter(const wxStringImpl::const_iterator& i, ptrdiff_t n)
+    template <typename Iterator>
+    static Iterator AddToIter(const Iterator& i, ptrdiff_t n)
         { return i + n; }
 
     // returns distance of the two iterators in Unicode characters
         { return i + n; }
 
     // returns distance of the two iterators in Unicode characters
-    static ptrdiff_t DiffIters(const wxStringImpl::iterator& i1,
-                               const wxStringImpl::iterator& i2)
-        { return i1 - i2; }
-    static ptrdiff_t DiffIters(const wxStringImpl::const_iterator& i1,
-                               const wxStringImpl::const_iterator& i2)
+    template <typename Iterator>
+    static ptrdiff_t DiffIters(const Iterator& i1, const Iterator& i2)
         { return i1 - i2; }
 
     // encodes the character to a form used to represent it in internal
         { return i1 - i2; }
 
     // encodes the character to a form used to represent it in internal
@@ -65,9 +61,10 @@ struct WXDLLIMPEXP_BASE wxStringOperationsUtf8
     // checks correctness of UTF-8 sequence
     static bool IsValidUtf8String(const char *c,
                                   size_t len = wxStringImpl::npos);
     // checks correctness of UTF-8 sequence
     static bool IsValidUtf8String(const char *c,
                                   size_t len = wxStringImpl::npos);
-#ifdef __WXDEBUG__
-    static bool IsValidUtf8LeadByte(unsigned char c);
-#endif
+    static bool IsValidUtf8LeadByte(unsigned char c)
+    {
+        return (c <= 0x7F) || (c >= 0xC2 && c <= 0xF4);
+    }
 
     // table of offsets to skip forward when iterating over UTF-8 sequence
     static const unsigned char ms_utf8IterTable[256];
 
     // table of offsets to skip forward when iterating over UTF-8 sequence
     static const unsigned char ms_utf8IterTable[256];