Victor Zverovich
e17bc67547
Make scan variadic
2024-02-04 08:07:00 -08:00
Victor Zverovich
06311ed1ce
Fix fixed rounding around zero in Dragon
2024-02-03 10:13:58 -08:00
Dominic Pöschko
e5bab8dab4
added formatter for std::expected ( #3834 )
2024-02-03 09:06:15 -08:00
Victor Zverovich
b5669512b1
Don't hang on test failure
2024-01-27 09:41:33 -08:00
Victor Zverovich
6435b169ec
Add support for line buffering
2024-01-27 08:57:21 -08:00
Victor Zverovich
6f260455aa
Add scan_data::make_args
2024-01-23 08:17:06 -08:00
Beat Bolli
e1832bcf00
Consider ADL begin() and end() when joining ranges ( #3824 )
...
Closes #3813
Signed-off-by: Beat Bolli <dev@drbeat.li>
2024-01-22 07:39:33 -08:00
Victor Zverovich
2caf1b3b91
scan more
2024-01-21 08:02:54 -08:00
Victor Zverovich
4c5b4af04d
Improve name argument validation
2024-01-19 16:13:43 -08:00
Victor Zverovich
6b68dff901
Write directly to a stream buffer
2024-01-18 16:27:12 -08:00
Victor Zverovich
8510838db1
Make format_specs not depend on code unit type
2024-01-17 07:50:52 -08:00
Vladislav Shchapov
470c4e6ca8
Fix scope for glibc ext for sec, min, and hour ( #3812 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-01-16 13:54:19 -08:00
The Phantom Derpstorm
13ec66bf78
🛠 Add basic array safety functions and backwards-compatible result type ( #3805 )
2024-01-16 07:01:15 -08:00
Victor Zverovich
e954823531
Make fill independent on code unit type
2024-01-15 15:00:28 -08:00
Vladislav Shchapov
d249fd9f84
Workaround for gcc 6 ( #3810 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-01-15 08:58:19 -08:00
Victor Zverovich
fe0d910a7d
Replace multiple error reporting mechanisms with report_error
2024-01-15 07:23:06 -08:00
Victor Zverovich
f9294f0e60
Improve handling of format specs
2024-01-15 06:31:24 -08:00
Victor Zverovich
3647feaad5
Improve scan
2024-01-14 09:30:45 -08:00
Victor Zverovich
e420a58f24
Improve scan prototype
2024-01-14 08:51:33 -08:00
Victor Zverovich
ca37503f93
scan -> scan_to
2024-01-14 08:30:42 -08:00
Victor Zverovich
123e058eb3
Improve scan prototype
2024-01-14 08:11:13 -08:00
Victor Zverovich
f924d20dbd
core-test -> base-test
2024-01-14 06:57:01 -08:00
Victor Zverovich
d70729215f
Fix constness
2024-01-14 06:44:38 -08:00
Victor Zverovich
d0963d4823
Make ranges only depend on fmt/base.h
2024-01-13 09:54:19 -08:00
Vladislav Shchapov
21b0458291
Use std::allocator_traits ( #3804 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-01-13 08:48:37 -08:00
Victor Zverovich
297b22f585
Remove <memory> dependency
2024-01-12 09:09:19 -08:00
Victor Zverovich
52174953bc
Cleanup conseval detection
2024-01-12 05:59:22 -08:00
Victor Zverovich
fd87a23d34
Reduce memory dependency
2024-01-10 20:00:15 -08:00
Victor Zverovich
971f7ae768
Minor cleanup
2024-01-10 16:43:00 -08:00
Tristan Brindle
2595bf57b3
Fix formatting of ranges with begin()&/end()&
...
C++20 allows ranges to have lvalue-qualified begin() and end() member functions. fmt correctly handles this if begin() and end() are additionally const-qualifed (i.e. begin() const&), but not in the non-const case. For example:
https://godbolt.org/z/YfxaYz5r7
This patch fixes fmt's range detection to handle this case by testing calls to detail::ranges_begin()/end() with an lvalue T&, matching the behaviour in the const case.
2024-01-10 12:22:53 -08:00
Vladislav Shchapov
961df829b9
Fix buffer overflow if output iterator is std::back_insert_iterator and value is escaped (debug format)
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-01-10 09:15:16 -08:00
Victor Zverovich
401f087394
Fix write_uintptr_fallback
2024-01-10 09:09:57 -08:00
Victor Zverovich
4331abed26
Move fmt::format to fmt/format.h
2024-01-10 06:43:12 -08:00
Victor Zverovich
79f1506fe3
Add base.h
2024-01-09 19:36:12 -08:00
Vertexwahn
8875cf96c2
Fix spelling: othewise ==> otherwise ( #3791 )
2024-01-09 10:32:46 -08:00
Victor Zverovich
fb66131efa
Improve arg storage
2024-01-08 21:25:41 -08:00
Victor Zverovich
a5ae9ae19d
Split standard context into a separate class and optimize
2024-01-08 07:08:49 -08:00
Victor Zverovich
23e8109d8d
Remove buffer_appender
2024-01-07 22:03:02 -08:00
Victor Zverovich
df67df7b4c
Add is_back_insert_iterator
2024-01-07 16:44:42 -08:00
Victor Zverovich
dbdfc99fa1
Don't crash if flush fails during unwinding
2024-01-07 14:55:16 -08:00
Victor Zverovich
0641b844ac
Cleanup string traits
2024-01-05 19:31:04 -08:00
Victor Zverovich
c9d233c0a4
Decouple appender from back_insert_iterator
2024-01-03 06:16:00 -08:00
Victor Zverovich
e2ab9ab22b
Add FMT_GLIBCXX_RELEASE
2024-01-02 16:15:23 -08:00
Victor Zverovich
63ce170853
Replace virtual dispatch with normal functions in buffers
2024-01-02 07:02:20 -08:00
Victor Zverovich
6c3b2d491e
Fix constness
2024-01-01 19:50:36 -08:00
Victor Zverovich
068bf9bad8
Make visitation compatible with std::format
2024-01-01 17:31:36 -08:00
Victor Zverovich
50565f9853
Move misplaced join overloads to fmt/ranges.h
2024-01-01 16:28:59 -08:00
Victor Zverovich
0b39d67103
Remove detail::error_handler
2024-01-01 16:10:13 -08:00
Victor Zverovich
c142385033
Improve the pipe API
2024-01-01 15:55:37 -08:00
Victor Zverovich
ce3161887a
Add overflow check
2024-01-01 09:17:10 -08:00
Victor Zverovich
e1aac42663
Implement hex specifier
2024-01-01 09:03:46 -08:00
Victor Zverovich
1705600be3
Remove optional
2024-01-01 09:03:46 -08:00
Victor Zverovich
d33731d202
Implement empty format specs
2024-01-01 07:54:02 -08:00
Victor Zverovich
c068c7c622
Add sentinel support
2024-01-01 07:25:01 -08:00
Bruce Mitchener
ebd5c8f994
Consistently use fmt::
when invoking format_to
. ( #3779 )
...
This has been done partially in previous commits:
* 2ac6c5ca8b
* 258000064d
* ba50c19e82
* 5ab9d39253
A patch that includes the `std::error_code` changes here is
upstream in vcpkg, so that will be able to be removed when
updating to the next release.
2024-01-01 06:57:03 -08:00
Victor Zverovich
f5ca178c12
Complete scan_handler
2023-12-31 18:00:14 -08:00
Victor Zverovich
138a64bfb1
Privatization
2023-12-31 15:06:17 -08:00
Victor Zverovich
4aa24f54cd
Implement visitor for scan
2023-12-31 09:53:24 -08:00
Victor Zverovich
e33c1568c3
Implement scan argument access
2023-12-31 08:49:29 -08:00
Victor Zverovich
23826669cf
Cleanup error handling
2023-12-31 07:51:57 -08:00
Victor Zverovich
8e6b2541a6
Apply coding conventions
2023-12-30 16:07:35 -08:00
Victor Zverovich
5ddd0cad15
Add a visitor for scan arguments
2023-12-30 07:43:21 -08:00
Victor Zverovich
55190dadb5
Cleanup chrono test
2023-12-29 16:34:42 -08:00
Victor Zverovich
4a6f0be5b6
Improve scan test
2023-12-29 08:32:38 -08:00
Victor Zverovich
662d784157
Fix scan test
2023-12-29 08:21:10 -08:00
Victor Zverovich
d5823aae36
Ceci n'est pas une pipe
2023-12-29 08:11:29 -08:00
Victor Zverovich
d83c1b8d4a
Add initial specifier support to scan
2023-12-29 07:30:56 -08:00
Victor Zverovich
bfba2f9e92
Improve iterator handling in scan
2023-12-29 06:34:49 -08:00
Victor Zverovich
a3bf40838f
Initial range support in scan
2023-12-29 06:25:57 -08:00
Victor Zverovich
ea1066bbe3
Cleanup test
2023-12-28 16:56:42 -08:00
Victor Zverovich
be57ec7ec0
Fix chrono-test on platforms with 32-bit time_t
2023-12-28 16:36:18 -08:00
Victor Zverovich
47c8f63d02
Remove redundant specifier
2023-12-28 07:32:07 -08:00
Victor Zverovich
4cbf6182ea
Remove peek
2023-12-25 10:47:45 -08:00
Victor Zverovich
88d19f5de9
Cleanup scan
2023-12-25 10:28:50 -08:00
Victor Zverovich
62529aad19
Apply coding conventions
2023-12-25 10:20:00 -08:00
Victor Zverovich
eef6dbafbf
Refactor file layer in scan
2023-12-25 09:32:29 -08:00
Victor Zverovich
41c2433358
clang-format
2023-12-25 09:09:20 -08:00
Victor Zverovich
0a9d08fefd
Simplify fallback
2023-12-25 09:00:03 -08:00
Victor Zverovich
e450b7aeb3
Implement locking
2023-12-25 08:48:45 -08:00
Victor Zverovich
c5a85f8d7d
Handle end of input in scan
2023-12-25 07:18:23 -08:00
Victor Zverovich
c4f2de4933
Improve scan
2023-12-25 06:34:15 -08:00
Victor Zverovich
6f9a816786
Enable test
2023-12-23 10:14:27 -08:00
Victor Zverovich
e7875ae0fa
Fix formatting of some nested ranges
2023-12-23 09:35:32 -08:00
Victor Zverovich
3eb3aef575
Fix handling of set_debug_format
2023-12-23 08:32:36 -08:00
Victor Zverovich
56d7a8c157
Simplify test
2023-12-23 07:02:58 -08:00
Victor Zverovich
44dd6c0e09
Add glibc support to scan
2023-12-22 13:43:20 -08:00
Victor Zverovich
3a0f4af4e9
Refactor file layer
2023-12-22 11:27:22 -08:00
Victor Zverovich
1ca1a4a7a9
Update scan test
2023-12-22 08:22:00 -08:00
Victor Zverovich
3a2c50d4ac
Cleanup test
2023-12-19 15:28:10 -08:00
Victor Zverovich
18c43a214c
Cleanup test
2023-12-19 13:46:48 -08:00
Vladislav Shchapov
6b07fff0d9
Make hex float test more stable on different libc ( #3762 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-12-19 11:03:06 -08:00
Vladislav Shchapov
923005bd4f
Add stdlib version check for C++20 ( #3754 )
...
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-12-17 08:33:17 -08:00
Victor Zverovich
afa85e46c3
Apply clang-format
2023-12-17 07:32:22 -08:00
js324
6025bd7c37
Add localized formatting to non-decimal presentation types of ints ( #3750 )
2023-12-15 07:51:25 -08:00
Kefu Chai
274ba2645b
allow format_as() to format reference ( #3739 )
...
before this change, format_as() is unable to format a type which
has `auto format_as() -> const another_type&`, and `another_type`
is formattable. because `format_as_result` maps the result type
as it is, and the compiler refuses to compile
`static_cast<T*>(nullptr)`, where T is a reference type. but
it would be handy if we could use `format_as()` to format types
which, for instance, owns / inherit from a formattable type, and
delegate the formatter to these variables instead without creating
a copy of them.
in this change:
* instruct `format_as_result` to map the
result type to the decayed type, so that `type` can be the decayed
type of result type, and this also enables `type` to be formattable,
as long as the decayed type is formattable.
* corresponding test is added to format-test.cc
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-12-10 08:49:53 -08:00
Victor Zverovich
9048add999
Report out-of-range errors in chrono
2023-12-10 08:28:50 -08:00
Ikko Eltociear Ashimine
9a6fd11a56
Fix typo in gmock-gtest-all.cc ( #3747 )
...
syntetic -> synthetic
2023-12-09 08:13:20 -08:00
js324
573d74395b
error on bool arg w/ char pres_type ( #3734 )
2023-12-05 13:45:10 -08:00
Victor Zverovich
5d55375a8a
Experiment with scan buffering
2023-12-03 08:09:36 -08:00
Ivan Shapovalov
71bd51e6c2
Implement %j
specifier for std::chrono::duration
( #3732 )
...
This adds support for `%j` presentation type for duration types:
> "If the type being formatted is a specialization of duration, the decimal
number of days without padding."
Fixes #3643 .
2023-12-03 07:29:58 -08:00