Victor Zverovich
aca49379a5
Fix a few minor issues detected by CppCheck
...
Thanks to Dmitry Andriyankov for reporting.
2014-11-24 07:38:26 -08:00
Victor Zverovich
615c1eef6b
Fix error handling in fmt::fprintf.
2014-11-14 09:40:01 -08:00
Victor Zverovich
755ecb0311
Fix warnings
2014-10-13 08:39:38 -07:00
Victor Zverovich
d707adce5c
Fix warning in clang
2014-10-13 06:59:18 -07:00
Victor Zverovich
8b76e97062
Support compilation with exceptions disabled
2014-10-06 08:30:55 -07:00
Victor Zverovich
8c4db5081b
Fix Windows build
2014-09-29 09:17:02 -07:00
Victor Zverovich
d1ded569ff
Separate memory management and formatting
...
Array is split into an abstract Buffer class and a concrete MemoryBuffer class. BasicWriter now does all memory allocation through a Buffer object. Subclasses of BasicWriter may use different buffer types. The new BasicMemoryBuffer class uses the default MemoryBuffer.
2014-09-29 08:48:16 -07:00
Victor Zverovich
f43caef311
Fix linkage
2014-09-25 07:21:48 -07:00
Victor Zverovich
75a2ea03a7
Reduce code bloat
...
Special case C strings because there is no need to handle size for them. Add support for pre-C++11 compilers to make_type.
2014-09-25 07:10:44 -07:00
Victor Zverovich
163178eee1
Make print non-inline
2014-09-25 07:08:25 -07:00
Victor Zverovich
ab6e759291
pointer_value -> pointer
2014-09-23 08:21:58 -07:00
Victor Zverovich
beb00edf73
Store types in ArgList instead of Arg
2014-09-23 07:59:43 -07:00
Victor Zverovich
1d4640415d
Pass ArgList by value
...
This improve bloat test results:
Old stripped size: 67680 (optimized)
New stripped size: 59488 (optimized)
2014-09-21 08:08:52 -07:00
Victor Zverovich
14f2577569
Fix linkage
2014-09-19 08:45:05 -07:00
Victor Zverovich
b9a568b1dd
Add support for custom memory allocator to BasicWriter
2014-09-19 07:51:42 -07:00
Victor Zverovich
f2c9df8e9f
Move safe_strerror to anonymous namespace.
2014-09-05 08:44:41 -07:00
Victor Zverovich
88e0db8486
Test format_error_code.
2014-09-05 08:04:26 -07:00
Victor Zverovich
22f75d8b6d
Don't throw exceptions from error formatting functions. Gracefully fallback to a less descriptive message instead.
2014-09-03 08:03:05 -07:00
Victor Zverovich
5debb2aa86
Refactor error reporting to reduce duplication.
2014-08-29 08:16:10 -07:00
Victor Zverovich
605d2600f8
Improve error reporting.
2014-08-29 07:45:55 -07:00
Victor Zverovich
271fa8c908
Improve handling of format strings in custom arguments.
2014-08-29 07:23:54 -07:00
Victor Zverovich
3947a7a98c
Move check_sign to anonymous namespace.
2014-08-29 06:57:53 -07:00
Victor Zverovich
32344d9b14
Comment
2014-08-28 08:11:21 -07:00
Victor Zverovich
c57d7a506f
Factor out argument processing logic common between format and printf to FormatterBase::{next_arg,get_arg}.
2014-08-28 08:05:47 -07:00
Victor Zverovich
56fc525e98
Get rid of FormatterBase::error_.
2014-08-28 07:48:55 -07:00
Victor Zverovich
279c7a6e6a
Change "number is too big in format" to "number is too big" because the error can occur not only in the format function.
2014-08-28 06:50:52 -07:00
Victor Zverovich
526b7fc91d
Throw exception in parse_nonnegative_int if the number is too big.
2014-08-28 06:42:59 -07:00
Victor Zverovich
9646e38c3b
Don't use error_ in parse_arg_index.
2014-08-27 09:13:42 -07:00
Victor Zverovich
da0f7c0a51
Improve error reporting in parse_arg_index.
2014-08-27 09:04:51 -07:00
Victor Zverovich
42de4f1f7d
Get rid of FormatErrorReporter.
2014-08-27 08:24:31 -07:00
Victor Zverovich
dd4323f31c
Add fprintf and write docs.
2014-08-21 08:49:13 -07:00
Victor Zverovich
be00d8b272
Convert integer argument like printf does.
2014-08-19 08:49:10 -07:00
Victor Zverovich
406c6123fb
Cleanup
2014-08-19 08:47:38 -07:00
Victor Zverovich
c4a4a05d12
Improve handling of char in printf.
2014-08-19 08:14:21 -07:00
Victor Zverovich
186734cf8b
Fix warnings.
2014-08-18 07:03:12 -07:00
Victor Zverovich
adce0245dc
Fix a warning.
2014-08-17 07:53:55 -07:00
Victor Zverovich
366e852f00
Fix a warning.
2014-08-15 16:35:41 -07:00
Victor Zverovich
bb01633d19
Fix a warning.
2014-08-15 09:03:59 -07:00
Victor Zverovich
fb32161fa4
Move implementation specific stuff from format.h to format.cc.
2014-08-15 08:40:03 -07:00
Victor Zverovich
d4412a01f0
Simplify isinfinity.
2014-08-13 08:01:51 -07:00
Victor Zverovich
1a0c76a81a
Fix formatting of long double.
2014-08-13 07:51:02 -07:00
Victor Zverovich
e488a28601
Fix a warning.
2014-08-13 06:53:43 -07:00
Victor Zverovich
d3a7039e31
Implement 'll' specifier.
2014-08-12 08:36:19 -07:00
Victor Zverovich
316ae7e244
Implement more printf length specifiers.
2014-08-09 10:04:35 -07:00
Victor Zverovich
e22d657202
Fix MSVC warnings.
2014-08-08 06:51:09 -07:00
Victor Zverovich
a259c941e2
Implement 'l' length specifier.
2014-08-01 07:15:27 -07:00
Victor Zverovich
d81fafc295
Fix tests on MSVC, take 2.
2014-07-31 07:43:14 -07:00
Victor Zverovich
f4156b57f0
Implement 'hh' length specifier in printf.
2014-07-30 08:39:07 -07:00
Victor Zverovich
39b0930aee
Improve handling of 'h' length specifier in printf.
2014-07-30 08:08:08 -07:00
Victor Zverovich
eeca22357b
Handle 'h' length specifier in printf.
2014-07-30 07:37:16 -07:00
Victor Zverovich
e4c4e4e944
Improve handling of dynamic precision in printf.
2014-07-30 06:51:35 -07:00
Victor Zverovich
be785a8a43
Fix MSVC build.
2014-07-29 09:14:07 -07:00
Victor Zverovich
bf5b246717
fmt_isinf -> isinfinity
2014-07-29 08:22:52 -07:00
Victor Zverovich
24d6baa60f
Fix Clang build.
2014-07-29 07:49:34 -07:00
Victor Zverovich
481c313df5
Fix the build.
2014-07-29 07:19:54 -07:00
Victor Zverovich
d8b9f413fe
Fix https://github.com/cppformat/cppformat/issues/50 .
2014-07-29 06:38:05 -07:00
Victor Zverovich
4d049cf598
More fixes for https://github.com/cppformat/cppformat/issues/50 .
2014-07-28 08:41:50 -07:00
Victor Zverovich
75b5eb4b9d
More fixes for https://github.com/cppformat/cppformat/issues/50 .
2014-07-27 15:09:05 -07:00
Victor Zverovich
5d4803a567
More fixes for https://github.com/cppformat/cppformat/issues/50 .
2014-07-27 12:53:42 -07:00
Victor Zverovich
2a1c0c9969
Obey line length limit.
2014-07-26 09:45:03 -07:00
Victor Zverovich
f634ccb344
ReportUnknownType -> report_unknown_type ( https://github.com/cppformat/cppformat/issues/50 )
2014-07-26 08:42:19 -07:00
Victor Zverovich
b498ba0bc5
FormatFloat -> format_float ( https://github.com/cppformat/cppformat/issues/50 )
2014-07-26 08:03:03 -07:00
Victor Zverovich
d142e3b55f
Simplify handling of flags.
2014-07-25 08:29:06 -07:00
Victor Zverovich
d699c2a0d9
Don't duplicate integer format specifiers when formatting char as integer.
2014-07-25 08:24:27 -07:00
Victor Zverovich
a997de90eb
Fix https://github.com/cppformat/cppformat/issues/57 .
2014-07-25 07:10:33 -07:00
Victor Zverovich
c1db293518
Don't use Writer's buffer directly in formatters. Unfriend BasicFormatter.
2014-07-24 08:53:27 -07:00
Victor Zverovich
a7d94f0c61
Fix https://github.com/cppformat/cppformat/issues/55 .
2014-07-22 12:37:10 -07:00
Victor Zverovich
f1dfd59a41
HandleArgIndex -> handle_arg_index. Use error_ instead of a local.
2014-07-16 08:49:23 -07:00
Victor Zverovich
4edc88f609
Add FormatterBase.
2014-07-16 08:38:15 -07:00
Victor Zverovich
9144a8fbbe
PrintfParser -> PrintfFormatter.
2014-07-16 07:59:45 -07:00
Victor Zverovich
9d74f9542b
IsNegative -> is_negative. Simplify WidthHandler and ArgFormatter.
2014-07-16 07:27:54 -07:00
Victor Zverovich
512e2ced93
Rewrite argument formatting using ArgVisitor.
2014-07-14 08:47:03 -07:00
Victor Zverovich
e3a2ac8725
Move StringValue to Arg & simplify StringTraits.
2014-07-14 08:04:17 -07:00
Victor Zverovich
591ad0a64a
Add ArgVisitor.
2014-07-14 06:55:29 -07:00
Victor Zverovich
9c47f3e057
Fix MinGW issues, take 2.
2014-07-09 09:45:18 -07:00
Victor Zverovich
0ffcec0090
Fix MinGW issues.
2014-07-09 09:35:36 -07:00
Victor Zverovich
8321d0ecf9
Fix warnings on MinGW.
2014-07-09 08:39:01 -07:00
Victor Zverovich
e3a44c11f6
Add an overload of print that accepts std::ostream.
2014-07-09 06:56:36 -07:00
Victor Zverovich
b9a06bafd8
internal::FormatParser -> BasicFormatter.
2014-07-08 16:38:50 -07:00
Victor Zverovich
e825156add
Move FormatParser to the internal namespace.
2014-07-08 16:20:33 -07:00
Victor Zverovich
6e5551e77a
ArgInfo -> Arg
2014-07-02 06:33:25 -07:00
Victor Zverovich
5d15bdd5a5
Clean.
2014-07-01 16:23:50 -07:00
Victor Zverovich
39166f9aa9
Remove more deprecated code.
2014-07-01 09:15:20 -07:00
Victor Zverovich
2dc108b31f
Remove deprecated code 🎆 🎆 🎆
2014-07-01 09:10:43 -07:00
Victor Zverovich
cff1c79469
Fix another warning.
2014-07-01 06:27:15 -07:00
Victor Zverovich
537c6c4e18
Fix a warning.
2014-07-01 06:21:51 -07:00
Victor Zverovich
eb034a0589
Suppress warnings.
2014-06-30 17:40:53 -07:00
Victor Zverovich
f4208771a8
Replace ThrowWinError with WindowsError class.
2014-06-30 17:32:08 -07:00
Victor Zverovich
a318244a1c
Fix Windows build.
2014-06-30 16:48:05 -07:00
Victor Zverovich
53201033f2
Refactor error reporting API.
2014-06-30 14:26:29 -07:00
Victor Zverovich
d29e505568
Move PrintfParser from BasicWriter to the internal namespace.
2014-06-30 07:12:09 -07:00
Victor Zverovich
e63a0ff125
Deprecate c_str() and str().
2014-06-30 06:43:53 -07:00
Victor Zverovich
21111cc954
MakeArg -> make_arg. Move printf out of Writer.
2014-06-29 19:52:26 -07:00
Victor Zverovich
a1264926a0
Writer::format -> Writer::write. Make fmt::format return string.
2014-06-29 11:51:10 -07:00
Victor Zverovich
d5b8196749
Update the API.
2014-06-28 21:56:40 -07:00
Victor Zverovich
2e03963e9e
Add fmt::print. Undocument and deprecate old API.
2014-06-28 19:44:39 -07:00
Victor Zverovich
ddbd50de4a
Fix build.
2014-06-28 17:44:52 -07:00
Victor Zverovich
302b8f4406
Fix MSVC build, take 2.
2014-06-24 10:46:01 -07:00
Victor Zverovich
ea99bfb902
Move ArgInfo to internal namespace and add ArgList.
2014-06-24 07:54:26 -07:00
Victor Zverovich
3e53ac2451
Fix warnings.
2014-06-23 08:48:42 -07:00
Victor Zverovich
d0587445cb
Test negative precision.
2014-06-23 08:39:32 -07:00
Victor Zverovich
4099a1269b
Add support for negative width.
2014-06-23 08:10:50 -07:00
Victor Zverovich
1a75ed01cd
Implement dynamic precision in printf.
2014-06-23 07:16:46 -07:00
Victor Zverovich
5be9a8de3f
Reduce the number of integer types that need to be handled.
2014-06-21 09:40:04 -07:00
Victor Zverovich
b1bbc90919
Use precision from FormatSpec.
2014-06-21 08:32:00 -07:00
Victor Zverovich
879838a539
Implement integer precision.
2014-06-20 07:34:02 -07:00
Victor Zverovich
cb743c0249
Parse printf format specs.
2014-06-19 07:40:35 -07:00
Victor Zverovich
1275923a68
Implement dynamic width in printf.
2014-06-17 06:53:48 -07:00
Victor Zverovich
8666ea82f7
Merge branch 'master' of github.com:cppformat/cppformat
2014-06-16 07:49:37 -07:00
Victor Zverovich
1f19b986a0
Implement printf specifications.
2014-06-16 07:49:30 -07:00
Constantine Tarasenkov
6aace693db
Changes for MinGW compiler
2014-06-11 02:38:57 +04:00
Victor Zverovich
03776dd988
Add support for hexadecimal floating point format specifiers a and A.
2014-06-10 07:03:49 -07:00
Victor Zverovich
1b80148420
Implement '#' flag.
2014-06-07 08:57:55 -07:00
Victor Zverovich
bf790d2819
Ignore '0' flag for non-numeric types as printf does.
2014-06-07 07:31:25 -07:00
Victor Zverovich
80c99760fb
Fix warnings.
2014-06-07 07:11:34 -07:00
Victor Zverovich
533c8214d4
Avoid unnecessary check.
2014-06-06 08:54:37 -07:00
Victor Zverovich
438eba1402
Fix parsing of flags.
2014-06-06 08:01:48 -07:00
Victor Zverovich
9aba05b76a
Parse '0' flag.
2014-06-06 07:07:57 -07:00
Victor Zverovich
bf8b29fbe7
Add initial support for printf format specifications.
2014-06-06 06:38:37 -07:00
Victor Zverovich
1a2d7be3f5
Implement EXPECT_STDOUT and EXPECT_STDERR using pipes.
2014-05-03 09:48:54 -07:00
Victor Zverovich
9830c52816
Fix UTF8ToUTF16.
2014-05-01 07:20:38 -07:00
Victor Zverovich
dcd039df81
Define WIN32_LEAN_AND_MEAN.
2014-05-01 07:09:42 -07:00
Victor Zverovich
42764e54ae
Fix UTF16ToUTF8.
2014-05-01 07:09:08 -07:00
Victor Zverovich
53b4c31afb
Move Format*ErrorMessage to internal namespace.
2014-04-30 15:00:41 -07:00
Victor Zverovich
400812a905
CError -> WinError
2014-04-30 12:38:17 -07:00
Victor Zverovich
34712da2e7
Fix MSVC build.
2014-04-30 11:28:07 -07:00
Victor Zverovich
99e6112fda
Fix StrError, move Format*ErrorMessage to the implementation.
2014-04-30 11:20:41 -07:00
Victor Zverovich
25ce9e7153
Fix MSVC build.
2014-04-30 10:39:24 -07:00
Victor Zverovich
f79398699b
Add ThrowCError to throw an exception on C library errors.
2014-04-30 10:18:11 -07:00
Victor Zverovich
2c6372d790
Add a portable thread-safe version of strerror.
2014-04-30 09:42:48 -07:00
Victor Zverovich
ed2bdbaeaf
Fix Windows build.
2014-04-30 07:41:54 -07:00
Victor Zverovich
c16217bf9b
Test UTF8ToUTF16 and UTF16ToUTF8.
2014-04-30 07:38:43 -07:00
Victor Zverovich
da9aeab810
Add UTF8ToUTF16 and UTF16ToUTF8.
2014-04-30 07:23:43 -07:00
Victor Zverovich
859a4975f6
Throw SystemError if fwrite fails.
2014-04-30 06:55:21 -07:00
Victor Zverovich
d9db89814f
Refactor action classes, Action -> Sink, add comments.
2014-04-28 08:59:29 -07:00
Victor Zverovich
26277c8ab3
Implement move assignment operator for Array.
2014-04-25 08:18:07 -07:00
Victor Zverovich
f28645f900
Fix includes.
2014-04-24 12:37:06 -07:00
Victor Zverovich
cfeba45c35
Let the buffer grow as it pleases.
2014-04-23 18:37:49 -07:00
Victor Zverovich
33baa8f382
Fix the error when formatting a float with a filled buffer on MSVC.
2014-04-23 18:37:08 -07:00
Victor Zverovich
e78904b9b9
Move formatting functionality from BasicFormatter to BasicWriter & FormatPaser to simplify the implementation of standalone formatting methods.
2014-04-23 08:27:50 -07:00
Victor Zverovich
656a8378d1
Use ArgInfo instead of Arg where possible.
2014-04-22 08:58:54 -07:00
Victor Zverovich
03f68857e2
Replace BasicFormatter::Format with BasicWriter::FormatInt.
2014-04-20 08:46:09 -07:00
Victor Zverovich
f2e06804c5
Workaround an issue with Intel C++ compiler.
2014-04-10 10:49:55 -07:00
jdale88
4cabe16241
Should use Char not char, as Char is typedef'd to the correct type (char or wchar_t)
2014-03-11 19:03:26 +00:00
jdale88
a9862fdb22
Fixed some level 4 warnings in VS2013
2014-03-11 18:56:24 +00:00
Victor Zverovich
43fe100875
Move the implementation of ColorWriter::operator() to format.cc
2014-02-19 14:20:26 -08:00
Victor Zverovich
6968ef3bb3
Implement PrintColored.
...
Thanks https://github.com/jose55 for the idea.
2014-02-19 13:51:23 -08:00
Victor Zverovich
f1d8516467
Fix a warning about empty macro args.
2014-02-19 13:02:22 -08:00
Victor Zverovich
e9b2191689
Add a 32-bit version of CountDigits.
2014-02-19 12:43:55 -08:00
Victor Zverovich
3017fc6fb7
Improve 32-bit integer formatting performance by parameterizing FormatDecimal on integer type.
2014-02-17 09:12:24 -08:00