Commit Graph
3112 Commits
Author SHA1 Message Date
Victor Zverovich 98cbb6a43c Fix ABI compatiblity issue 2022-01-05 08:08:38 -08:00
Vladislav Shchapov 214cf13f17 Fix endianness bug in write_digit2_separated (#2699)
* Fix endianness bug in write_digit2_separated

* Move endianness check to compile time if it possible

* Turn 8 into a constant
2022-01-04 14:23:42 -08:00
Julian Rüth 17a5c808da Restore FMT_API on error_handler::on_error() (#2696)
this fixes a breaking ABI change that was introduce in the upgrade from
8.0.1 to 8.1.0.

Fixes #2695.
2022-01-04 10:53:44 -08:00
Richard Berger fc1783fcc6 Avoid undefined symbols with mingw-w64 (#2692)
Fixes issue #2691
2022-01-03 15:29:29 -08:00
Victor Zverovich 1b193e7b37 Deprecate more 2022-01-03 11:13:09 -08:00
Victor Zverovich 64dc8fbada Bump version 2022-01-02 08:34:01 -08:00
Victor Zverovich 89c6ed12bf Clarify in comments (for now) deprecated map functions 2022-01-01 09:29:50 -08:00
Björn Schäpers e462da828d Add some noexcept (#2684)
I got warnings from -Wnoexcept, fixed them.
2022-01-01 08:44:00 -08:00
Victor Zverovich bb69201578 Fix tuple join 2021-12-29 14:46:45 -08:00
Victor Zverovich 4fac7daaef Cleanup bit_cast 2021-12-29 12:14:51 -08:00
Victor Zverovich 9c0c1bcdbd Simplify tuple formatting 2021-12-29 08:03:12 -08:00
Victor Zverovich 796662a612 Escape range items convertible to std::string_view 2021-12-27 09:38:06 -08:00
Vladislav Shchapov 3bbf2c673c Fix throw with exceptions disabled 2021-12-26 16:28:41 -08:00
Victor Zverovich eab2ea9fc2 Replace an assert with an exception 2021-12-26 07:05:45 -08:00
Vladislav Shchapov 04111dd1e4 Fix issue #2670 (#2671) 2021-12-23 12:38:48 -08:00
lucpelletier 7812813a32 Don't explicitly delete copy ctor of dynamic_format_arg_store (#2664)
* Don't explicitly delete copy ctor of dynamic_format_arg_store

Explicitly deleting the copy ctor causes the move constructor to not be
implicitly generated. This behaviour is different than what was in
v8.0.1 and causes code that relied on the move ctor of
dynamic_format_arg_store to break.

* Add test for dynamic_format_arg_store's move ctor

* include <memory>, don't use make_unique
2021-12-23 11:34:16 -08:00
Victor Zverovich 784e2a7b42 Fix an overflow when formatting very large durations 2021-12-23 10:34:32 -08:00
Stefan Weil fc2a376d8e Remove two expressions which had no effect (reported by LGTM)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-12-22 16:29:16 -08:00
Victor Zverovich eaddd1e3cd Fix handling of byte 2021-12-19 06:46:24 -08:00
Victor Zverovich 2d44577586 Try fixing byte regression 2021-12-18 08:51:21 -08:00
Alexey Ochapov e46392ea2c deprecate _format UDL in code using FMT_DEPRECATED 2021-12-18 08:33:20 -08:00
Victor Zverovich c882790a2e Add a set formatter 2021-12-18 07:35:40 -08:00
Victor Zverovich 121002d700 Add a map formatter 2021-12-18 07:12:53 -08:00
Victor Zverovich be51ee1ceb Disable broken copy ctor of dynamic_format_arg_store 2021-12-17 17:18:18 -08:00
Victor Zverovich 659de779e6 Fix a UB in parse_format_specs when begin is null 2021-12-17 16:51:24 -08:00
Alexey Ochapov ef72b471fc enable named arguments check in compile-time checks (#2649)
works only if all named arguments are UDL-based
2021-12-17 15:53:05 -08:00
Alexey Ochapov 82246b8766 fix throw with exceptions disabled (#2647) 2021-12-17 13:44:36 -08:00
Marek Kurdej 3a951a66cb Avoid qualifying by inline namespace. Fixes #2642. (#2643) 2021-12-10 08:28:25 -08:00
Marek Kurdej e0136fc8bd Qualify calls to make_wformat_args. Fixes #2639. (#2641) 2021-12-10 06:36:42 -08:00
Victor Zverovich ac1b5f3da5 Refactor problematic trailing returns in arg_mapper 2021-12-09 18:08:30 -08:00
Victor Zverovich fd62fba985 Don't convert scoped enums to integers 2021-12-09 12:09:33 -08:00
Victor Zverovich c652f8243a Make header guard consistent with header name 2021-12-09 10:49:47 -08:00
Victor Zverovich a9c7b9b8f7 Clarify that _format is deprecated 2021-12-09 10:34:27 -08:00
Victor Zverovich e4f0564aa6 Disable is_streamable for string[_view] 2021-12-09 10:02:18 -08:00
Victor Zverovich 91533d3c33 Minor tweaks to chrono subsecond formatting 2021-12-09 06:55:31 -08:00
matrackifandVictor Zverovich 0bbc9708f9 Implement c++20 std::chrono::duration subsecond formatting (#2623)
* Add support for subsecond printing for std::chrono::duration according to the c++20 standard

* Remove assert test that overflows intmax_t

* * Hopefully fix int64_t to int32_t conversion errors.
* Allow proper Duration::rep type to propagate via template argument deduction

* * Hopefully fix int64_t to int32_t conversion errors.
* Allow proper Duration::rep type to propagate via template argument deduction

* Fix sign conversion (-Wsign-conversion) warning treated as error in num_digits()

* Format chrono.h with clang-format

* Remove extra forward slash in doxygen style comment

Co-authored-by: Victor Zverovich <victor.zverovich@gmail.com>

* Apply all suggestions from GitHub, except for replacing the utility subsecond_helper class with a function

* * Move logic of handling subseconds from utility class to function with name write_fractional_seconds()
* Revert write(Rep value, int width) function to previous state

* Fix -Wshadow warning

* Remove unsued get_subseconds() function, its logic has been moved to write_fractional_seconds()

* Change comment from lowercase int to uppercase Int

* Simplify test check

* Integrate suggested changes

* Remove static from detail functions, they are no longer member functions of a class and static is unnecessary.
* Change comment from "amount" to "number"

Co-authored-by: Victor Zverovich <victor.zverovich@gmail.com>
2021-12-09 06:45:13 -08:00
Vladislav Shchapov 9d5b9defde Enable tzset only on Windows desktop app (#2633) 2021-12-07 15:22:36 -08:00
Victor Zverovich 215f21a038 Detect overflow on large precision 2021-12-05 07:26:58 -08:00
Vladislav Shchapov c240d98ffd Optimize tm formatting (Non C-locales and %Z) (#2617)
* Move fmt::detail::formatbuf to format.h

* Replace std::basic_ostringstream to std::basic_ostream with custom formatbuf

* Use tm.tm_zone
2021-12-04 11:02:31 -08:00
Andrew Corrigan 6ab73113fc Mark grow as FMT_CONSTEXPR20 (#2630)
resolves https://github.com/fmtlib/fmt/issues/2627
2021-12-03 07:13:30 -08:00
Victor Zverovich c472a27818 Fix handling of very large precision in fixed format 2021-11-27 08:23:05 -08:00
Alex Guteniev 201971e293 Make MSVC use [[nodiscard]] (#2615)
* Make MSVC use [[nodiscard]]
* Uniformly detect attributes for __cplusplus and _MSVC_LANG
2021-11-26 07:32:50 -08:00
Florin Iucha acad8cfab1 Reformat all source code; no functional changes
Before adding the format checker, the mainline should be clean, to
avoid false failures.
2021-11-25 09:15:25 -08:00
Florin Iucha 491ba2dda5 Annotate fmt::format and fmt::formatted_size as [[nodiscard]]
This prevents accidentally writing fmt::format when fmt::print was
intended. Other than running tests, there's not a good use case for
discarding the formatted output.
2021-11-25 07:30:30 -08:00
Vladislav Shchapov 5abe9e8266 Add platform-specific 'z' formatter 2021-11-25 06:52:39 -08:00
Vladislav Shchapov be3a3a5aed Use predefined formats for C-locale 2021-11-25 06:52:39 -08:00
Alex Guteniev a3ab36c803 Formatting of function pointers, member function pointers, member object pointers... (#2610) 2021-11-23 12:55:22 -08:00
Victor Zverovich 43419a4ada Workaround a bug in gcc 2021-11-19 07:32:42 -08:00
Vladislav Shchapov c089f7d497 Simplify std::tm formatter 2021-11-14 07:16:22 -08:00
Vladislav Shchapov aa5517f6b9 Reuse tm_writer in chrono_formatter 2021-11-14 07:16:22 -08:00