Victor Zverovich
6d597e39c3
Fix overload ambiguity in arg_mapper
2021-08-26 16:54:27 -07:00
Victor Zverovich
f889e52a15
Improve error reporting
2021-08-26 15:47:44 -07:00
sunmy2019
a44c8f651b
reimplement formatter<tuple_join_view>
( #2457 )
...
* reimplement `formatter<tuple_join_view>`
1. completely reimplement `formatter<tuple_join_view<Char, T...>, Char>`
2. Add some tests
* use FMT_THROW
2021-08-23 09:51:19 -07:00
Paul Dreik
6b5e6119ee
set clang in one place
2021-08-22 17:52:45 -07:00
Paul Dreik
7af1dc1d27
fix UB in fuzzer common (memcpy on nullptr)
2021-08-22 17:52:45 -07:00
Paul Dreik
e77686f7a8
clang format
...
using clang format 11
2021-08-22 17:52:45 -07:00
Victor Zverovich
2207ea0b36
More escaping
2021-08-22 16:54:26 -07:00
Victor Zverovich
a212ff757f
Escape invalid code points
2021-08-22 15:51:33 -07:00
Victor Zverovich
07d033ecb4
Fix is_printable
2021-08-22 10:37:18 -07:00
Victor Zverovich
371d8e2ee0
Escape Unicode
2021-08-22 07:55:59 -07:00
Victor Zverovich
6397095ca4
More escaping
2021-08-21 16:36:25 -07:00
Victor Zverovich
11b07a56b2
We should escape
2021-08-19 14:50:59 -07:00
Victor Zverovich
b559cfd4c0
Implement basic escaping
2021-08-19 14:12:26 -07:00
Victor Zverovich
6ea6cf9464
Add decimal separator support to float
2021-08-14 09:16:26 -07:00
Vladislav Shchapov
07211701f4
Disable the -Wstringop-overflow warning from GCC 7 ( #2442 )
2021-08-02 14:20:18 -07:00
Victor Zverovich
bba0a9d962
Make flush public
2021-07-30 07:02:49 -07:00
Victor Zverovich
f1794a8853
Switch to threadsafe death test style
2021-07-29 06:56:38 -07:00
Victor Zverovich
5c222f0561
Add support for nonconst formattable types
2021-07-24 09:53:53 -07:00
Spiros Tsalikis
63fe2d5bd2
Add copy constructor for dynamic_format_arg_store, and test
2021-07-23 09:35:09 -07:00
Cameron DaCamara
00235d8a99
fix module test odr violations ( #2414 )
2021-07-17 09:16:49 -07:00
Victor Zverovich
2038bf6183
Update format_to usage
2021-07-13 07:56:24 -07:00
mwinterb
3d53d1539d
Warning removals in test code ( #2399 )
...
* Warning removals in test code.
Mostly 0 to nullptr and adding override to virtual function implementations.
* Fix module-test.
2021-07-09 08:05:02 -07:00
Daniela Engert
f2b03facd9
Include test sources to pick up functions and classes from the module rather than from the non-modular library which is baked into the test-main
library. ( #2356 )
...
This averts linker problems:
- strong ownership model: missing linker symbols
- weak ownership model: duplicate linker symbols
Simplify `gtest-extra.cc` while at it.
2021-07-03 07:21:54 -07:00
Benoît Lormeau
02ad5e11da
Add faint, blink, reverse and conceal to the emphases ( #2394 )
2021-07-02 20:03:55 -07:00
Victor Zverovich
1d7384530e
Add missing presentation type checks for std::string ( #2402 )
2021-07-02 07:51:04 -07:00
Daniela Engert
5221242f6e
Instruct msvc to report the _true_ value in __cplusplus
and force _full_ C++ conformance
...
* do this in _some_ tests to improve test coverage and catch possible problems due to that
* fix invalid export of `static constexpr` constant
* fix msvc warnings about unreachable code in high warning levels
2021-06-24 09:10:08 -07:00
Victor Zverovich
e421d52713
Simplify error handling in parse_nonnegative_int
2021-06-14 16:05:37 -07:00
sunmy2019
f28cf3302d
adding a default format for std::chrono::time_point<std::chrono::syst… ( #2345 )
2021-06-11 10:52:39 -07:00
Daniela Engert
55010a9d3a
Support non-char
overloads (module)
2021-06-11 09:38:53 -07:00
Daniela Engert
0193e7c428
Support compile-time strings and compile-time format string compilation in module
...
Make just the necessary parts available for lookup from client context.
2021-06-11 09:38:53 -07:00
Владислав Щапов
f6b5cc9f84
Fix chrono_test.weekday on legacy glibc
2021-06-10 16:17:10 -07:00
Daniela Engert
59a298f124
Enable enforce-checks-test
for MSVC, too
2021-06-10 12:54:54 -07:00
Victor Zverovich
2039dce75f
Detect consteval
2021-06-07 06:57:43 -07:00
Victor Zverovich
d551b88a6d
Move is_char specializations to xchar.h
2021-06-06 15:32:30 -07:00
Victor Zverovich
16c3514d01
wchar-test -> xchar-test
2021-06-06 07:59:18 -07:00
Victor Zverovich
206000a017
Workaround pathological conversion ( #2343 )
2021-06-06 07:18:44 -07:00
Victor Zverovich
76ee490468
Move wchar/custom char overloads to xchar.h
2021-06-05 22:57:45 -07:00
Victor Zverovich
e77b22d6da
Deprecate memory buffer overload of format_to
2021-06-05 14:58:36 -07:00
Владислав Щапов
f286139d22
Fix "undefined reference to `fmt::v7::detail::basic_data<void>::digits'"
...
Remove unused FMT_EXTERN_TEMPLATE_API
2021-06-02 14:33:17 -07:00
Victor Zverovich
d338d66324
Cleanup the printf implementation
2021-06-01 19:30:46 -07:00
Daniela Engert
70e67ae018
Re-enable module testing
...
Prepare for compilation with gcc (modules branch).
2021-06-01 14:49:56 -07:00
Victor Zverovich
ad97258915
Merge branch 'master' of github.com:fmtlib/fmt
2021-06-01 13:38:26 -07:00
Victor Zverovich
ed2a6377e7
Workaround msvc constexpr issues
2021-06-01 13:32:44 -07:00
Alexey Ochapov
9976869549
fix custom types formatting at compile-time, add test
2021-06-01 11:16:05 -07:00
Victor Zverovich
bf9904ee4d
Workaround msvc bugs
2021-05-31 08:25:05 -07:00
Victor Zverovich
577bce9029
Apply clang-format
2021-05-31 08:09:10 -07:00
Daniela Engert
ba4c7f193b
Swap parameter order to match #2327 ( #2329 )
2021-05-31 07:44:33 -07:00
Victor Zverovich
11a14db286
Update format_to taking a buffer and remove undocumented vformat_to overload
2021-05-30 07:57:51 -07:00
Victor Zverovich
486a80e8ef
Move wchar_t overloads to xchar.h
2021-05-30 06:41:39 -07:00
Victor Zverovich
ff37e41625
wchar.h -> xchar.h because it handles other code unit types too
2021-05-29 09:37:17 -07:00
Victor Zverovich
a9a9018191
Move wmemory_buffer to wchar.h
2021-05-29 08:26:04 -07:00
Daniela Engert
272b0f36b3
More module tests ( #2309 )
...
core.h, format.h, args.h, chrono.h, color.h, printf.h, os.h
2021-05-28 15:49:39 -07:00
Matthias Liedtke
98b9ff47a1
Align hex floats right as default ( #2317 )
2021-05-28 09:21:01 -07:00
Liedtke
a70a4ae053
Ignore zero-padding for non-finite floating points ( #2310 )
...
* Ignore zero-padding for non-finite floating points
* keep width for non-finite formatting with 0-padding
* clang-format
* preserve alignment
* align code-style
2021-05-27 14:13:05 -07:00
Alexey Ochapov
ee52a6dc40
add fmt::print()
overload to support compiled format ( #2304 )
2021-05-25 14:54:56 -07:00
Victor Zverovich
35a2c2a743
Refactor chrono formatting
2021-05-25 06:57:47 -07:00
Victor Zverovich
883d9595c5
Support alternative locale names in tests
2021-05-24 14:09:19 -07:00
Victor Zverovich
1cd9899cf3
Add initial support for weekday formatting
2021-05-24 10:21:34 -07:00
Victor Zverovich
069131dc25
Add unicode-test
2021-05-24 06:20:51 -07:00
Victor Zverovich
703005c8ba
Deprecate locale.h
2021-05-22 10:21:17 -07:00
Victor Zverovich
34b8acaef7
More wchar_t-specific API to wchar.h
2021-05-21 18:24:39 -07:00
Daniela Engert
5a0d99fa0b
Add a test for the module
2021-05-20 10:26:31 -07:00
Victor Zverovich
63271a51c4
Fix ADL issues
2021-05-20 06:31:43 -07:00
Victor Zverovich
61b4c923d7
Reduce code bloat
2021-05-20 05:51:45 -07:00
Victor Zverovich
95c358f721
Improve separation between code unit types
2021-05-19 09:06:57 -07:00
Victor Zverovich
e9c1c415b8
Improve compile-time checks
2021-05-19 07:57:57 -07:00
Victor Zverovich
0dd91e20d5
Add wchar.h for wide char overloads
2021-05-17 21:59:10 -07:00
Victor Zverovich
d35f1ad5c1
Cleanup core
2021-05-16 10:02:33 -07:00
Alexey Ochapov
54f22a3eef
add support for statically named arguments with FMT_STRING
2021-05-14 16:31:10 -07:00
Владислав Щапов
0036a1d195
Fix issue #2274 .
2021-05-10 15:57:23 -07:00
Владислав Щапов
2a9b314627
Replace fmt::error_code to std::error_code
2021-05-09 12:26:19 -07:00
Владислав Щапов
4211d86539
Add a formatter specialization for std::error_code.
2021-05-09 06:29:39 -07:00
Victor Zverovich
39f28424ca
Cleanup tests
2021-05-07 21:27:58 -07:00
Victor Zverovich
2665afb515
Cleanup add-subdirectory-test
2021-05-07 16:42:02 -07:00
Victor Zverovich
d0abe7c246
Make chrono formatting locale-independent by default
2021-05-07 16:14:10 -07:00
Victor Zverovich
16f2ef91ab
Replace fmt::system_error with std::system_error
2021-05-07 08:33:39 -07:00
Victor Zverovich
4b885c8633
Replace windows_error with system_error
2021-05-07 06:19:03 -07:00
Victor Zverovich
9c3af11a92
Cleanup tests
2021-05-05 18:31:41 -07:00
Victor Zverovich
f0095ccd34
Add support for ranges of types without formatters to join ( #2262 )
2021-05-05 07:43:46 -07:00
Victor Zverovich
400b953fbb
Use [] instead of {} in ranges for consistency with Python format
2021-05-04 21:04:21 -07:00
Victor Zverovich
38bcc04a11
Drop range limit and cleanup tests
2021-05-04 20:53:56 -07:00
Victor Zverovich
c738c3431f
Cleanup tests
2021-05-04 17:23:13 -07:00
Victor Zverovich
ed7c4320f6
Cleanup tests
2021-05-02 09:28:38 -07:00
Victor Zverovich
9155e2de4c
Cleanup tests
2021-05-01 17:11:45 -07:00
Victor Zverovich
38127d9ec0
Cleanup tests
2021-04-30 15:50:03 -07:00
Victor Zverovich
c9c0e5077d
Cleanup tests
2021-04-30 06:42:38 -07:00
Victor Zverovich
ccf4ccde23
Cleanup tests and format string compilation
2021-04-29 19:50:04 -07:00
Victor Zverovich
e96a92f869
Cleanup tests and format string compilation
2021-04-29 16:21:08 -07:00
Alexey Ochapov
fd43e4dcbc
gtest: fix std::is_trivially_copy_constructible for GCC 4.8 & 4.9 properly
...
`std::is_pod<T>` was deprecated in C++20
original (pre `is_pod`) error on GCC 4.8:
```
/fmt/test/gtest/gtest.h: In static member function 'static constexpr bool testing::internal::MatcherBase<T>::IsInlined()':
/fmt/test/gtest/gtest.h:6512:12: error: 'is_trivially_copy_constructible' was not declared in this scope
std::is_trivially_copy_constructible<M>::value &&
^
/fmt/test/gtest/gtest.h:6512:45: error: expected primary-expression before '>' token
std::is_trivially_copy_constructible<M>::value &&
^
/fmt/test/gtest/gtest.h:6512:46: error: '::value' has not been declared
std::is_trivially_copy_constructible<M>::value &&
^
```
2021-04-29 07:11:49 -07:00
Alexey Ochapov
3d51ccdaae
gtest: remove obsolete GTEST_LANG_CXX11
compile definition setting
2021-04-29 07:11:49 -07:00
Alexey Ochapov
833377ff1e
gtest: add .clang-format
file into test/gtest
directory to prevent formatting there
2021-04-29 07:11:49 -07:00
Alexey Ochapov
53ca0cbe75
gtest: move GTest/GMock files to separate directory, update GTest/GMock usages
...
* all GTest/GMock files moved to `test/gtest` directory
* `CMakeLists.txt` created in `test/gtest` from `CMakeLists.txt` in `test`
* GTest/GMock target in CMake renamed to `gtest` (was `gmock`)
* CMake `gtest` target updated to export includes as "gtest/gtest.h" or "gmock/gmock.h" only
* includes in tests updated: "gtest.h" -> "gtest/gtest.h", "gmock.h" -> "gmock/gmock.h"
* removed duplications of `target_include_directories` for GTest/GMock directories (CMake manages them)
2021-04-29 07:11:49 -07:00
Victor Zverovich
355be4b13f
Make FMT_COMPILE fallback on runtime without if constexpr ( #2261 )
2021-04-28 09:11:47 -07:00
Victor Zverovich
847aac4315
Follow naming conventions in tests
2021-04-25 21:26:30 -07:00
Victor Zverovich
39818e7979
Cleanup core-test
2021-04-25 17:59:23 -07:00
Ilya Kurdyukov
0e6f989b0d
__THROW warning fix for e2k ( #2253 )
2021-04-25 08:51:37 -07:00
Alexey Ochapov
ca821982ee
use named arg with static name in compile-time API
...
to get arg index by name at compile-time
2021-04-25 07:53:49 -07:00
Victor Zverovich
bb006f9735
Replace TYPED_TEST_CASE with TYPED_TEST_SUITE
2021-04-24 17:46:49 -07:00
Victor Zverovich
6956b10b2d
Fix gcc 4.8 build
2021-04-24 11:04:34 -07:00
Victor Zverovich
b4f9a05894
Update gtest
2021-04-24 11:03:40 -07:00
Victor Zverovich
8a040d187a
Cleanup core-test
2021-04-23 20:07:48 -07:00
Victor Zverovich
5b2c740ad8
Remove deprecated APIs
2021-04-23 15:27:25 -07:00
Victor Zverovich
b9ab5c8836
Remove printf.h dependency on ostream.h
2021-04-23 10:42:57 -07:00
Alexey Ochapov
1d4199f46b
fix udl_compiled_string with non-byte chars (e.g. wchar) ( #2242 )
2021-04-19 08:29:35 -07:00
crbrz
9260114162
Ranges wide strings support ( #2236 )
...
* Ranges copy wchar_t
* arg_join formatter not working for wide strings
* Added ranges wide string tests
Co-authored-by: Cristi <cristi@emailaddressmanager.com>
2021-04-16 06:25:35 -07:00
denchat
24c9751558
Try to suppress MVSC warn of narrowing ( #2230 )
2021-04-13 07:30:43 -07:00
Alexey Ochapov
b441532396
CI linux: add clang++-11 C++20 (with LLVM libc++) build
...
* find-package-test fixed by passing CXX_FLAGS, i.e. -stdlib=libc++
* std::array usage in compile-test.cc replaced with plain array, because
<array> header was not included
2021-04-10 07:20:05 -07:00
denchat
273d8865e3
Suppress redef warning of _CRT_SECURE_NO_WARNINGS if any. ( #2218 )
2021-04-08 11:56:35 -07:00
Victor Zverovich
5a8bf1f6a3
Workaround hexfloat inconsistency on windows ( #2205 )
2021-04-07 11:20:08 -07:00
Victor Zverovich
06b3a1000c
Add support for time points with arbitrary durations ( #2208 )
2021-04-02 11:17:14 -07:00
Jason Cobb
c62e4c30f4
Make buffer_appender default-constructible when back_insert_iterator is
2021-04-01 09:52:44 -07:00
Victor Zverovich
afe23e7f10
Don't call fileno on NULL file in tests ( #2196 )
2021-03-30 10:41:12 -07:00
vtta
14848875bf
Fix: fmt::ostream cannot be moved while holding buffered data #2197 ( #2198 )
...
* Add a test case: move ostream while holding data
* Fix moving ostream while holding data
Co-authored-by: Junliang HU <jlhu@cse.cuhk.edu.hk>
2021-03-30 08:43:26 -07:00
Vladislav Shchapov
4dc7170d21
Fix C++17 builds: ( #2192 )
...
- Fix C++17 Visual Studio builds.
- Use C++17 for `windows-2019` builds.
- Removed options for unsupported compiler (MSVC11).
- Removed options, not needed after enabling C++11+ features in gmock/gtest.
2021-03-26 06:19:43 -07:00
Victor Zverovich
417e1cee9e
Stop using deprecated UDL templates
2021-03-19 08:34:55 -07:00
Victor Zverovich
14a2a64df4
Fix handling of formattable types with to_string_view ( #2181 )
2021-03-19 06:43:38 -07:00
Victor Zverovich
6ae402fd0b
Fix handling of types with to_string_view and formatter specialization ( #2180 )
2021-03-18 11:25:43 -07:00
Victor Zverovich
a6408a3b09
Add args-test
2021-03-18 09:04:17 -07:00
Victor Zverovich
1147782c79
Fix an ambiguous call to check caused by ADL ( #2184 )
2021-03-17 20:59:36 -07:00
Victor Zverovich
6151d0dc1e
Fix the comment
2021-03-14 09:26:18 -07:00
Victor Zverovich
5a1127b726
Don't wrap named arg in cref and clarify docs
2021-03-14 09:08:08 -07:00
Victor Zverovich
f9e0e90441
Apply clang-format
2021-03-10 12:08:02 -08:00
Victor Zverovich
60f5d24411
Simplify arg_formatter
2021-03-10 09:35:48 -08:00
Alexey Ochapov
6a9016ea60
fix formatted_size
with "compiled format" as argument ( #2161 )
2021-03-07 06:44:36 -08:00
Victor Zverovich
6e1fc01752
Move detail::truncating_iterator to fmt/compile.h
2021-03-06 08:35:36 -08:00
Jason Cobb
e718ec3e93
Make truncating_iterator an output_iterator ( #2158 )
2021-03-04 15:53:08 -08:00
John Steele Scott
772aeca338
Don't include <cassert>. ( #2148 ) ( #2152 )
...
* Don't include <cassert>. (#2148 )
This commit replaces use of the assert() macro in format-inl.h with
FMT_ASSERT(). This allows us to drop the cassert include.
* FMT_GCC_VERSION is not defined when we include test-assert.h, use __GCC__ instead.
* Don't explicitly suppress GCC's -Wterminate in tests' FMT_ASSERT.
Throwing from a separate function is enough to silence the warning, no need to
explicitly suppress it.
* Remove messages from assertions added in 2f699d2
.
* Correct formatting around throw_assertion_failure().
2021-03-04 07:28:04 -08:00
Alexey Ochapov
684b5b0e40
Fix fallback to runtime API from compile-time API ( #2143 )
...
* fix fallback to the runtime API, add FMT_ENABLE_FALLBACK_TO_RUNTIME_API define, add test
* remove `FMT_ENABLE_FALLBACK_TO_RUNTIME_API`
* pass format string to format_to() inside format_to_n() in compile-time API
instead of compiling it inside format_to_n(), to eliminate code duplication
2021-03-04 07:20:57 -08:00
Victor Zverovich
835b910e7d
Add an is_formattable trait
2021-02-28 15:25:33 -08:00
Alexey Ochapov
29cc8282b1
update chrono duration formatter (constness), use it in compile-test for specs checks
2021-02-20 11:50:12 -08:00
Alexey Ochapov
499047e132
fix incorrect indexing mode for named args, update tests
2021-02-20 11:50:12 -08:00
Alexey Ochapov
78c67157c1
prepare tests, fix incorrect handling of named args with simple {}
replacement fields
2021-02-20 11:50:12 -08:00
Alexey Ochapov
95e1aa2dc5
add support for manual indexing and named fields, add tests
2021-02-20 11:50:12 -08:00
Victor Zverovich
7e72673d87
Improve width estimation ( #2033 )
2021-02-13 09:30:29 -08:00
Victor Zverovich
13b117b5bc
Improve code point computation
2021-02-13 08:46:19 -08:00
Victor Zverovich
ee0fed639c
Fix handling of the + flag with locales ( #2133 )
2021-02-13 07:08:01 -08:00
Yuval Gamzon-Kapeller
c5979d564e
Fix fmt::localtime formatting not working in wide-char string contexts
2021-02-13 06:53:30 -08:00
Mike Crowe
e6ef927e6b
fmt::ptr: Support function pointers ( #2131 )
...
Passing a function pointer to fmt::ptr results in:
In file included from /home/mac/git/fmt/test/gmock/gmock.h:238,
from /home/mac/git/fmt/test/format-test.cc:31:
.../fmt/test/format-test.cc: In member function ‘virtual void FormatterTest_FormatPointer_Test::TestBody()’:
.../fmt/test/format-test.cc:1486:56: error: no matching function for call to ‘ptr(void (&)(int, double, std::__cxx11::string))’
format("{}", fmt::ptr(function_pointer_test)));
with GCC and Clang. Let's add an overload to support that usage.
Unfortunately, MSVC would
consider the overload to be ambiguous for unknown reasons:
D:\a\fmt\fmt\test\format-test.cc(1485,1): error C2668: 'fmt::v7::ptr': ambiguous call to overloaded function [D:\a\fmt\build\test\format-test.vcxproj]
D:\a\fmt\fmt\include\fmt/format.h(3742,60): message : could be 'const void *fmt::v7::ptr<void,int,double,std::string>(T (__cdecl *)(int,double,std::string))' [D:\a\fmt\build\test\format-test.vcxproj]
with
[
T=void
]
D:\a\fmt\fmt\include\fmt/format.h(3735,42): message : or 'const void *fmt::v7::ptr<void(int,double,std::string)>(T (__cdecl *))' [D:\a\fmt\build\test\format-test.vcxproj]
with
[
T=void (int,double,std::string)
]
D:\a\fmt\fmt\test\format-test.cc(1486,1): message : while trying to match the argument list '(overloaded-function)' [D:\a\fmt\build\test\format-test.vcxproj]
but luckily this means that the overload is unnecessary in that case
anyway, so we can just make it conditional.
2021-02-09 07:35:16 -08:00
Alexey Ochapov
2a25e2bf4d
Make ranges-test available with C++11 ( #2114 )
...
* make ranges-test available with C++11, fix problem with some gcc versions
* potentially fix build for MSVC 19.10, a bit reorganizing in test
2021-01-30 07:42:58 -08:00
Victor Zverovich
ce519e939b
Fix exception propagation from iterators ( #2097 )
2021-01-23 17:27:24 -08:00
Ivan Polyakov
8bf28e6bb1
Add support for s format specifier to bool ( #2094 ) ( #2109 )
2021-01-23 07:32:41 -08:00
Victor Zverovich
7fd535c6ae
Cleanup 'L' handling
2021-01-18 07:57:38 -08:00
Victor Zverovich
e4f2cf455e
Make 'L' a modifier
2021-01-17 09:28:46 -08:00
Victor Zverovich
532e846b86
Fix width computation in float formatter
2021-01-15 11:07:55 -08:00
Victor Zverovich
f8c2f8480a
Fix handling of width when formatting int as char
2021-01-14 08:41:17 -08:00
Victor Zverovich
0fe0b15e71
Fix handling of # in width computation
2021-01-13 16:48:07 -08:00
Alexey Ochapov
d09b5c1453
Fix std::byte formatting with compile-time API ( #2072 )
...
* add test for byte formatting with `FMT_COMPILE`
* fix byte formatting with `FMT_COMPILE`, use `__cpp_lib_byte` macro
* use is not custom mapped type check
* workaround MSVC bug
2020-12-27 07:23:28 -08:00
Alexey Ochapov
bbd6ed5bc5
Add support of most format_specs for formatting at compile-time ( #2056 )
2020-12-25 06:40:03 -08:00
Victor Zverovich
1256541d7a
Fix formatting
2020-12-24 07:07:15 -08:00
Walter Gray
4fa4c9248f
Add tests for FMT_ENFORCE_COMPILE_STRING, fix several errors ( #2038 )
2020-12-24 06:40:46 -08:00
Daumantas Kavolis
fa43fd1444
Forward arguments to work with views ( #2068 )
2020-12-20 07:14:54 -08:00
Victor Zverovich
3551f5d118
Workaround a gcc 10 -Warray-bounds bug ( #2065 )
2020-12-19 09:34:43 -08:00
Camille Bordignon
c20874c28f
Reenable support for fallback formatter in join ( #2040 ) ( #2050 )
2020-12-08 08:56:53 -08:00
Alexey Ochapov
5de0bc1d4f
Add UDL as replacement for FMT_COMPILE ( #2043 )
2020-12-07 15:53:11 -08:00
Victor Zverovich
33f9a6d360
Fix handling of enums in to_string ( #2036 )
2020-12-03 15:18:33 -08:00
Alexey Ochapov
aabe0a8473
simplify tests by reordering arguments of EXPECT_EQ
( #2044 )
2020-12-03 14:21:23 -08:00
Victor Zverovich
4a6eadbde0
Make std::byte formattabe ( #1981 )
2020-12-03 08:59:07 -08:00
Alexey Ochapov
683a74501f
fix formatting with empty compiled format string ( #2042 )
2020-12-02 07:14:57 -08:00
Alexey Ochapov
dac753b81e
Basics of formatting at compile-time based on compile-time API ( #2019 )
2020-11-29 08:59:11 -08:00
Victor Zverovich
119f7dc3d6
Truncate file by default
2020-11-27 08:15:14 -08:00
Victor Zverovich
22a68d1613
Don't emit trailing zeros by default
2020-11-27 07:45:54 -08:00
Victor Zverovich
a58a6b27c3
Add a newline
2020-11-21 16:52:40 -08:00
Victor Zverovich
a036cc97b7
Reintroduce ostream support to range formatters ( #2014 )
2020-11-21 16:31:22 -08:00
Victor Zverovich
2c734c9bca
Fix an overflow in format_to_n ( #2029 )
2020-11-18 06:50:43 -08:00
Victor Zverovich
bcc20b29df
Implement compile-time checks by default
2020-11-15 17:24:36 -08:00
Walter Gray
befd7d4a2f
Always use FMT_STRING internally where possible [Issue #2002 ] ( #2006 )
...
Co-authored-by: Walter Gray <walter.gray@getcruise.com>
2020-11-15 05:19:06 -08:00
Victor Zverovich
f8640d4050
Add more standards
2020-11-14 12:02:46 -08:00
Victor Zverovich
f81c14aa1e
Workaround an issue with mixing std versions in gcc ( #2017 )
2020-11-14 11:41:51 -08:00
Jonathan Gopel
aa9b09a9e3
🐛 Cannot call non-constexpr function in constexpr context ( #2010 )
...
Problem:
- gcc-8 gives the following error when compiling this function on all
standards:
test/std-format-test.cc: In member function 'constexpr auto std::formatter<S>::parse(std::format_parse_context&)':
test/std-format-test.cc:112:17: error: call to non-'constexpr' function 'int isdigit(int)'
if (!isdigit(c) || (++iter, get_char()) != '}')
~~~~~~~^~~
Solution:
- Write a `constexpr` version of `isdigit` for use in this function.
Co-authored-by: Jonathan Gopel <jgopel@quantlab.com>
2020-11-12 10:10:52 -08:00
Victor Zverovich
7abc3c01e0
Suppress a useless warning ( #2004 )
2020-11-12 08:18:28 -08:00
Victor Zverovich
b5dac0f0f8
Reduce <algorithm> usage ( #1998 )
2020-11-11 09:12:15 -08:00
Jonathan Gopel
1b8f499ee1
🔧 Silence useless cast warnings ( #2008 )
...
Problem:
- gcc-10 is generating the following warning at all standards:
test/format-test.cc: In member function 'virtual void UtilTest_BitCast_Test::TestBody()':
test/format-test.cc:108:42: error: useless cast to type 'uint64_t' {aka 'long long unsigned int'} [-Werror=useless-cast]
108 | s = fmt::detail::bit_cast<uint32_pair>(uint64_t(~0ull));
| ^~~~~~~~~~~~~~~
- gcc-8 is generating the following warning at all standards:
test/format-test.cc: In member function 'virtual void UtilTest_BitCast_Test::TestBody()':
test/format-test.cc:108:56: error: useless cast to type 'uint64_t' {aka 'long long unsigned int'} [-Werror=useless-cast]
s = fmt::detail::bit_cast<uint32_pair>(uint64_t(~0ull));
^
Solution:
- Cast 0 to a 64 unsigned bit int and then invert.
Co-authored-by: Jonathan Gopel <jgopel@quantlab.com>
2020-11-11 07:56:59 -08:00
Victor Zverovich
e01d26e1a4
Optimize includes
2020-11-09 16:34:54 -08:00
Victor Zverovich
5bedcb665b
Fix initialization of iterator_buffer ( #1996 )
2020-11-08 08:08:55 -08:00
Ashton Fagg
506ff320f2
Fix build failure when not using fcntl with -Werror ( #1990 )
2020-11-06 15:39:59 -08:00
Victor Zverovich
49544ea943
Fuzz fallback formatter
2020-11-03 19:34:35 -08:00
Victor Zverovich
6b7bfed40c
Fix fallback float formatter at assymetric bounds ( #1976 )
2020-11-03 19:19:10 -08:00
Jonathan Gopel
e904e891bd
🎨 🐛 Rename all shadowed types and variables
2020-11-03 07:30:27 -08:00
Jonathan Gopel
b3a4f28ad1
Fix implicit signedness conversion warning ( #1963 )
...
Problem:
- On Apple clang 11.0.3 (clang-1103.0.32.62), pedantic mode compilation
generates the following error:
test/std-format-test.cc:114:22: error: implicit conversion changes
signedness: 'int' to 'size_t' (aka 'unsigned long')
[-Werror,-Wsign-conversion]
width_arg_id = c - '0';
~ ~~^~~~~
Solution:
- Use a `to_unsigned` to make the conversion explicit. This is
guaranteed to be safe due to the check before the ASCII-to-int
conversion.
2020-10-29 06:26:18 -07:00
Vladislav Shchapov
97c8873214
Allocator::max_size support in basic_memory_buffer ( #1960 )
2020-10-29 06:17:00 -07:00
kitegi
f4ca065cfb
Range support
2020-10-28 05:35:37 -07:00
Victor Zverovich
86287b8d56
Optimize common case in parse_format_specs
2020-10-21 17:16:58 -07:00
Victor Zverovich
0ecb3d1829
Optimize alignment parsing
2020-10-21 12:45:11 -07:00
Victor Zverovich
e57ec7d563
Merge vformat_to overloads
2020-10-20 17:39:50 -07:00
Victor Zverovich
e3b4c22ec9
Simplify is_output_iterator
2020-10-20 14:09:57 -07:00
Victor Zverovich
20d4f2e836
Fix handling of weird character types when parsing sign ( #1932 )
2020-10-17 09:40:30 -07:00
Victor Zverovich
bd3c792507
Fix float fuzzer
2020-10-16 07:35:53 -07:00
Bart Siwek
271eff149f
Make classes derived from buffer<T> final to silence the virtual destructor warning. ( #1937 )
...
Co-authored-by: Bart Siwek <bsiwek@cisco.com>
2020-10-15 17:41:56 -07:00
Victor Zverovich
811c8b58c5
Add float fuzzer and cleanup
2020-10-14 07:39:51 -07:00
Victor Zverovich
82c4e2236a
Cleanup fuzzing
2020-10-13 09:08:04 -07:00
Victor Zverovich
63e40c9614
Fix naming of fuzzers
2020-10-12 16:48:25 -07:00
Victor Zverovich
af28305961
Cleanup
2020-10-11 10:13:42 -07:00
Victor Zverovich
48ea8193df
Explain why assert-test is a separate test
2020-10-11 10:13:42 -07:00
Victor Zverovich
1d112bdd1e
Remove old test
2020-10-11 10:13:42 -07:00
Victor Zverovich
7e56b6b6cb
Fix coding style and remove duplicate fuzzer
2020-10-11 08:07:52 -07:00
Victor Zverovich
a5e7e7db95
Fix handling of thousand separator ( #1927 )
2020-10-10 07:23:36 -07:00
Victor Zverovich
7eddbfed53
Cleanup exponent handling in write_float
2020-10-07 15:58:43 -07:00
Victor Zverovich
a18b3fbbdc
Fix fixed precision handling when rounding ( #1917 )
2020-10-07 07:42:23 -07:00
Victor Zverovich
af8a180aed
Make GetCachedPower test more precise
2020-10-04 08:00:47 -07:00
Victor Zverovich
90ef46df0b
Fix dragonbox integration
2020-09-28 18:10:46 -07:00
Victor Zverovich
79694d424c
Fix WriteConsole signature
2020-09-27 14:26:28 -07:00
Victor Zverovich
51f2e2ca27
Move nan test to where it belongs
2020-09-27 12:50:18 -07:00
Victor Zverovich
68555fdbd2
Make format-test not depend on color.h
2020-09-27 09:17:57 -07:00
Victor Zverovich
a905d8f704
Merge grisu-test into format-test
2020-09-26 08:23:16 -07:00
Victor Zverovich
c156093ffd
Fix carry in fallback_format
2020-09-25 10:12:44 -07:00
Victor Zverovich
6c025520aa
Test that max_k is correctly defined
2020-09-23 15:44:37 -07:00
Victor Zverovich
2d4fde3a2e
Don't emit trailing zero for consistency with std::format
2020-09-23 09:19:12 -07:00
Victor Zverovich
aa729bf25b
Remove dead code
2020-09-22 16:58:02 -07:00
jk-jeon
6bcde9aab2
https://github.com/fmtlib/fmt/pull/1882#issuecomment-696823912 ( #1894 )
2020-09-22 10:33:52 -07:00
Victor Zverovich
16410056bf
Optimize copy_str for counting_iterator
2020-09-22 07:56:09 -07:00
Victor Zverovich
2f7e08856b
Disable range formatter if value type is not formattable ( #1885 )
2020-09-20 08:37:49 -07:00
Victor Zverovich
c46a8de4e1
Simplify test
2020-09-20 07:24:24 -07:00
rimathia
2696dc9273
add forgotten template argument to make_format_args which made some u… ( #1877 )
...
* add forgotten template argument to make_format_args which made some uses of FMT_COMPILE not work anymore after 54daa0864a
, add more elaborate test cases to compile-test as regression tests
* fix old-style cast which gcc on travis thankfully doesn't accept anymore
* hopefully last forgotten (void*)
2020-09-20 06:51:11 -07:00
Victor Zverovich
7e6827521a
Remove trailing zeros when using fallback formatter ( #1873 )
2020-09-17 08:16:21 -07:00
Victor Zverovich
1d696dc280
Handle exotic character types in compilation
2020-09-17 07:12:34 -07:00
Alexey Ochapov
f674434a67
Add format_to_n overload that accepts FMT_COMPILE (from #1767 ) ( #1869 )
...
* Add format_to_n overload that accepts FMT_COMPILE
* add FormatToNWithCompileMacro test into CompileTest
Co-authored-by: Dmitriy Kurkin <Dmitriy.Kurkin@itiviti.com>
2020-09-15 07:28:06 -07:00
Victor Zverovich
5b5a597198
Fix handling of wide alignment
2020-09-15 06:53:06 -07:00
Victor Zverovich
dce8e49b4f
Handle float in fallback formatter
2020-09-13 09:28:40 -07:00
Victor Zverovich
4f2ee8921d
Use built-in FP formatter for any precision
2020-09-11 07:20:16 -07:00
Victor Zverovich
9f312fe87e
Implement fallback FP formatting with given precision ( #1526 )
2020-09-07 09:34:30 -07:00
Victor Zverovich
fb289cf56b
Fix coding conventions
2020-09-06 09:26:32 -07:00
Denis Blank
bff4d18efb
Add color format_to overloads
...
* Fix variable size basic_memory_buffer colorization
* Fix an unused arguments warning on GCC that blocks the CI otherwise
* Ref #1842
* Ref #1593
2020-09-06 08:24:15 -07:00
Victor Zverovich
6cccdc24bc
Fix move constructor ( #1844 )
2020-09-01 08:48:56 -07:00
Adam Burgess
f39e6fb617
Add formatters for chrono::time_point<system_clock> ( #1837 )
...
Add formatters for chrono::time_point and helper overloads for localtime/gmtime(time_point)
Fixes #1819
2020-08-28 07:41:38 -07:00
Victor Zverovich
5dff01d31b
Add complex tests
2020-08-26 11:48:50 -07:00
Alexey Ochapov
1651b2d433
Fix detail::write with fallback formatter ( #1829 )
...
* add support for fallback_formatter in detail::write
* add ToString test into OStreamTest
to check fmt::to_string() with class that has output stream operator
* add WithOstreamOperator test into CompileTest
to check fmt::format() with FMT_COMPILE() and class that has output stream operator
* use conditional_t inside detail::write instead of 2 overloads
* Revert "add WithOstreamOperator test into CompileTest"
* remove Context from template parameters in detail::write
2020-08-20 06:41:09 -07:00
Barry Revzin
6be6544668
Fixing buffer_appender's ++ slicing ( #1822 )
...
* Fixing buffer_appender's ++ slicing.
* This test requires C++14.
* Removing string_view dependency.
* Simplifying test case.
* Adding message to static_assert
2020-08-18 12:37:56 -07:00
medithe
f9f02df719
CMakeLists.txt: Clang-warnings: removed -Wno-sign-conversion ( #1817 )
...
* CMakeLists.txt: Clang-warnings: removed -Wno-sign-conversion
* test/ranges-test.cc: changed type of integer literals to unsigned
* test/format-test.cc: fixed implicit conversion changes signedness warning in clang
Co-authored-by: Martin Wührer <martin.wuehrer@artech.at>
2020-08-14 13:58:20 -07:00
Victor Zverovich
54daa0864a
Add dynamic width support to FMT_COMPILE ( #1809 )
2020-08-10 09:40:11 -07:00
Victor Zverovich
4fd95e4b4d
Don't remove trailing zeros with #
2020-08-08 08:14:39 -07:00
Victor Zverovich
065889a593
Use correct capacity in iterator_buffer ( #1807 )
2020-08-08 07:01:21 -07:00
Barry Revzin
d0dd678693
Adding convenience append(range)
2020-08-08 06:33:46 -07:00
Victor Zverovich
279d698e1b
Fix handling of default alignmment with locale ( #1801 )
2020-08-03 10:51:42 -07:00
Victor Zverovich
76cfb50b2d
Test complex formatter
2020-08-03 10:05:18 -07:00
Victor Zverovich
7c4c5c79d2
Make buffer size configurable
2020-08-01 10:53:58 -07:00
Victor Zverovich
21c8b5c142
Report error on missing named argument ( #1796 )
2020-07-30 07:16:15 -07:00
Victor Zverovich
d82fdcc9e2
Fix handling of iterators in locale-specific formatting ( #1782 )
2020-07-30 07:03:11 -07:00
Tony E Lewis
febffa4e64
Make join() handle non-const-only begin/end ranges ( #1786 )
...
See fmtlib/fmt#1784 .
Add tests that demonstrate the problem and check obvious variations.
2020-07-21 12:13:00 -07:00
Raul Tambre
26b47b6fb5
Bump tested CMake version to 3.18
...
Use the version range feature introduced in 3.12. On CMake <3.12 the extra dots are simply interpreted as extra version number separators.
The fallback for ancient CMake versions is kept.
2020-07-19 08:50:34 -07:00
Victor Zverovich
b17d5c4f5d
Fix a regression in handling digit separators ( #1782 )
2020-07-18 08:31:47 -07:00
Victor Zverovich
c26349f4d2
Improve error reporting
2020-07-14 12:06:12 -07:00
Dmitriy Vetutnev
a03bd3ddb0
Autodetect MSVC static runtime ( #1770 )
...
* Autodetect MSVC static runtime
* Update condition (MSVC)
2020-07-13 06:11:23 -07:00
Victor Zverovich
16cac46a09
Improve handling of streamable and convertible to bool types ( #1766 )
2020-07-12 08:34:45 -07:00
Victor Zverovich
415cd51913
direct_buffered_file -> ostream
2020-07-11 17:29:17 -07:00
Victor Zverovich
e1bfb59619
Fix handling of code units in compile
2020-07-11 09:03:21 -07:00
Victor Zverovich
e4f57bfd7f
Add an overload of write for buffer_appender
2020-07-11 08:20:30 -07:00
Victor Zverovich
d870468159
Make append work with fixed-size buffer
2020-07-11 07:27:20 -07:00
Victor Zverovich
e8ec09ae83
Cleanup core-test
2020-07-10 21:25:27 -07:00
Victor Zverovich
a2c4fed981
Double buffering no more
2020-07-10 20:35:14 -07:00
Victor Zverovich
60c43e8703
Apply clang-format
2020-07-09 09:06:24 -07:00