Left base folder: S:\general\pcre
Right base folder: S:\tradeanalyzer\pcre
--- CMakeLists.txt	2011-02-04 15:43:26.000000000 +0200
+++ CMakeLists.txt	2011-05-24 16:54:26.000000000 +0200
@@ -484,41 +484,12 @@
   ADD_TEST(pcre_stringpiece_test ${PCRE_STRINGPIECE_UNITTEST_EXE})
 ENDIF(PCRE_BUILD_TESTS)
 
 # Installation
 SET(CMAKE_INSTALL_ALWAYS 1)
 
-INSTALL(TARGETS ${targets}
-        RUNTIME DESTINATION bin
-        LIBRARY DESTINATION lib
-        ARCHIVE DESTINATION lib)
-
-INSTALL(FILES ${PCRE_HEADERS} ${PCREPOSIX_HEADERS} DESTINATION include)
-
-FILE(GLOB html ${PROJECT_SOURCE_DIR}/doc/html/*.html)
-FILE(GLOB man1 ${PROJECT_SOURCE_DIR}/doc/*.1)
-FILE(GLOB man3 ${PROJECT_SOURCE_DIR}/doc/*.3)
-
-IF(PCRE_BUILD_PCRECPP)
-        INSTALL(FILES ${PCRECPP_HEADERS} DESTINATION include)
-ELSE(PCRE_BUILD_PCRECPP)
-        # Remove pcrecpp.3
-        FOREACH(man ${man3})
-                GET_FILENAME_COMPONENT(man_tmp ${man} NAME)
-                IF(NOT man_tmp STREQUAL "pcrecpp.3")
-                        SET(man3_new ${man3} ${man})
-                ENDIF(NOT man_tmp STREQUAL "pcrecpp.3")
-        ENDFOREACH(man ${man3})
-        SET(man3 ${man3_new})
-ENDIF(PCRE_BUILD_PCRECPP)
-
-
-INSTALL(FILES ${man1} DESTINATION man/man1)
-INSTALL(FILES ${man3} DESTINATION man/man3)
-INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)
-
 # help, only for nice output
 IF(BUILD_SHARED_LIBS)
   SET(BUILD_STATIC_LIBS OFF)
 ELSE(BUILD_SHARED_LIBS)
   SET(BUILD_STATIC_LIBS ON)
 ENDIF(BUILD_SHARED_LIBS)
--- pcrecpp.cc	2011-02-04 15:43:26.000000000 +0200
+++ pcrecpp.cc	2011-05-26 21:59:40.000000000 +0200
@@ -68,12 +68,14 @@
 #if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__)
 # define ULP_AS_STRING(x)            ULP_AS_STRING_INTERNAL(x)
 # define ULP_AS_STRING_INTERNAL(x)   #x
 # define USER_LABEL_PREFIX_STR       ULP_AS_STRING(__USER_LABEL_PREFIX__)
 extern Arg no_arg
   __attribute__((alias(USER_LABEL_PREFIX_STR "_ZN7pcrecpp2RE6no_argE")));
+#else
+Arg no_arg((void*)NULL);
 #endif
 
 // If a regular expression has no error, its error_ field points here
 static const string empty_string;
 
 // If the user doesn't ask for any options, we just use this one
@@ -164,28 +166,28 @@
                    const Arg& ptr13,
                    const Arg& ptr14,
                    const Arg& ptr15,
                    const Arg& ptr16) const {
   const Arg* args[kMaxArgs];
   int n = 0;
-  if (&ptr1  == &no_arg) goto done; args[n++] = &ptr1;
-  if (&ptr2  == &no_arg) goto done; args[n++] = &ptr2;
-  if (&ptr3  == &no_arg) goto done; args[n++] = &ptr3;
-  if (&ptr4  == &no_arg) goto done; args[n++] = &ptr4;
-  if (&ptr5  == &no_arg) goto done; args[n++] = &ptr5;
-  if (&ptr6  == &no_arg) goto done; args[n++] = &ptr6;
-  if (&ptr7  == &no_arg) goto done; args[n++] = &ptr7;
-  if (&ptr8  == &no_arg) goto done; args[n++] = &ptr8;
-  if (&ptr9  == &no_arg) goto done; args[n++] = &ptr9;
-  if (&ptr10 == &no_arg) goto done; args[n++] = &ptr10;
-  if (&ptr11 == &no_arg) goto done; args[n++] = &ptr11;
-  if (&ptr12 == &no_arg) goto done; args[n++] = &ptr12;
-  if (&ptr13 == &no_arg) goto done; args[n++] = &ptr13;
-  if (&ptr14 == &no_arg) goto done; args[n++] = &ptr14;
-  if (&ptr15 == &no_arg) goto done; args[n++] = &ptr15;
-  if (&ptr16 == &no_arg) goto done; args[n++] = &ptr16;
+  if (ptr1  == no_arg) goto done; args[n++] = &ptr1;
+  if (ptr2  == no_arg) goto done; args[n++] = &ptr2;
+  if (ptr3  == no_arg) goto done; args[n++] = &ptr3;
+  if (ptr4  == no_arg) goto done; args[n++] = &ptr4;
+  if (ptr5  == no_arg) goto done; args[n++] = &ptr5;
+  if (ptr6  == no_arg) goto done; args[n++] = &ptr6;
+  if (ptr7  == no_arg) goto done; args[n++] = &ptr7;
+  if (ptr8  == no_arg) goto done; args[n++] = &ptr8;
+  if (ptr9  == no_arg) goto done; args[n++] = &ptr9;
+  if (ptr10 == no_arg) goto done; args[n++] = &ptr10;
+  if (ptr11 == no_arg) goto done; args[n++] = &ptr11;
+  if (ptr12 == no_arg) goto done; args[n++] = &ptr12;
+  if (ptr13 == no_arg) goto done; args[n++] = &ptr13;
+  if (ptr14 == no_arg) goto done; args[n++] = &ptr14;
+  if (ptr15 == no_arg) goto done; args[n++] = &ptr15;
+  if (ptr16 == no_arg) goto done; args[n++] = &ptr16;
  done:
 
   int consumed;
   int vec[kVecSize];
   return DoMatchImpl(text, ANCHOR_BOTH, &consumed, args, n, vec, kVecSize);
 }
@@ -206,28 +208,28 @@
                       const Arg& ptr13,
                       const Arg& ptr14,
                       const Arg& ptr15,
                       const Arg& ptr16) const {
   const Arg* args[kMaxArgs];
   int n = 0;
-  if (&ptr1  == &no_arg) goto done; args[n++] = &ptr1;
-  if (&ptr2  == &no_arg) goto done; args[n++] = &ptr2;
-  if (&ptr3  == &no_arg) goto done; args[n++] = &ptr3;
-  if (&ptr4  == &no_arg) goto done; args[n++] = &ptr4;
-  if (&ptr5  == &no_arg) goto done; args[n++] = &ptr5;
-  if (&ptr6  == &no_arg) goto done; args[n++] = &ptr6;
-  if (&ptr7  == &no_arg) goto done; args[n++] = &ptr7;
-  if (&ptr8  == &no_arg) goto done; args[n++] = &ptr8;
-  if (&ptr9  == &no_arg) goto done; args[n++] = &ptr9;
-  if (&ptr10 == &no_arg) goto done; args[n++] = &ptr10;
-  if (&ptr11 == &no_arg) goto done; args[n++] = &ptr11;
-  if (&ptr12 == &no_arg) goto done; args[n++] = &ptr12;
-  if (&ptr13 == &no_arg) goto done; args[n++] = &ptr13;
-  if (&ptr14 == &no_arg) goto done; args[n++] = &ptr14;
-  if (&ptr15 == &no_arg) goto done; args[n++] = &ptr15;
-  if (&ptr16 == &no_arg) goto done; args[n++] = &ptr16;
+  if (ptr1  == no_arg) goto done; args[n++] = &ptr1;
+  if (ptr2  == no_arg) goto done; args[n++] = &ptr2;
+  if (ptr3  == no_arg) goto done; args[n++] = &ptr3;
+  if (ptr4  == no_arg) goto done; args[n++] = &ptr4;
+  if (ptr5  == no_arg) goto done; args[n++] = &ptr5;
+  if (ptr6  == no_arg) goto done; args[n++] = &ptr6;
+  if (ptr7  == no_arg) goto done; args[n++] = &ptr7;
+  if (ptr8  == no_arg) goto done; args[n++] = &ptr8;
+  if (ptr9  == no_arg) goto done; args[n++] = &ptr9;
+  if (ptr10 == no_arg) goto done; args[n++] = &ptr10;
+  if (ptr11 == no_arg) goto done; args[n++] = &ptr11;
+  if (ptr12 == no_arg) goto done; args[n++] = &ptr12;
+  if (ptr13 == no_arg) goto done; args[n++] = &ptr13;
+  if (ptr14 == no_arg) goto done; args[n++] = &ptr14;
+  if (ptr15 == no_arg) goto done; args[n++] = &ptr15;
+  if (ptr16 == no_arg) goto done; args[n++] = &ptr16;
  done:
 
   int consumed;
   int vec[kVecSize];
   return DoMatchImpl(text, UNANCHORED, &consumed, args, n, vec, kVecSize);
 }
@@ -248,28 +250,28 @@
                  const Arg& ptr13,
                  const Arg& ptr14,
                  const Arg& ptr15,
                  const Arg& ptr16) const {
   const Arg* args[kMaxArgs];
   int n = 0;
-  if (&ptr1  == &no_arg) goto done; args[n++] = &ptr1;
-  if (&ptr2  == &no_arg) goto done; args[n++] = &ptr2;
-  if (&ptr3  == &no_arg) goto done; args[n++] = &ptr3;
-  if (&ptr4  == &no_arg) goto done; args[n++] = &ptr4;
-  if (&ptr5  == &no_arg) goto done; args[n++] = &ptr5;
-  if (&ptr6  == &no_arg) goto done; args[n++] = &ptr6;
-  if (&ptr7  == &no_arg) goto done; args[n++] = &ptr7;
-  if (&ptr8  == &no_arg) goto done; args[n++] = &ptr8;
-  if (&ptr9  == &no_arg) goto done; args[n++] = &ptr9;
-  if (&ptr10 == &no_arg) goto done; args[n++] = &ptr10;
-  if (&ptr11 == &no_arg) goto done; args[n++] = &ptr11;
-  if (&ptr12 == &no_arg) goto done; args[n++] = &ptr12;
-  if (&ptr13 == &no_arg) goto done; args[n++] = &ptr13;
-  if (&ptr14 == &no_arg) goto done; args[n++] = &ptr14;
-  if (&ptr15 == &no_arg) goto done; args[n++] = &ptr15;
-  if (&ptr16 == &no_arg) goto done; args[n++] = &ptr16;
+  if (ptr1  == no_arg) goto done; args[n++] = &ptr1;
+  if (ptr2  == no_arg) goto done; args[n++] = &ptr2;
+  if (ptr3  == no_arg) goto done; args[n++] = &ptr3;
+  if (ptr4  == no_arg) goto done; args[n++] = &ptr4;
+  if (ptr5  == no_arg) goto done; args[n++] = &ptr5;
+  if (ptr6  == no_arg) goto done; args[n++] = &ptr6;
+  if (ptr7  == no_arg) goto done; args[n++] = &ptr7;
+  if (ptr8  == no_arg) goto done; args[n++] = &ptr8;
+  if (ptr9  == no_arg) goto done; args[n++] = &ptr9;
+  if (ptr10 == no_arg) goto done; args[n++] = &ptr10;
+  if (ptr11 == no_arg) goto done; args[n++] = &ptr11;
+  if (ptr12 == no_arg) goto done; args[n++] = &ptr12;
+  if (ptr13 == no_arg) goto done; args[n++] = &ptr13;
+  if (ptr14 == no_arg) goto done; args[n++] = &ptr14;
+  if (ptr15 == no_arg) goto done; args[n++] = &ptr15;
+  if (ptr16 == no_arg) goto done; args[n++] = &ptr16;
  done:
 
   int consumed;
   int vec[kVecSize];
   if (DoMatchImpl(*input, ANCHOR_START, &consumed,
                   args, n, vec, kVecSize)) {
@@ -296,28 +298,28 @@
                         const Arg& ptr13,
                         const Arg& ptr14,
                         const Arg& ptr15,
                         const Arg& ptr16) const {
   const Arg* args[kMaxArgs];
   int n = 0;
-  if (&ptr1  == &no_arg) goto done; args[n++] = &ptr1;
-  if (&ptr2  == &no_arg) goto done; args[n++] = &ptr2;
-  if (&ptr3  == &no_arg) goto done; args[n++] = &ptr3;
-  if (&ptr4  == &no_arg) goto done; args[n++] = &ptr4;
-  if (&ptr5  == &no_arg) goto done; args[n++] = &ptr5;
-  if (&ptr6  == &no_arg) goto done; args[n++] = &ptr6;
-  if (&ptr7  == &no_arg) goto done; args[n++] = &ptr7;
-  if (&ptr8  == &no_arg) goto done; args[n++] = &ptr8;
-  if (&ptr9  == &no_arg) goto done; args[n++] = &ptr9;
-  if (&ptr10 == &no_arg) goto done; args[n++] = &ptr10;
-  if (&ptr11 == &no_arg) goto done; args[n++] = &ptr11;
-  if (&ptr12 == &no_arg) goto done; args[n++] = &ptr12;
-  if (&ptr13 == &no_arg) goto done; args[n++] = &ptr13;
-  if (&ptr14 == &no_arg) goto done; args[n++] = &ptr14;
-  if (&ptr15 == &no_arg) goto done; args[n++] = &ptr15;
-  if (&ptr16 == &no_arg) goto done; args[n++] = &ptr16;
+  if (ptr1  == no_arg) goto done; args[n++] = &ptr1;
+  if (ptr2  == no_arg) goto done; args[n++] = &ptr2;
+  if (ptr3  == no_arg) goto done; args[n++] = &ptr3;
+  if (ptr4  == no_arg) goto done; args[n++] = &ptr4;
+  if (ptr5  == no_arg) goto done; args[n++] = &ptr5;
+  if (ptr6  == no_arg) goto done; args[n++] = &ptr6;
+  if (ptr7  == no_arg) goto done; args[n++] = &ptr7;
+  if (ptr8  == no_arg) goto done; args[n++] = &ptr8;
+  if (ptr9  == no_arg) goto done; args[n++] = &ptr9;
+  if (ptr10 == no_arg) goto done; args[n++] = &ptr10;
+  if (ptr11 == no_arg) goto done; args[n++] = &ptr11;
+  if (ptr12 == no_arg) goto done; args[n++] = &ptr12;
+  if (ptr13 == no_arg) goto done; args[n++] = &ptr13;
+  if (ptr14 == no_arg) goto done; args[n++] = &ptr14;
+  if (ptr15 == no_arg) goto done; args[n++] = &ptr15;
+  if (ptr16 == no_arg) goto done; args[n++] = &ptr16;
  done:
 
   int consumed;
   int vec[kVecSize];
   if (DoMatchImpl(*input, UNANCHORED, &consumed,
                   args, n, vec, kVecSize)) {
--- pcrecpp.h	2011-02-04 15:43:26.000000000 +0200
+++ pcrecpp.h	2011-05-24 13:17:14.000000000 +0200
@@ -530,82 +530,82 @@
   /***** The useful part: the matching interface *****/
 
   // This is provided so one can do pattern.ReplaceAll() just as
   // easily as ReplaceAll(pattern-text, ....)
 
   bool FullMatch(const StringPiece& text,
-                 const Arg& ptr1 = no_arg,
-                 const Arg& ptr2 = no_arg,
-                 const Arg& ptr3 = no_arg,
-                 const Arg& ptr4 = no_arg,
-                 const Arg& ptr5 = no_arg,
-                 const Arg& ptr6 = no_arg,
-                 const Arg& ptr7 = no_arg,
-                 const Arg& ptr8 = no_arg,
-                 const Arg& ptr9 = no_arg,
-                 const Arg& ptr10 = no_arg,
-                 const Arg& ptr11 = no_arg,
-                 const Arg& ptr12 = no_arg,
-                 const Arg& ptr13 = no_arg,
-                 const Arg& ptr14 = no_arg,
-                 const Arg& ptr15 = no_arg,
-                 const Arg& ptr16 = no_arg) const;
+                 const Arg& ptr1 = RE::no_arg,
+                 const Arg& ptr2 = RE::no_arg,
+                 const Arg& ptr3 = RE::no_arg,
+                 const Arg& ptr4 = RE::no_arg,
+                 const Arg& ptr5 = RE::no_arg,
+                 const Arg& ptr6 = RE::no_arg,
+                 const Arg& ptr7 = RE::no_arg,
+                 const Arg& ptr8 = RE::no_arg,
+                 const Arg& ptr9 = RE::no_arg,
+                 const Arg& ptr10 = RE::no_arg,
+                 const Arg& ptr11 = RE::no_arg,
+                 const Arg& ptr12 = RE::no_arg,
+                 const Arg& ptr13 = RE::no_arg,
+                 const Arg& ptr14 = RE::no_arg,
+                 const Arg& ptr15 = RE::no_arg,
+                 const Arg& ptr16 = RE::no_arg) const;
 
   bool PartialMatch(const StringPiece& text,
-                    const Arg& ptr1 = no_arg,
-                    const Arg& ptr2 = no_arg,
-                    const Arg& ptr3 = no_arg,
-                    const Arg& ptr4 = no_arg,
-                    const Arg& ptr5 = no_arg,
-                    const Arg& ptr6 = no_arg,
-                    const Arg& ptr7 = no_arg,
-                    const Arg& ptr8 = no_arg,
-                    const Arg& ptr9 = no_arg,
-                    const Arg& ptr10 = no_arg,
-                    const Arg& ptr11 = no_arg,
-                    const Arg& ptr12 = no_arg,
-                    const Arg& ptr13 = no_arg,
-                    const Arg& ptr14 = no_arg,
-                    const Arg& ptr15 = no_arg,
-                    const Arg& ptr16 = no_arg) const;
+                    const Arg& ptr1 = RE::no_arg,
+                    const Arg& ptr2 = RE::no_arg,
+                    const Arg& ptr3 = RE::no_arg,
+                    const Arg& ptr4 = RE::no_arg,
+                    const Arg& ptr5 = RE::no_arg,
+                    const Arg& ptr6 = RE::no_arg,
+                    const Arg& ptr7 = RE::no_arg,
+                    const Arg& ptr8 = RE::no_arg,
+                    const Arg& ptr9 = RE::no_arg,
+                    const Arg& ptr10 = RE::no_arg,
+                    const Arg& ptr11 = RE::no_arg,
+                    const Arg& ptr12 = RE::no_arg,
+                    const Arg& ptr13 = RE::no_arg,
+                    const Arg& ptr14 = RE::no_arg,
+                    const Arg& ptr15 = RE::no_arg,
+                    const Arg& ptr16 = RE::no_arg) const;
 
   bool Consume(StringPiece* input,
-               const Arg& ptr1 = no_arg,
-               const Arg& ptr2 = no_arg,
-               const Arg& ptr3 = no_arg,
-               const Arg& ptr4 = no_arg,
-               const Arg& ptr5 = no_arg,
-               const Arg& ptr6 = no_arg,
-               const Arg& ptr7 = no_arg,
-               const Arg& ptr8 = no_arg,
-               const Arg& ptr9 = no_arg,
-               const Arg& ptr10 = no_arg,
-               const Arg& ptr11 = no_arg,
-               const Arg& ptr12 = no_arg,
-               const Arg& ptr13 = no_arg,
-               const Arg& ptr14 = no_arg,
-               const Arg& ptr15 = no_arg,
-               const Arg& ptr16 = no_arg) const;
+               const Arg& ptr1 = RE::no_arg,
+               const Arg& ptr2 = RE::no_arg,
+               const Arg& ptr3 = RE::no_arg,
+               const Arg& ptr4 = RE::no_arg,
+               const Arg& ptr5 = RE::no_arg,
+               const Arg& ptr6 = RE::no_arg,
+               const Arg& ptr7 = RE::no_arg,
+               const Arg& ptr8 = RE::no_arg,
+               const Arg& ptr9 = RE::no_arg,
+               const Arg& ptr10 = RE::no_arg,
+               const Arg& ptr11 = RE::no_arg,
+               const Arg& ptr12 = RE::no_arg,
+               const Arg& ptr13 = RE::no_arg,
+               const Arg& ptr14 = RE::no_arg,
+               const Arg& ptr15 = RE::no_arg,
+               const Arg& ptr16 = RE::no_arg) const;
 
   bool FindAndConsume(StringPiece* input,
-                      const Arg& ptr1 = no_arg,
-                      const Arg& ptr2 = no_arg,
-                      const Arg& ptr3 = no_arg,
-                      const Arg& ptr4 = no_arg,
-                      const Arg& ptr5 = no_arg,
-                      const Arg& ptr6 = no_arg,
-                      const Arg& ptr7 = no_arg,
-                      const Arg& ptr8 = no_arg,
-                      const Arg& ptr9 = no_arg,
-                      const Arg& ptr10 = no_arg,
-                      const Arg& ptr11 = no_arg,
-                      const Arg& ptr12 = no_arg,
-                      const Arg& ptr13 = no_arg,
-                      const Arg& ptr14 = no_arg,
-                      const Arg& ptr15 = no_arg,
-                      const Arg& ptr16 = no_arg) const;
+                      const Arg& ptr1 = RE::no_arg,
+                      const Arg& ptr2 = RE::no_arg,
+                      const Arg& ptr3 = RE::no_arg,
+                      const Arg& ptr4 = RE::no_arg,
+                      const Arg& ptr5 = RE::no_arg,
+                      const Arg& ptr6 = RE::no_arg,
+                      const Arg& ptr7 = RE::no_arg,
+                      const Arg& ptr8 = RE::no_arg,
+                      const Arg& ptr9 = RE::no_arg,
+                      const Arg& ptr10 = RE::no_arg,
+                      const Arg& ptr11 = RE::no_arg,
+                      const Arg& ptr12 = RE::no_arg,
+                      const Arg& ptr13 = RE::no_arg,
+                      const Arg& ptr14 = RE::no_arg,
+                      const Arg& ptr15 = RE::no_arg,
+                      const Arg& ptr16 = RE::no_arg) const;
 
   bool Replace(const StringPiece& rewrite,
                string *str) const;
 
   int GlobalReplace(const StringPiece& rewrite,
                     string *str) const;
@@ -654,13 +654,14 @@
   //
   // This is a mistake, and will not work.
   static Arg no_arg;
 
  private:
 
-  void Init(const string& pattern, const RE_Options* options);
+   void Init(const char * pattern, const RE_Options* options) { Init(string(pattern), options); }
+   void Init(const string& pattern, const RE_Options* options);
   void Cleanup();
 
   // Match against "text", filling in "vec" (up to "vecsize" * 2/3) with
   // pairs of integers for the beginning and end positions of matched
   // text.  The first pair corresponds to the entire matched text;
   // subsequent pairs correspond, in order, to parentheses-captured
