Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package re2 for openSUSE:Factory checked in at 2023-09-02 22:07:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/re2 (Old) and /work/SRC/openSUSE:Factory/.re2.new.1766 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "re2" Sat Sep 2 22:07:07 2023 rev:55 rq:1108487 version:MACRO Changes: -------- --- /work/SRC/openSUSE:Factory/re2/re2.changes 2023-08-02 16:48:23.348600398 +0200 +++ /work/SRC/openSUSE:Factory/.re2.new.1766/re2.changes 2023-09-02 22:07:21.394628056 +0200 @@ -1,0 +2,6 @@ +Fri Sep 1 12:53:42 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de> + +- update to 2023-09-01: + * Add support for (?<name>expr) + +------------------------------------------------------------------- Old: ---- re2-2023-08-01.tar.gz New: ---- re2-2023-09-01.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ re2.spec ++++++ --- /var/tmp/diff_new_pack.JXRYYr/_old 2023-09-02 22:07:22.470666506 +0200 +++ /var/tmp/diff_new_pack.JXRYYr/_new 2023-09-02 22:07:22.470666506 +0200 @@ -16,7 +16,7 @@ # -%global longver 2023-08-01 +%global longver 2023-09-01 %global shortver %(echo %{longver}|sed 's|-||g') %define libname libre2-11 Name: re2 ++++++ re2-2023-08-01.tar.gz -> re2-2023-09-01.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/.bazelrc new/re2-2023-09-01/.bazelrc --- old/re2-2023-08-01/.bazelrc 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/.bazelrc 2023-08-31 12:55:02.000000000 +0200 @@ -2,6 +2,9 @@ # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. +# Enable Bzlmod. This will be the default eventually... +build --enable_bzlmod + # Abseil requires C++14 at minimum. # Previously, the flag was set via `BAZEL_CXXOPTS`. On macOS, we also had to set # `BAZEL_USE_CPP_ONLY_TOOLCHAIN` since Bazel wouldn't respect the former without @@ -12,8 +15,5 @@ build:macos --cxxopt=-std=c++14 build:windows --cxxopt=/std:c++14 -# Print command lines for build commands. -build --subcommands=pretty_print - # Print test logs for failed tests. test --test_output=errors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/BUILD.bazel new/re2-2023-09-01/BUILD.bazel --- old/re2-2023-08-01/BUILD.bazel 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/BUILD.bazel 2023-08-31 12:55:02.000000000 +0200 @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -# Bazel (http://bazel.io/) BUILD file for RE2. +# Bazel (http://bazel.build/) BUILD file for RE2. licenses(["notice"]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/MODULE.bazel new/re2-2023-09-01/MODULE.bazel --- old/re2-2023-08-01/MODULE.bazel 1970-01-01 01:00:00.000000000 +0100 +++ new/re2-2023-09-01/MODULE.bazel 2023-08-31 12:55:02.000000000 +0200 @@ -0,0 +1,24 @@ +# Copyright 2009 The RE2 Authors. All Rights Reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# Bazel (http://bazel.build/) MODULE file for RE2. + +module( + name = "re2", + version = "2023-09-01", + compatibility_level = 1, +) + +bazel_dep(name = "platforms", version = "0.0.7") +bazel_dep(name = "rules_cc", version = "0.0.8") +bazel_dep(name = "abseil-cpp", version = "20230802.0", repo_name = "com_google_absl") +bazel_dep(name = "google_benchmark", version = "1.8.2", repo_name = "com_github_google_benchmark") +bazel_dep(name = "googletest", version = "1.14.0", repo_name = "com_google_googletest") +bazel_dep(name = "rules_python", version = "0.25.0") +bazel_dep(name = "abseil-py", version = "1.4.0", repo_name = "io_abseil_py") +bazel_dep(name = "pybind11_bazel", version = "2.11.1") + +python_configure = use_extension("@pybind11_bazel//:python_configure.bzl", "extension") +python_configure.toolchain(python_version = "3") # ignored when non-root module +use_repo(python_configure, "local_config_python", "pybind11") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/Makefile new/re2-2023-09-01/Makefile --- old/re2-2023-08-01/Makefile 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/Makefile 2023-08-31 12:55:02.000000000 +0200 @@ -20,6 +20,7 @@ CCABSL=$(shell pkg-config $(ABSL_DEPS) --cflags) # GCC barfs on `-Wl` whereas Clang doesn't mind, but it's unclear what # causes it to manifest on Ubuntu 22.04 LTS, so filter it out for now. +# Similar is needed for `static-testinstall` and `shared-testinstall`. LDABSL=$(shell pkg-config $(ABSL_DEPS) --libs | sed -e 's/-Wl / /g') # To build against ICU for full Unicode properties support, @@ -358,7 +359,8 @@ @cp testinstall.cc obj/static-testinstall.cc (cd obj && export PKG_CONFIG_PATH=$(DESTDIR)$(libdir)/pkgconfig; \ $(CXX) static-testinstall.cc -o static-testinstall $(CXXFLAGS) $(LDFLAGS) \ - $$(pkg-config re2 --cflags --libs | sed -e 's/-lre2/-l:libre2.a/')) + $$(pkg-config re2 --cflags) \ + $$(pkg-config re2 --libs | sed -e 's/-Wl / /g' | sed -e 's/-lre2/-l:libre2.a/')) obj/static-testinstall endif @@ -368,7 +370,8 @@ @cp testinstall.cc obj/shared-testinstall.cc (cd obj && export PKG_CONFIG_PATH=$(DESTDIR)$(libdir)/pkgconfig; \ $(CXX) shared-testinstall.cc -o shared-testinstall $(CXXFLAGS) $(LDFLAGS) \ - $$(pkg-config re2 --cflags --libs)) + $$(pkg-config re2 --cflags) \ + $$(pkg-config re2 --libs | sed -e 's/-Wl / /g')) ifeq ($(shell uname),Darwin) DYLD_LIBRARY_PATH="$(DESTDIR)$(libdir):$(DYLD_LIBRARY_PATH)" obj/shared-testinstall else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/WORKSPACE.bazel new/re2-2023-09-01/WORKSPACE.bazel --- old/re2-2023-08-01/WORKSPACE.bazel 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/WORKSPACE.bazel 2023-08-31 12:55:02.000000000 +0200 @@ -2,61 +2,6 @@ # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -# Bazel (http://bazel.io/) WORKSPACE file for RE2. +# Bazel (http://bazel.build/) WORKSPACE file for RE2. workspace(name = "com_googlesource_code_re2") - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -http_archive( - name = "com_google_absl", - strip_prefix = "abseil-cpp-master", - urls = ["https://github.com/abseil/abseil-cpp/archive/master.zip"], -) - -http_archive( - name = "bazel_skylib", - strip_prefix = "bazel-skylib-main", - urls = ["https://github.com/bazelbuild/bazel-skylib/archive/main.zip"], -) - -http_archive( - name = "com_github_google_benchmark", - strip_prefix = "benchmark-main", - urls = ["https://github.com/google/benchmark/archive/main.zip"], -) - -http_archive( - name = "com_google_googletest", - strip_prefix = "googletest-main", - urls = ["https://github.com/google/googletest/archive/main.zip"], -) - -http_archive( - name = "rules_python", - strip_prefix = "rules_python-main", - urls = ["https://github.com/bazelbuild/rules_python/archive/main.zip"], -) - -http_archive( - name = "io_abseil_py", - strip_prefix = "abseil-py-main", - urls = ["https://github.com/abseil/abseil-py/archive/main.zip"], -) - -http_archive( - name = "pybind11_bazel", - strip_prefix = "pybind11_bazel-master", - urls = ["https://github.com/pybind/pybind11_bazel/archive/master.zip"], -) - -http_archive( - name = "pybind11", - build_file = "@pybind11_bazel//:pybind11.BUILD", - strip_prefix = "pybind11-master", - urls = ["https://github.com/pybind/pybind11/archive/master.zip"], -) - -load("@pybind11_bazel//:python_configure.bzl", "python_configure") - -python_configure(name = "local_config_python") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/WORKSPACE.bzlmod new/re2-2023-09-01/WORKSPACE.bzlmod --- old/re2-2023-08-01/WORKSPACE.bzlmod 1970-01-01 01:00:00.000000000 +0100 +++ new/re2-2023-09-01/WORKSPACE.bzlmod 2023-08-31 12:55:02.000000000 +0200 @@ -0,0 +1,7 @@ +# Copyright 2009 The RE2 Authors. All Rights Reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# Bazel (http://bazel.build/) WORKSPACE file for RE2. + +workspace(name = "com_googlesource_code_re2") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/app/BUILD.bazel new/re2-2023-09-01/app/BUILD.bazel --- old/re2-2023-08-01/app/BUILD.bazel 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/app/BUILD.bazel 2023-08-31 12:55:02.000000000 +0200 @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -# Bazel (http://bazel.io/) BUILD file for RE2 app. +# Bazel (http://bazel.build/) BUILD file for RE2 app. cc_binary( name = "_re2.js", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/doc/syntax.html new/re2-2023-09-01/doc/syntax.html --- old/re2-2023-08-01/doc/syntax.html 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/doc/syntax.html 2023-08-31 12:55:02.000000000 +0200 @@ -62,7 +62,7 @@ <tr><td colspan=2><b>Grouping:</b></td></tr> <tr><td><code>(re)</code></td><td>numbered capturing group (submatch)</td></tr> <tr><td><code>(?P<name>re)</code></td><td>named & numbered capturing group (submatch)</td></tr> -<tr><td><code><font color=#808080>(?<name>re)</font></code></td><td>named & numbered capturing group (submatch) </td></tr> +<tr><td><code>(?<name>re)</code></td><td>named & numbered capturing group (submatch)</td></tr> <tr><td><code><font color=#808080>(?'name're)</font></code></td><td>named & numbered capturing group (submatch) </td></tr> <tr><td><code>(?:re)</code></td><td>non-capturing group</td></tr> <tr><td><code>(?flags)</code></td><td>set flags within current group; non-capturing</td></tr> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/doc/syntax.txt new/re2-2023-09-01/doc/syntax.txt --- old/re2-2023-08-01/doc/syntax.txt 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/doc/syntax.txt 2023-08-31 12:55:02.000000000 +0200 @@ -51,7 +51,7 @@ Grouping: (re) numbered capturing group (submatch) (?P<name>re) named & numbered capturing group (submatch) -(?<name>re) named & numbered capturing group (submatch) NOT SUPPORTED +(?<name>re) named & numbered capturing group (submatch) (?'name're) named & numbered capturing group (submatch) NOT SUPPORTED (?:re) non-capturing group (?flags) set flags within current group; non-capturing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/python/BUILD.bazel new/re2-2023-09-01/python/BUILD.bazel --- old/re2-2023-08-01/python/BUILD.bazel 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/python/BUILD.bazel 2023-08-31 12:55:02.000000000 +0200 @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -# Bazel (http://bazel.io/) BUILD file for RE2 Python. +# Bazel (http://bazel.build/) BUILD file for RE2 Python. load("@pybind11_bazel//:build_defs.bzl", "pybind_extension") load("@rules_python//python:defs.bzl", "py_library", "py_test") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/re2/dfa.cc new/re2-2023-09-01/re2/dfa.cc --- old/re2-2023-08-01/re2/dfa.cc 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/re2/dfa.cc 2023-08-31 12:55:02.000000000 +0200 @@ -134,15 +134,8 @@ // into this state, along with kFlagMatch if this // is a matching state. -// Work around the bug affecting flexible array members in GCC 6.x (for x >= 1). -// (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70932) -#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ == 6 && __GNUC_MINOR__ >= 1 - std::atomic<State*> next_[0]; // Outgoing arrows from State, - // one per input byte class -#else std::atomic<State*> next_[]; // Outgoing arrows from State, // one per input byte class -#endif }; enum { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/re2/parse.cc new/re2-2023-09-01/re2/parse.cc --- old/re2-2023-08-01/re2/parse.cc 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/re2/parse.cc 2023-08-31 12:55:02.000000000 +0200 @@ -2059,8 +2059,6 @@ return false; } - t.remove_prefix(2); // "(?" - // Check for named captures, first introduced in Python's regexp library. // As usual, there are three slightly different syntaxes: // @@ -2074,22 +2072,23 @@ // support all three as well. EcmaScript 4 uses only the Python form. // // In both the open source world (via Code Search) and the - // Google source tree, (?P<expr>name) is the dominant form, - // so that's the one we implement. One is enough. - if (t.size() > 2 && t[0] == 'P' && t[1] == '<') { + // Google source tree, (?P<name>expr) and (?<name>expr) are the + // dominant forms of named captures and both are supported. + if ((t.size() > 4 && t[2] == 'P' && t[3] == '<') || + (t.size() > 3 && t[2] == '<')) { // Pull out name. - size_t end = t.find('>', 2); + size_t begin = t[2] == 'P' ? 4 : 3; + size_t end = t.find('>', begin); if (end == absl::string_view::npos) { - if (!IsValidUTF8(*s, status_)) + if (!IsValidUTF8(t, status_)) return false; status_->set_code(kRegexpBadNamedCapture); - status_->set_error_arg(*s); + status_->set_error_arg(t); return false; } - // t is "P<name>...", t[end] == '>' - absl::string_view capture(t.data()-2, end+3); // "(?P<name>" - absl::string_view name(t.data()+2, end-2); // "name" + absl::string_view capture(t.data(), end+1); + absl::string_view name(t.data()+begin, end-begin); if (!IsValidUTF8(name, status_)) return false; if (!IsValidCaptureName(name)) { @@ -2103,11 +2102,12 @@ return false; } - s->remove_prefix( - static_cast<size_t>(capture.data() + capture.size() - s->data())); + s->remove_prefix(capture.size()); return true; } + t.remove_prefix(2); // "(?" + bool negated = false; bool sawflags = false; int nflags = flags_; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/re2/re2.h new/re2-2023-09-01/re2/re2.h --- old/re2-2023-08-01/re2/re2.h 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/re2/re2.h 2023-08-31 12:55:02.000000000 +0200 @@ -963,7 +963,7 @@ } // Silence warnings about missing initializers for members of LazyRE2. -#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ >= 6 +#if !defined(__clang__) && defined(__GNUC__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/re2/regexp.cc new/re2-2023-09-01/re2/regexp.cc --- old/re2-2023-08-01/re2/regexp.cc 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/re2/regexp.cc 2023-08-31 12:55:02.000000000 +0200 @@ -400,7 +400,13 @@ a->max() == b->max(); case kRegexpCapture: - return a->cap() == b->cap() && a->name() == b->name(); + if (a->name() == NULL || b->name() == NULL) { + // One pointer is null, so the other pointer should also be null. + return a->cap() == b->cap() && a->name() == b->name(); + } else { + // Neither pointer is null, so compare the pointees for equality. + return a->cap() == b->cap() && *a->name() == *b->name(); + } case kRegexpHaveMatch: return a->match_id() == b->match_id(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/re2/testing/parse_test.cc new/re2-2023-09-01/re2/testing/parse_test.cc --- old/re2-2023-08-01/re2/testing/parse_test.cc 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/re2/testing/parse_test.cc 2023-08-31 12:55:02.000000000 +0200 @@ -166,6 +166,8 @@ // Test named captures { "(?P<name>a)", "cap{name:lit{a}}" }, { "(?P<中文>a)", "cap{中文:lit{a}}" }, + { "(?<name>a)", "cap{name:lit{a}}" }, + { "(?<中文>a)", "cap{中文:lit{a}}" }, // Case-folded literals { "[Aa]", "litfold{a}" }, @@ -396,6 +398,11 @@ "(?P<name", "(?P<x y>a)", "(?P<>a)", + "(?<name>a", + "(?<name>", + "(?<name", + "(?<x y>a)", + "(?<>a)", "[a-Z]", "(?i)[a-Z]", "a{100000}", @@ -416,6 +423,7 @@ "\\Q\\\\\\\\\\E", "(?:a)", "(?P<name>a)", + "(?<name>a)", }; // Valid in POSIX, bad in Perl. @@ -505,6 +513,16 @@ EXPECT_TRUE(re == NULL); EXPECT_EQ(status.code(), kRegexpBadNamedCapture); EXPECT_EQ(status.error_arg(), "(?P<space bar>"); + + re = Regexp::Parse("test(?<name", Regexp::LikePerl, &status); + EXPECT_TRUE(re == NULL); + EXPECT_EQ(status.code(), kRegexpBadNamedCapture); + EXPECT_EQ(status.error_arg(), "(?<name"); + + re = Regexp::Parse("test(?<space bar>z)", Regexp::LikePerl, &status); + EXPECT_TRUE(re == NULL); + EXPECT_EQ(status.code(), kRegexpBadNamedCapture); + EXPECT_EQ(status.error_arg(), "(?<space bar>"); } } // namespace re2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/re2-2023-08-01/util/pcre.cc new/re2-2023-09-01/util/pcre.cc --- old/re2-2023-08-01/util/pcre.cc 2023-07-28 21:03:25.000000000 +0200 +++ new/re2-2023-09-01/util/pcre.cc 2023-08-31 12:55:02.000000000 +0200 @@ -21,7 +21,7 @@ #include "util/pcre.h" // Silence warnings about the wacky formatting in the operator() functions. -#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ >= 6 +#if !defined(__clang__) && defined(__GNUC__) #pragma GCC diagnostic ignored "-Wmisleading-indentation" #endif
participants (1)
-
Source-Sync