diff options
author | joerg <joerg@pkgsrc.org> | 2016-03-29 22:03:52 +0000 |
---|---|---|
committer | joerg <joerg@pkgsrc.org> | 2016-03-29 22:03:52 +0000 |
commit | a5060952c42e8c6bcbde0a66ff4900ecde238440 (patch) | |
tree | ad184afa8216d738b7d41bea1ad778477f62b82a | |
parent | 3bc6789ba3cbe085cb9db6e8f3b6a06ca63cd2e4 (diff) | |
download | pkgsrc-a5060952c42e8c6bcbde0a66ff4900ecde238440.tar.gz |
Don't depend on GCC's VLA of non-POD types extensions.
-rw-r--r-- | devel/cre2/distinfo | 3 | ||||
-rw-r--r-- | devel/cre2/patches/patch-src_cre2.cpp | 110 |
2 files changed, 112 insertions, 1 deletions
diff --git a/devel/cre2/distinfo b/devel/cre2/distinfo index ee98660e6c7..1446e15fc04 100644 --- a/devel/cre2/distinfo +++ b/devel/cre2/distinfo @@ -1,6 +1,7 @@ -$NetBSD: distinfo,v 1.1 2016/02/08 05:48:07 agc Exp $ +$NetBSD: distinfo,v 1.2 2016/03/29 22:03:52 joerg Exp $ SHA1 (cre2.tar.gz) = f5e9286a1829a5387984fbe3d01fe3bfe86bc6ac RMD160 (cre2.tar.gz) = e3fab4f0b994adbcf4b7cecc45640b2023fbbfec SHA512 (cre2.tar.gz) = 3180b99bdb68079b33e78dfbe9f943737510021ad2ea2144acb1014200d0e253317e6b52d268c3dae45ddd282c90bb49053fc43de607f8ff0c7f9a9ac9aeb2b7 Size (cre2.tar.gz) = 38090 bytes +SHA1 (patch-src_cre2.cpp) = 431df2f49cc49919712e163cd97b9b41cd803f2b diff --git a/devel/cre2/patches/patch-src_cre2.cpp b/devel/cre2/patches/patch-src_cre2.cpp new file mode 100644 index 00000000000..cc19cd62884 --- /dev/null +++ b/devel/cre2/patches/patch-src_cre2.cpp @@ -0,0 +1,110 @@ +$NetBSD: patch-src_cre2.cpp,v 1.1 2016/03/29 22:03:52 joerg Exp $ + +--- src/cre2.cpp.orig 2016-03-28 17:32:57.445282715 +0000 ++++ src/cre2.cpp +@@ -17,6 +17,7 @@ + + #include <cstdlib> + #include <cstdio> ++#include <vector> + + + /** -------------------------------------------------------------------- +@@ -201,7 +202,7 @@ cre2_match (const cre2_regexp_t *re , co + cre2_string_t *match, int nmatch) + { + re2::StringPiece text_re2(text, textlen); +- re2::StringPiece match_re2[nmatch]; ++ std::vector<re2::StringPiece> match_re2(nmatch); + RE2::Anchor anchor_re2 = RE2::UNANCHORED; + bool retval; // 0 for no match + // 1 for successful matching +@@ -215,7 +216,7 @@ cre2_match (const cre2_regexp_t *re , co + case CRE2_UNANCHORED: + break; + } +- retval = TO_CONST_RE2(re)->Match(text_re2, startpos, endpos, anchor_re2, match_re2, nmatch); ++ retval = TO_CONST_RE2(re)->Match(text_re2, startpos, endpos, anchor_re2, match_re2.data(), nmatch); + if (retval) { + for (int i=0; i<nmatch; i++) { + match[i].data = match_re2[i].data(); +@@ -272,15 +273,15 @@ cre2_strings_to_ranges (const char * tex + cre2_string_t * match, int nmatch) \ + { \ + re2::StringPiece input(text->data, text->length); \ +- re2::StringPiece strv[nmatch]; \ +- RE2::Arg argv[nmatch]; \ +- RE2::Arg * args[nmatch]; \ ++ std::vector<re2::StringPiece> strv(nmatch); \ ++ std::vector<RE2::Arg> argv(nmatch); \ ++ std::vector<RE2::Arg *> args(nmatch); \ + bool retval; \ + for (int i=0; i<nmatch; ++i) { \ + argv[i] = &strv[i]; \ + args[i] = &argv[i]; \ + } \ +- retval = RE2::FUN(input, pattern, args, nmatch); \ ++ retval = RE2::FUN(input, pattern, args.data(), nmatch); \ + if (retval) { \ + for (int i=0; i<nmatch; ++i) { \ + match[i].data = strv[i].data(); \ +@@ -301,15 +302,15 @@ DEFINE_MATCH_ZSTRING_FUN(cre2_partial_ma + cre2_string_t * match, int nmatch) \ + { \ + re2::StringPiece input(text->data, text->length); \ +- re2::StringPiece strv[nmatch]; \ +- RE2::Arg argv[nmatch]; \ +- RE2::Arg * args[nmatch]; \ ++ std::vector<re2::StringPiece> strv(nmatch); \ ++ std::vector<RE2::Arg> argv(nmatch); \ ++ std::vector<RE2::Arg *> args(nmatch); \ + bool retval; \ + for (int i=0; i<nmatch; ++i) { \ + argv[i] = &strv[i]; \ + args[i] = &argv[i]; \ + } \ +- retval = RE2::FUN(&input, pattern, args, nmatch); \ ++ retval = RE2::FUN(&input, pattern, args.data(), nmatch); \ + if (retval) { \ + text->data = input.data(); \ + text->length = input.length(); \ +@@ -335,15 +336,15 @@ DEFINE_MATCH_ZSTRING_FUN2(cre2_find_and_ + cre2_string_t * match, int nmatch) \ + { \ + re2::StringPiece input(text->data, text->length); \ +- re2::StringPiece strv[nmatch]; \ +- RE2::Arg argv[nmatch]; \ +- RE2::Arg * args[nmatch]; \ ++ std::vector<re2::StringPiece> strv(nmatch); \ ++ std::vector<RE2::Arg> argv(nmatch); \ ++ std::vector<RE2::Arg *> args(nmatch); \ + bool retval; \ + for (int i=0; i<nmatch; ++i) { \ + argv[i] = &strv[i]; \ + args[i] = &argv[i]; \ + } \ +- retval = RE2::FUN(input, *TO_RE2(rex), args, nmatch); \ ++ retval = RE2::FUN(input, *TO_RE2(rex), args.data(), nmatch); \ + if (retval) { \ + for (int i=0; i<nmatch; ++i) { \ + match[i].data = strv[i].data(); \ +@@ -364,15 +365,15 @@ DEFINE_MATCH_REX_FUN(cre2_partial_match_ + cre2_string_t * match, int nmatch) \ + { \ + re2::StringPiece input(text->data, text->length); \ +- re2::StringPiece strv[nmatch]; \ +- RE2::Arg argv[nmatch]; \ +- RE2::Arg * args[nmatch]; \ ++ std::vector<re2::StringPiece> strv(nmatch); \ ++ std::vector<RE2::Arg> argv(nmatch); \ ++ std::vector<RE2::Arg *> args(nmatch); \ + bool retval; \ + for (int i=0; i<nmatch; ++i) { \ + argv[i] = &strv[i]; \ + args[i] = &argv[i]; \ + } \ +- retval = RE2::FUN(&input, *TO_RE2(rex), args, nmatch); \ ++ retval = RE2::FUN(&input, *TO_RE2(rex), args.data(), nmatch); \ + if (retval) { \ + text->data = input.data(); \ + text->length = input.length(); \ |