Commit Graph

730 Commits

Author SHA1 Message Date
Victor Zverovich
47c84d7974 Move part of write API (spec factories) to a separate header 2017-08-27 09:08:44 -07:00
Victor Zverovich
20168147dd Add ptr, a helper function for pointer formatting 2017-08-27 08:41:28 -07:00
Victor Zverovich
27ad6cee82 Use standard enable_if 2017-08-26 10:41:58 -07:00
Victor Zverovich
64681739fd Fix a warning 2017-08-26 09:32:37 -07:00
Victor Zverovich
016acebb56 Remove legacy code 2017-08-26 09:09:43 -07:00
Victor Zverovich
466386d5cd Suppress a warning in gmock 2017-08-26 08:50:09 -07:00
Victor Zverovich
5e0562ab51 Separate parsing and formatting 2017-08-13 13:09:02 -07:00
Victor Zverovich
032c83807f Fix a segfault in test on glibc 2.26 #551, take 2 2017-08-10 09:27:06 -07:00
Victor Zverovich
6655e804c4 Fix a segfault in test on glibc 2.26 #551 2017-08-06 20:18:04 -07:00
Victor Zverovich
1102d46508 Make format spec parsing context-independent 2017-07-30 08:58:24 -07:00
Victor Zverovich
45911770c5 Separate parsing and formatting in extension API 2017-07-29 07:50:16 -07:00
Victor Zverovich
2f4f49fd60 Switch from cstring_view to string_view 2017-07-22 08:24:37 -07:00
Victor Zverovich
d16582a038 Move printf-related code to printf.cc 2017-07-15 09:46:18 -04:00
Mario Werner
ac5484c4e7 add alias targets with fmt namespace
For the consumer it should not matter if fmt has been added to the
project as subdirectory or via find_package. With the alias targets
the library can be always imported via fmt::fmt.
2017-05-25 14:36:16 +03:00
Mario Werner
746adc5e71 added new namespace to the header only target in the find package test 2017-05-25 14:36:16 +03:00
Bjoern Thiel
048d2aec27 CMake imported targets should be namespaced 2017-05-21 14:17:12 +03:00
Victor Zverovich
07ed421521 Fix handling of implicit conversion to integral types larger than int (#507) 2017-05-06 10:23:20 -07:00
Victor Zverovich
dcfd40a1b8 Revert #456
Revert #456 because it causes issues for known types (#495) and is not C++98-compatible.
2017-05-06 08:36:54 -07:00
Andreas Schönle
79f11dbaa7 Allow compiling and using as DLL in windows (#502)
* printf.h fixed to compile clean - need to check whether this is the right
thing to do

* fix warnings and errors in test compiles with BUILD_SHARED_LIBS

* did requested changes and added one change to allow all tests to succeed
in windows DLL
2017-05-05 14:58:09 +02:00
effzeh
73ca9948fe Fix FormatBuf implementation (#491)
Fixes #491 (and probably #480) Before, the put-area of the custom streambuf
implementation was (sometimes) incorrectly extended beyond the writeable buffer.
The new implementation is in some cases not as efficient as the old, but avoids
to write into uninitialized memory.
2017-04-08 09:07:33 -07:00
Arthur Danskin
cbac016cce %.f should have zero precision, not default precision 2017-04-08 07:18:10 -07:00
Victor Zverovich
12252152ac CStringRef -> cstring_view 2017-03-26 15:13:10 -07:00
Victor Zverovich
32ec13f149 Switch to C++ locale 2017-03-25 08:20:06 -07:00
Victor Zverovich
b4f4b7e21a Clean the buffer API (#477) 2017-03-12 09:48:21 -07:00
Victor Zverovich
f423e46835 Replace clear() with resize(0) and data_ -> store_ 2017-03-11 08:30:15 -08:00
Victor Zverovich
7175bd8ae6 Fix error on MinGW 2017-03-09 06:09:43 -08:00
Victor Zverovich
7258d1b8f3 Fix tests 2017-03-08 08:08:08 -08:00
Victor Zverovich
3610f34c70 Fix windows build 2017-03-04 07:10:54 -08:00
Victor Zverovich
6f8006c2ce Add printf overloads that takes a writer (#476) 2017-02-25 09:58:42 -08:00
Victor Zverovich
db0d54f855 Fix error on MinGW 2017-02-25 09:00:56 -08:00
Victor Zverovich
c333dca065 Follow standard naming conventions 2017-02-21 06:56:26 -08:00
Victor Zverovich
6a2ff287b2 Follow standard naming conventions 2017-02-19 08:05:41 -08:00
Victor Zverovich
eedfd07f8b internal::MemoryBuffer -> basic_memory_buffer 2017-02-18 09:13:12 -08:00
Victor Zverovich
4ec8860783 ArgFormatter -> arg_formatter 2017-02-18 07:46:32 -08:00
Victor Zverovich
50e716737d StringRef -> string_view, LongLong -> long_long 2017-02-18 07:34:52 -08:00
Victor Zverovich
e022c21ddc Fix windows build 2017-02-18 06:29:33 -08:00
Victor Zverovich
87b691d80c Merge StringWriter into StringBuffer 2017-02-17 06:23:16 -08:00
Victor Zverovich
c2f021692f Merge ArrayWriter into FixedBuffer 2017-02-17 06:09:26 -08:00
Victor Zverovich
fefaf07b6f Pass buffer instead of writer to format_value 2017-02-14 19:39:34 -05:00
Victor Zverovich
6e568f3a08 buffer -> basic_buffer 2017-02-14 12:08:37 -05:00
olivier80
a00006119f Add join argument allowing formating list of values separated by a (#466)
Add join argument allowing formating list of values separated by a
string. Each value is formated according the format specifier.
2017-02-08 06:55:12 -08:00
Victor Zverovich
a13b96ed88 Simplify API 2017-02-05 06:54:03 -08:00
Victor Zverovich
624c58682d Simplify API 2017-02-05 06:41:39 -08:00
Victor Zverovich
7ae8bd7073 basic_format_arg -> basic_arg, Buffer -> buffer 2017-02-05 06:09:06 -08:00
Victor Zverovich
296e9cada2 FrmatSpec -> format_spec 2017-01-28 12:51:35 +00:00
Victor Zverovich
984a102921 Remove IntFormatSpec and StrFormatSpec 2017-01-28 04:26:48 -08:00
Victor Zverovich
4863730eca Remove pad 2017-01-22 19:11:47 -08:00
Victor Zverovich
aaa0fc396b Improve compatibility with old compilers and fix test 2017-01-22 12:16:16 -08:00
Victor Zverovich
aea5d3ab00 Improve compatibility with older gcc and update tests 2017-01-22 11:50:52 -08:00
Victor Zverovich
ec15ef7b7b Replace operator<< with write function 2017-01-22 10:00:34 -08:00
Andreone
67662702aa allow to stream user defined types in a MemoryWriter (#456)
* allow to stream user defined types in a MemoryWriter

* fix indent

* follow Google C++ Style

* make code c++98 compatible

* fix macro usage

* disable ability to stream user defined types if not at least c++11

* fix for disable ability to stream user defined types if not at least c++11

* use FMT_STATIC_ASSERT
2017-01-19 20:47:43 +01:00
mojoBrendan
d8754af063 Allow %s as generic format specifier in printf (#453)
* Allow %s as generic format specifier in printf

Signed integers are formatted as %d
Unsigned integers are formatted as %u
Doubles are formatted as %f
Chars are formatted as %c
Void Pointers are formatted as %p

* Remove '%S' handling and use visitor for generic format strings

* Default for floating point is now "%g" rather than "%f"
2017-01-14 11:45:48 -08:00
Jean-Charles Lefebvre
e0251fdcef BasicContainerWriter utility added 2017-01-05 20:44:35 -08:00
Victor Zverovich
8428621ddc BasicWriter -> basic_writer 2016-12-30 12:26:12 -08:00
Jean-Charles Lefebvre
e1689cb985 Custom FormatSpec (#439) (#444)
* A custom FormatSpec type can be passed as a template argument to the ArgFormatter chain (#439)

* Corrected nested-name-specifier error

* Spec template argument defaulted to FormatSpec

* Forward declaration of FormatSpec

* Style

* Style (part 2)

* Style (part 3)
2016-12-30 11:29:40 -08:00
Victor Zverovich
939aff2936 Remove unnecessary template arg from basic_format_args 2016-12-30 10:19:38 -08:00
Victor Zverovich
b2a0d8914a Merge value and MakeValue 2016-12-30 09:25:01 -08:00
Victor Zverovich
acd1811c50 Value -> value 2016-12-30 08:05:26 -08:00
Victor Zverovich
42a319074c Parameterize Value on context 2016-12-29 18:07:05 -08:00
Victor Zverovich
d705d51671 Parameterize basic_format_arg on context (#442) 2016-12-29 15:25:22 -08:00
Victor Zverovich
422236af7c Don't erase writer type 2016-12-28 07:55:33 -08:00
Victor Zverovich
abb6996f36 MakeArg -> make_arg 2016-12-27 07:55:44 -08:00
Victor Zverovich
ee1651ce07 Handle empty format_arg state 2016-12-27 07:43:25 -08:00
Victor Zverovich
d86e51e9c1 Don't inherit basic_format_arg from internal::Value 2016-12-24 07:46:50 -08:00
Victor Zverovich
f05888692c Fix handling of unpacked args (#437) 2016-12-23 08:24:48 -08:00
Victor Zverovich
6cba8fe9ba Move stuff out of internal::Value 2016-12-15 07:51:40 -08:00
Victor Zverovich
fac5546321 Fix test compilation for FreeBSD (#433) 2016-12-14 06:28:41 -08:00
Victor Zverovich
e1ee5bf0ba Replace StringValue with StringRef 2016-12-11 21:13:54 -08:00
Victor Zverovich
0854f8c3bf Parameterize formatting argument on char type. 2016-12-11 15:43:11 -08:00
Victor Zverovich
9cf6c8fdc6 Get rid of fmt::internal::Arg 2016-11-26 10:21:31 -08:00
Victor Zverovich
284297019f Merge BasicArgFormatter and ArgFormatter 2016-11-20 09:36:27 -08:00
Victor Zverovich
d4084ac5b1 Get rid of ArgVisitor 2016-11-20 09:11:13 -08:00
Victor Zverovich
d58cc8a4a8 Merge BasicPrintfArgFormatter and PrintfArgFormatter 2016-11-20 07:42:38 -08:00
Victor Zverovich
796beaaddb Fix collision with global convert function (#425) 2016-11-19 12:05:49 -08:00
Victor Zverovich
c9dc41ab3f Replace ArgVisitor::visit with a free visit function 2016-11-19 07:59:54 -08:00
alabuzhev
25f8ad13dd Correction of 418 (#420) 2016-11-11 18:27:39 +01:00
alabuzhev
1d2049b53e Issue #418 - Minimal supported library subset (#419) 2016-11-10 20:29:12 +01:00
Victor Zverovich
55a1ac5035 Fix test 2016-11-07 08:55:40 -08:00
Victor Zverovich
85793a18cd Simplify API 2016-11-06 19:27:14 -08:00
Victor Zverovich
9998f66f8c Replace formatter with context 2016-11-06 18:59:17 -08:00
Victor Zverovich
6274401919 Fix warnings 2016-11-06 12:37:31 -08:00
Victor Zverovich
1daddec151 FMT_NULLPTR -> FMT_NULL and improve formatting 2016-11-06 09:05:58 -08:00
alabuzhev
49ccb2e449 Using FMT_NULLPTR instead of literal 0 2016-11-03 06:39:40 -07:00
Victor Zverovich
2bba420337 Pass writer directly to format_value (#400) 2016-10-26 17:54:11 -07:00
Victor Zverovich
b656a1c133 Make value the second argument to format_value 2016-10-25 06:19:19 -07:00
Victor Zverovich
edf98792a5 Pass writer to format_value 2016-10-25 05:55:40 -07:00
Victor Zverovich
be613204ab Char -> char_type 2016-10-22 08:19:19 -07:00
Victor Zverovich
f85d5f4dac BasicFormatter -> basic_formatter 2016-10-22 08:04:20 -07:00
Victor Zverovich
18dfa257d0 Pass correct formatters to make_format_args 2016-10-21 06:46:21 -07:00
codicodi
1e018e65cb Thread-safe time formatting
This adds thread-safe (at least on platforms that provide necessary extensions) replacement functions for std::localtime and std::gmtime. Alternatively they could be placed in a new source file time.cc, but time.h seems so empty right now...
2016-10-17 07:00:04 -07:00
Victor Zverovich
dafbec7553 Fix type safety when using custom formatters (#394) 2016-10-07 08:37:06 -07:00
Victor Zverovich
65a8c2c343 format_arg -> format_value 2016-10-02 08:49:10 -07:00
Victor Zverovich
8a77e7927e Enable C++11 in tests. 2016-10-01 07:18:55 -07:00
Victor Zverovich
1e8553d679 Enable C++11 in tests. 2016-10-01 07:02:58 -07:00
Victor Zverovich
6fd6ecc10d Enable C++11 for no-windows-h-test 2016-09-28 07:45:28 -07:00
Victor Zverovich
209a1d58bf Get rid of macros 2016-08-27 09:06:21 -07:00
Victor Zverovich
0d8aca8de3 Get rid of FMT_VARIADIC_VOID 2016-08-27 08:16:49 -07:00
Victor Zverovich
4ece95a754 Make make_format_args public 2016-08-27 07:57:48 -07:00
Victor Zverovich
0028ce57b6 Get rid of FMT_VARIADIC 2016-08-26 17:23:13 -07:00
Victor Zverovich
43c0095aa3 Refactor type mapping 2016-08-26 08:50:09 -07:00
Victor Zverovich
4873685c7e ArgArray -> format_arg_store 2016-08-26 06:44:41 -07:00
Victor Zverovich
fc73e10620 ArgList -> format_args 2016-08-25 08:50:07 -07:00
Victor Zverovich
92605eb4f7 Remove FMT_USE_VARIADIC_TEMPLATES 2016-08-25 08:44:53 -07:00
Victor Zverovich
9bb213e920 FormatError -> format_error 2016-08-25 08:38:07 -07:00
Victor Zverovich
a79c7b4e8f Fix handling of unsigned char strings (#373) 2016-08-23 08:42:25 -07:00
Victor Zverovich
f19d8f9655 Improve error reporting (#357) 2016-08-16 07:08:53 -07:00
Victor Zverovich
a5d0adf395 Use a heuristic to detect empty strftime result (#367) 2016-08-05 07:27:56 -07:00
Victor Zverovich
1a23f9c274 Correct buffer growth when formatting time (#367) 2016-08-04 08:47:59 -07:00
Victor Zverovich
9dbb60c4c8 Move fmt::fprintf to printf.h 2016-08-03 08:52:05 -07:00
Victor Zverovich
6ee9f2ed09 Make printf argument formatters public (#335, #360) 2016-07-21 06:59:28 -07:00
Victor Zverovich
ab054532ce Move writer to PrintfFormatter object for consistency with BasicFormatter 2016-07-20 08:21:13 -07:00
Victor Zverovich
d4ddaaf2b1 Make PrintfFormatter public (#335, #360) 2016-07-20 08:09:14 -07:00
Victor Zverovich
65cd664195 Fix handling of wide strings in StringWriter 2016-07-18 08:47:11 -07:00
Victor Zverovich
1acfd07f1e Workaround broken MinGW installation on AppVeyor (#355) 2016-07-16 08:00:53 -07:00
Victor Zverovich
d4885cea62 Document BasicStringWriter 2016-07-16 08:00:53 -07:00
Victor Zverovich
8631694021 check -> const_check to avoid a conflict with AssertMacros.h (#350) 2016-07-12 06:40:23 -07:00
Victor Zverovich
0e6df7e511 Fix handling of thousands separator (#353) 2016-07-11 06:31:23 -07:00
Victor Zverovich
4569b4dbd6 Fix -Wpessimizing-move 2016-06-14 15:53:40 -07:00
Victor Zverovich
c9bb5468b6 Fix clang warning 2016-06-14 15:42:32 -07:00
Glen Stark
72d51e0b1e Implemented #335: custom printf support 2016-06-09 08:41:56 -07:00
Victor Zverovich
96c28f748d Detect if lconv contains thousands_sep 2016-05-23 07:41:22 -07:00
Victor Zverovich
e160c2b79a Add fmt prefix to includes (#332)
Technically it is not necessary, but prevents errors when people add the
fmt directory itself rather than its parent to includes.
2016-05-22 16:42:44 -07:00
Victor Zverovich
e2a332e5df Use a mock to test locale support 2016-05-19 17:38:44 -07:00
Victor Zverovich
5b106083e7 Check if setlocale succeeded 2016-05-19 06:48:35 -07:00
Victor Zverovich
b6c0cf9683 Add fmt::to_string (#326) 2016-05-18 19:54:52 -07:00
Victor Zverovich
d00b43c592 Workaround an issue with "delete this" in GMock and gcc 6.1.1 2016-05-14 17:58:14 -07:00
Victor Zverovich
cc9b051d12 Move format_system_error to the public API (#323) 2016-05-13 07:19:39 -06:00
Victor Zverovich
90730e706b Move ostream support to ostream.{h,cc} 2016-05-06 07:37:20 -07:00
Dean Moldovan
f3d6d3a8f2 Fix find-package-test failure with non-default compiler
The failure would happen when the main project was configured with
a compiler which is not the system default. The new configuration
was not forwarded to "ctest --build-and-test". This fixes it.
2016-05-04 00:51:28 +02:00
Dean Moldovan
8eaad79de7 Fix FMT_STATIC_ASSERT compile test
FMT_STATIC_ASSERT is defined in posix.h so expect_compile_error was
actually failing on a missing macro instead of the static assert.
2016-05-04 00:36:48 +02:00
Dean Moldovan
131d446183 Fix compile tests not clearing the cache after an error
The cache bug meant that a failed test would appear forever broken,
even if the proper fix was applied.
2016-05-04 00:36:11 +02:00
Dean Moldovan
3a04ebf14f Fix user-defined literal detection for Intel C++ compiler 2016-05-03 13:43:51 +02:00
Victor Zverovich
fa5ebd27d4 Implement time formatting 2016-04-25 08:07:27 -07:00
Victor Zverovich
afd67497de cppformat -> fmt 2016-04-24 09:06:12 -07:00
Victor Zverovich
5e1576f79f cppformat -> fmt 2016-04-24 08:17:47 -07:00
vitaut
bfdca8b576 Make ArgVisitor public and document it
Also remove unnecessary namespace qualification.
2016-04-20 09:11:33 -07:00
vitaut
b69e6dcead Make BasicArgFormatter public and add ArgFormatter
This allows providing custom argument formatters without relying on
internal APIs (#235).
2016-04-19 08:56:31 -07:00
vitaut
f68771abe4 Implement locale-specific integer formatting 2016-04-17 19:06:03 -07:00
vitaut
581afee039 Enable wstring in gtest (#304) 2016-04-13 08:26:42 -04:00
vitaut
a99891e7a5 Use a mock to test custom argument formatter 2016-03-19 07:36:28 -07:00
vitaut
52f89065e1 Make argument formatter customizable 2016-03-19 07:20:31 -07:00
vitaut
9ffe98c00e Fix/suppress MSVC warnings 2016-03-19 06:39:33 -07:00
vitaut
63d7f3d116 Don't check for C++11 features if C++11 support is disabled 2016-03-18 08:10:06 -07:00
vitaut
c052cf11b9 Improve coding style consistency 2016-03-18 07:59:04 -07:00
vitaut
0c901efb16 Use less strict pedantic flags for tests because of GMock (#291) 2016-03-18 07:52:24 -07:00
vitaut
59607f5e99 Fix warnings on GCC 4.6.3 2016-03-09 07:47:08 -08:00
vitaut
763d1fe6a3 Suppress warnings in Google Mock 2016-03-08 07:36:22 -08:00
vitaut
7d6622942c Break a long line 2016-03-08 06:55:41 -08:00
vitaut
0867c1b447 Test writing to ostream 2016-03-08 06:47:53 -08:00
Michael Winterberg
8f4b8edb8b Added test of error code that forces the insufficient buffer code path. 2016-03-04 17:47:37 -08:00