]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/regex.cpp
added missing include; minor reformatting
[wxWidgets.git] / src / common / regex.cpp
index c646c915bbb9984593b507c719da71a331a774bc..2e0068f0a38e64f56d9045762a044ee6fa1a037b 100644 (file)
@@ -61,7 +61,7 @@
 #   ifdef HAVE_RE_SEARCH
 #       define WXREGEX_IF_NEED_LEN(x) ,x
 #       define WXREGEX_USING_RE_SEARCH
-#   else        
+#   else
 #       define WXREGEX_IF_NEED_LEN(x)
 #   endif
 #   if wxUSE_UNICODE
@@ -84,11 +84,22 @@ class wxRegExMatches
 public:
     typedef regmatch_t *match_type;
 
-    wxRegExMatches(size_t n)        { m_matches = new regmatch_t[n]; } 
+    wxRegExMatches(size_t n)        { m_matches = new regmatch_t[n]; }
     ~wxRegExMatches()               { delete [] m_matches; }
 
-    size_t Start(size_t n) const    { return m_matches[n].rm_so; }
-    size_t End(size_t n) const      { return m_matches[n].rm_eo; }
+    // we just use casts here because the fields of regmatch_t struct may be 64
+    // bit but we're limited to size_t in our public API and are not going to
+    // change it because operating on strings longer than 4GB using it is
+    // absolutely impractical anyhow
+    size_t Start(size_t n) const
+    {
+        return wx_truncate_cast(size_t, m_matches[n].rm_so);
+    }
+
+    size_t End(size_t n) const
+    {
+        return wx_truncate_cast(size_t, m_matches[n].rm_eo);
+    }
 
     regmatch_t *get() const         { return m_matches; }