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