Hello community, here is the log from the commit of package fmt for openSUSE:Factory checked in at 2020-11-29 12:24:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fmt (Old) and /work/SRC/openSUSE:Factory/.fmt.new.5913 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fmt" Sun Nov 29 12:24:57 2020 rev:15 rq:850758 version:7.1.3 Changes: -------- --- /work/SRC/openSUSE:Factory/fmt/fmt.changes 2020-11-06 23:44:31.299330277 +0100 +++ /work/SRC/openSUSE:Factory/.fmt.new.5913/fmt.changes 2020-11-29 12:25:21.165815538 +0100 @@ -1,0 +2,9 @@ +Wed Nov 25 14:55:58 UTC 2020 - [email protected] + +- Update to version 7.1.3 + * Fixed handling of buffer boundaries in format_to_n + * Fixed linkage errors when linking with a shared library + * Reintroduced ostream support to range formatters + * Worked around an issue with mixing std versions in gcc + +------------------------------------------------------------------- Old: ---- fmt-7.1.2.tar.gz New: ---- fmt-7.1.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fmt.spec ++++++ --- /var/tmp/diff_new_pack.1AmGxA/_old 2020-11-29 12:25:22.081816465 +0100 +++ /var/tmp/diff_new_pack.1AmGxA/_new 2020-11-29 12:25:22.081816465 +0100 @@ -18,7 +18,7 @@ %define sover 7 Name: fmt -Version: 7.1.2 +Version: 7.1.3 Release: 0 Summary: A formatting library for C++ License: MIT ++++++ fmt-7.1.2.tar.gz -> fmt-7.1.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/.github/workflows/windows.yml new/fmt-7.1.3/.github/workflows/windows.yml --- old/fmt-7.1.2/.github/workflows/windows.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/fmt-7.1.3/.github/workflows/windows.yml 2020-11-25 02:15:02.000000000 +0100 @@ -0,0 +1,44 @@ +name: windows + +on: [push, pull_request] + +jobs: + build: + runs-on: ${{matrix.os}} + strategy: + matrix: + # windows-2016 and windows-2019 have MSVC 2017 and 2019 installed + # respectively: https://github.com/actions/virtual-environments. + os: [windows-2016, windows-2019] + platform: [Win32, x64] + build_type: [Debug, Release] + include: + - os: windows-2016 + platform: Win32 + build_type: Debug + shared: -DBUILD_SHARED_LIBS=ON + exclude: + - os: windows-2016 + platform: Win32 + + steps: + - uses: actions/checkout@v2 + + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Configure + # Use a bash shell for $GITHUB_WORKSPACE. + shell: bash + working-directory: ${{runner.workspace}}/build + run: | + cmake -DCMAKE_BUILD_TYPE=${{matrix.build_type}} ${{matrix.shared}} \ + -A ${{matrix.platform}} $GITHUB_WORKSPACE + + - name: Build + working-directory: ${{runner.workspace}}/build + run: cmake --build . --config ${{matrix.build_type}} + + - name: Test + working-directory: ${{runner.workspace}}/build + run: ctest -C ${{matrix.build_type}} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/ChangeLog.rst new/fmt-7.1.3/ChangeLog.rst --- old/fmt-7.1.2/ChangeLog.rst 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/ChangeLog.rst 2020-11-25 02:15:02.000000000 +0100 @@ -1,3 +1,19 @@ +7.1.3 - 2020-11-24 +------------------ + +* Fixed handling of buffer boundaries in ``format_to_n`` + (`#1996 <https://github.com/fmtlib/fmt/issues/1996>`_, + `#2029 <https://github.com/fmtlib/fmt/issues/2029>`_). + +* Fixed linkage errors when linking with a shared library + (`#2011 <https://github.com/fmtlib/fmt/issues/2011>`_). + +* Reintroduced ostream support to range formatters + (`#2014 <https://github.com/fmtlib/fmt/issues/2014>`_). + +* Worked around an issue with mixing std versions in gcc + (`#2017 <https://github.com/fmtlib/fmt/issues/2017>`_). + 7.1.2 - 2020-11-04 ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/doc/build.py new/fmt-7.1.3/doc/build.py --- old/fmt-7.1.2/doc/build.py 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/doc/build.py 2020-11-25 02:15:02.000000000 +0100 @@ -6,7 +6,7 @@ from subprocess import check_call, check_output, CalledProcessError, Popen, PIPE from distutils.version import LooseVersion -versions = ['1.0.0', '1.1.0', '2.0.0', '3.0.2', '4.0.0', '4.1.0', '5.0.0', '5.1.0', '5.2.0', '5.2.1', '5.3.0', '6.0.0', '6.1.0', '6.1.1', '6.1.2', '6.2.0', '6.2.1', '7.0.0', '7.0.1', '7.0.2', '7.0.3', '7.1.0', '7.1.1', '7.1.2'] +versions = ['1.0.0', '1.1.0', '2.0.0', '3.0.2', '4.0.0', '4.1.0', '5.0.0', '5.1.0', '5.2.0', '5.2.1', '5.3.0', '6.0.0', '6.1.0', '6.1.1', '6.1.2', '6.2.0', '6.2.1', '7.0.0', '7.0.1', '7.0.2', '7.0.3', '7.1.0', '7.1.1', '7.1.2', '7.1.3'] def pip_install(package, commit=None, **kwargs): "Install package using pip." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/include/fmt/core.h new/fmt-7.1.3/include/fmt/core.h --- old/fmt-7.1.2/include/fmt/core.h 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/include/fmt/core.h 2020-11-25 02:15:02.000000000 +0100 @@ -18,7 +18,7 @@ #include <vector> // The fmt library version in the form major * 10000 + minor * 100 + patch. -#define FMT_VERSION 70102 +#define FMT_VERSION 70103 #ifdef __clang__ # define FMT_CLANG_VERSION (__clang_major__ * 100 + __clang_minor__) @@ -761,7 +761,7 @@ explicit fixed_buffer_traits(size_t limit) : limit_(limit) {} size_t count() const { return count_; } size_t limit(size_t size) { - size_t n = limit_ - count_; + size_t n = limit_ > count_ ? limit_ - count_ : 0; count_ += size; return size < n ? size : n; } @@ -784,7 +784,7 @@ public: explicit iterator_buffer(OutputIt out, size_t n = buffer_size) : Traits(n), - buffer<T>(data_, 0, n < size_t(buffer_size) ? n : size_t(buffer_size)), + buffer<T>(data_, 0, buffer_size), out_(out) {} ~iterator_buffer() { flush(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/include/fmt/format.h new/fmt-7.1.3/include/fmt/format.h --- old/fmt-7.1.2/include/fmt/format.h 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/include/fmt/format.h 2020-11-25 02:15:02.000000000 +0100 @@ -1145,8 +1145,8 @@ template <typename Char> struct fill_t { private: enum { max_size = 4 }; - Char data_[max_size]; - unsigned char size_; + Char data_[max_size] = {Char(' '), Char(0), Char(0), Char(0)}; + unsigned char size_ = 1; public: FMT_CONSTEXPR void operator=(basic_string_view<Char> s) { @@ -1166,13 +1166,6 @@ FMT_CONSTEXPR const Char& operator[](size_t index) const { return data_[index]; } - - static FMT_CONSTEXPR fill_t<Char> make() { - auto fill = fill_t<Char>(); - fill[0] = Char(' '); - fill.size_ = 1; - return fill; - } }; } // namespace detail @@ -1204,8 +1197,7 @@ type(0), align(align::none), sign(sign::none), - alt(false), - fill(detail::fill_t<Char>::make()) {} + alt(false) {} }; using format_specs = basic_format_specs<char>; @@ -1274,7 +1266,7 @@ int exponent; }; -template <typename T> decimal_fp<T> to_decimal(T x) FMT_NOEXCEPT; +template <typename T> FMT_API decimal_fp<T> to_decimal(T x) FMT_NOEXCEPT; } // namespace dragonbox template <typename T> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/include/fmt/os.h new/fmt-7.1.3/include/fmt/os.h --- old/fmt-7.1.2/include/fmt/os.h 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/include/fmt/os.h 2020-11-25 02:15:02.000000000 +0100 @@ -388,7 +388,7 @@ clear(); } - void grow(size_t) final; + FMT_API void grow(size_t) override final; ostream(cstring_view path, const detail::ostream_params& params) : file_(path, params.oflag) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/include/fmt/ranges.h new/fmt-7.1.3/include/fmt/ranges.h --- old/fmt-7.1.2/include/fmt/ranges.h 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/include/fmt/ranges.h 2020-11-25 02:15:02.000000000 +0100 @@ -254,7 +254,10 @@ enable_if_t<fmt::is_range<T, Char>::value // Workaround a bug in MSVC 2017 and earlier. #if !FMT_MSC_VER || FMT_MSC_VER >= 1927 - && has_formatter<detail::value_type<T>, format_context>::value + && + (has_formatter<detail::value_type<T>, format_context>::value || + detail::has_fallback_formatter<detail::value_type<T>, + format_context>::value) #endif >> { formatting_range<Char> formatting; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/src/format.cc new/fmt-7.1.3/src/format.cc --- old/fmt-7.1.2/src/format.cc 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/src/format.cc 2020-11-25 02:15:02.000000000 +0100 @@ -24,9 +24,9 @@ : snprintf_ptr(buf, size, format, precision, value); } -template dragonbox::decimal_fp<float> dragonbox::to_decimal(float x) +template FMT_API dragonbox::decimal_fp<float> dragonbox::to_decimal(float x) FMT_NOEXCEPT; -template dragonbox::decimal_fp<double> dragonbox::to_decimal(double x) +template FMT_API dragonbox::decimal_fp<double> dragonbox::to_decimal(double x) FMT_NOEXCEPT; // DEPRECATED! This function exists for ABI compatibility. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/src/os.cc new/fmt-7.1.3/src/os.cc --- old/fmt-7.1.2/src/os.cc 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/src/os.cc 2020-11-25 02:15:02.000000000 +0100 @@ -315,7 +315,7 @@ # endif } -void ostream::grow(size_t) { +FMT_API void ostream::grow(size_t) { if (this->size() == this->capacity()) flush(); } #endif // FMT_USE_FCNTL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/test/format-test.cc new/fmt-7.1.3/test/format-test.cc --- old/fmt-7.1.2/test/format-test.cc 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/test/format-test.cc 2020-11-25 02:15:02.000000000 +0100 @@ -1945,10 +1945,12 @@ EXPECT_EQ(5u, result.size); EXPECT_EQ(buffer + 3, result.out); EXPECT_EQ("123x", fmt::string_view(buffer, 4)); + result = fmt::format_to_n(buffer, 3, "{:s}", "foobar"); EXPECT_EQ(6u, result.size); EXPECT_EQ(buffer + 3, result.out); EXPECT_EQ("foox", fmt::string_view(buffer, 4)); + buffer[0] = 'x'; buffer[1] = 'x'; buffer[2] = 'x'; @@ -1956,10 +1958,20 @@ EXPECT_EQ(1u, result.size); EXPECT_EQ(buffer + 1, result.out); EXPECT_EQ("Axxx", fmt::string_view(buffer, 4)); + result = fmt::format_to_n(buffer, 3, "{}{} ", 'B', 'C'); EXPECT_EQ(3u, result.size); EXPECT_EQ(buffer + 3, result.out); EXPECT_EQ("BC x", fmt::string_view(buffer, 4)); + + result = fmt::format_to_n(buffer, 4, "{}", "ABCDE"); + EXPECT_EQ(5u, result.size); + EXPECT_EQ("ABCD", fmt::string_view(buffer, 4)); + + buffer[3] = 'x'; + result = fmt::format_to_n(buffer, 3, "{}", std::string(1000, '*')); + EXPECT_EQ(1000u, result.size); + EXPECT_EQ("***x", fmt::string_view(buffer, 4)); } TEST(FormatTest, WideFormatToN) { @@ -2416,11 +2428,13 @@ #endif } +#if __cplusplus > 201103L struct custom_char { int value; custom_char() = default; - template <typename T> custom_char(T val) : value(static_cast<int>(val)) {} + template <typename T> + constexpr custom_char(T val) : value(static_cast<int>(val)) {} operator int() const { return value; } }; @@ -2437,6 +2451,7 @@ EXPECT_EQ(result.size(), 1); EXPECT_EQ(result[0], custom_char('x')); } +#endif // Convert a char8_t string to std::string. Otherwise GTest will insist on // inserting `char8_t` NTBS into a `char` stream which is disabled by P1423. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fmt-7.1.2/test/ostream-test.cc new/fmt-7.1.3/test/ostream-test.cc --- old/fmt-7.1.2/test/ostream-test.cc 2020-11-04 15:50:09.000000000 +0100 +++ new/fmt-7.1.3/test/ostream-test.cc 2020-11-25 02:15:02.000000000 +0100 @@ -5,7 +5,6 @@ // // For the license information refer to format.h. -#define FMT_STRING_ALIAS 1 #include "fmt/format.h" struct test {}; @@ -24,6 +23,7 @@ #include <sstream> #include "fmt/ostream.h" +#include "fmt/ranges.h" #include "gmock.h" #include "gtest-extra.h" #include "util.h" @@ -323,3 +323,8 @@ TEST(OStreamTest, ToString) { EXPECT_EQ("ABC", fmt::to_string(fmt_test::ABC())); } + +TEST(OStreamTest, Range) { + auto strs = std::vector<TestString>{TestString("foo"), TestString("bar")}; + EXPECT_EQ("{foo, bar}", format("{}", strs)); +} \ No newline at end of file _______________________________________________ openSUSE Commits mailing list -- [email protected] To unsubscribe, email [email protected] List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette List Archives: https://lists.opensuse.org/archives/list/[email protected]
