]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/regex.h
avoid unimplemented wx stubs being used
[wxWidgets.git] / include / wx / regex.h
index e024d0e52a6ba420c9c9ba0c3f800c4f034f9d61..851ab153b250e62bc6bce8a4a8c0f8e209c3f037 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef _WX_REGEX_H_
 #define _WX_REGEX_H_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma interface "regex.h"
 #endif
 
 
 #if wxUSE_REGEX
 
+class WXDLLIMPEXP_BASE wxString;
+
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
 
-// max number of subexpression matches, the default should be big enough for
-// all uses but may be a bit wasteful
-#ifndef WX_REGEX_MAXMATCHES
-    #define WX_REGEX_MAXMATCHES 1024
-#endif
-
 // flags for regex compilation: these can be used with Compile()
 enum
 {
-    // use extended regex syntax (default)
+    // use extended regex syntax
     wxRE_EXTENDED = 0,
+    
+    // use advanced RE syntax (built-in regex only)
+#ifdef wxHAS_REGEX_ADVANCED
+    wxRE_ADVANCED = 1,
+#endif
 
     // use basic RE syntax
     wxRE_BASIC    = 2,
@@ -71,9 +72,9 @@ enum
 // wxRegEx: a regular expression
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxRegExImpl;
+class WXDLLIMPEXP_BASE wxRegExImpl;
 
-class WXDLLEXPORT wxRegEx
+class WXDLLIMPEXP_BASE wxRegEx
 {
 public:
     // default ctor: use Compile() later
@@ -115,6 +116,12 @@ public:
     // may only be called after successful call to Matches()
     wxString GetMatch(const wxString& text, size_t index = 0) const;
 
+    // return the size of the array of matches, i.e. the number of bracketed
+    // subexpressions plus one for the expression itself, or 0 on error.
+    //
+    // may only be called after successful call to Compile()
+    size_t GetMatchCount() const;
+
     // replaces the current regular expression in the string pointed to by
     // pattern, with the text in replacement and return number of matches
     // replaced (maybe 0 if none found) or -1 on error
@@ -146,6 +153,11 @@ private:
 
     // the real guts of this class
     wxRegExImpl *m_impl;
+
+    // as long as the class wxRegExImpl is not ref-counted,
+    // instances of the handle wxRegEx must not be copied.
+    wxRegEx(const wxRegEx&);
+    wxRegEx &operator=(const wxRegEx&);
 };
 
 #endif // wxUSE_REGEX