528 Commits

Author SHA1 Message Date
fo40225
cf73619e28 refactoring cross compiler macro 2018-05-09 02:06:19 -05:00
binyangl
0a62267fe4 Disable warning "C4702" when compiling json cpp using vs2013 and above 2018-05-08 20:55:30 +08:00
fo40225
6e5e9be736 corss compiler isnan 2018-05-08 12:35:08 +08:00
fo40225
4050143288 fix ValueTest/integers, CharReaderAllowSpecialFloatsTest/issue209 test failure when fp:fast on msvc 2018-05-05 15:05:22 +08:00
fo40225
3f0d91f08a fix ValueTest/specialFloats test failure when fp:fast on msvc 2018-05-05 14:38:53 +08:00
Mike R
a07fc53287 Add setting precision for json writers and also add decimal places precision type. (#752)
* Added setting precision for writers.
* Added special case for precise precision and global precision.
* Added good setting of type of precision and also added this type to BuiltStreamWriter and for its settings.
* Added some tests.
2018-03-13 15:35:31 -05:00
Christopher Dunn
3e2b8ea9cc
Minor changes for static analysis (#749)
re: #747
2018-03-03 12:51:17 -06:00
Thomas Jandecka
592d942b3b fix: byte shift when interpreting 32-bit utf-8 codepoints 2018-02-14 14:23:58 +01:00
luzpaz
5b45aa55ca Misc-typos (#741)
Found in downstream CMake repo via `codespell -q 3`
2018-02-08 19:05:50 -06:00
Maxim Ky
1ec85c76a4 Value::removeMember arg "removed" is optional now (could be nullptr) 2018-01-29 16:59:24 +03:00
Maxim Ky
c27936e0aa Value::removeMember moves the existing value to "removed" now 2018-01-29 16:58:45 +03:00
Andrey Okoshkin
9b569c8ce3 Make Value copy constructor simplier
Helper private methods Value::dupPayload() and Value::dupMeta() are added.
Value copy constructor doesn't attempt to delete its data first.
* Value::dupPayload() duplicates a payload.
* Value::dupMeta() duplicates comments and an offset position with a limit.
2018-01-12 15:59:20 +03:00
Andrey Okoshkin
392e3a5b49 Add basic test for Value::copy() (#704) 2018-01-12 14:36:01 +03:00
Andrey Okoshkin
c69148c946 Fix Value::copyPayload() and Value::copy() (#704)
Value copy constructor shares the same code with Value::copy() and Value::copyPayload().
New Value::releasePayload() is used to free payload memory.
Fixes: #704
2018-01-12 14:33:47 +03:00
Christopher Dunn
63ab03ca28
replace code point in range(0xD800, 0xDFFF) to replacement mark (#714)
closes #712
2017-12-20 14:43:55 -06:00
Wolfram Rösler
9079422ac1 Allow Json::Value to be used in a boolean context (#695)
Must bump soversion too.
2017-12-05 11:18:55 -06:00
Remy Jette
42ca02b833
Fix sign mismatch in valueToString
`valueToString` takes an argument `unsigned int precision`, but it is used with `%d` rather than `%u` in the `snprintf` format string. Make the format string look for an unsigned value instead.
2017-12-04 17:49:36 -08:00
Josh Soref
e6a588a246 Spelling (#703) 2017-12-03 10:54:29 -06:00
Sascha Zelzer
7c979e8661 Suppress implicit-fallthrough warnings from GCC 7 (#697)
GCC 7, when compiling with -Wimplicit-fallthrough=1 or higher, issues a warning which can be suppressed using a comment that matches certain regular expressions. The comment change does just that: signal to GCC that the fall through is intentional.

Fixes #676
2017-11-16 13:13:55 -06:00
Marcel Raad
240c85a10c
MSVC warning fixes in tests
- only use "#pragma GCC" on GCC-compatible compilers
- suppress deprecation warnings also on MSVC
2017-11-10 11:00:40 +01:00
Christopher Dunn
d61cddedac rm unused func 2017-10-29 23:45:01 -05:00
Wolfram Rösler
a06b390187 Un-deprecate removeMember overloads, return void (#693)
* Un-deprecate removeMember overloads, return void

Sometimes we just want to remove something we don't need anymore. Having
to supply a return buffer for the removeMember function to return something
we don't care about is a nuisance. There are removeMember overloads that
don't need a return buffer but they are deprecated. This commit un-deprecates
these overloads and modifies them to return nothing (void) instead of the
object that was removed.

Further discussion: https://github.com/open-source-parsers/jsoncpp/pull/689

WARNING: Changes the return type of the formerly deprecated removeMember
overloads from Value to void. May break existing client code.

* Minor stylistic fixes

Don't explicitly return a void value from a void function. Also, convert
size_t to unsigned in the CZString ctor to avoid a compiler warning.
2017-10-18 00:19:27 -05:00
Paweł Kierski
42a161fc80 Serialize UTF-8 string with Unicode escapes (#687)
Squashed and merged.
2017-10-03 18:19:20 -07:00
Christopher Dunn
a3a4059367 Use non-deprecated removeMember()
closes #683
2017-09-30 00:46:15 -05:00
Christopher Dunn
17c14e73a9 Use move ctor in append() 2017-09-15 18:55:50 -05:00
Christopher Dunn
c89f0282d1 Do not write to stderr
fixes #665
closes #666
2017-09-09 14:49:55 -05:00
Christopher Dunn
d830c0ab94 Fix writeCommentBeforeValue() iter deref
fixes #649
2017-08-28 08:43:05 -05:00
Christopher Dunn
90591c70cd Suppress GCC deprecated-declarations warning for tests 2017-08-28 08:42:43 -05:00
Christopher Dunn
6d31cec7cf Drop scons support 2017-08-27 15:02:01 -05:00
Christopher Dunn
004270db37 Avoid memory error
But simply use `.assign()` instead of the extra copy. (See comment from
@BillyDonhue at #580.)

fixes #578
closes #580
2017-08-27 14:16:01 -05:00
Gaurav
9006194139 Fix uninitialized value detected by valgrind
Fix issue reported in https://github.com/open-source-parsers/jsoncpp/issues/578
For std::string variable, length() is more readable than size().
2017-08-27 14:16:01 -05:00
damiram
ef16a35328 Fixing warnings. Added JSONCPP_DEPRECATED definition for clang. Also updating .gitignore to ignore .DS_Store files (Mac OS Finder generated) 2017-08-02 22:44:42 -07:00
Александр Малинин
6a15ca6442 Fix non-rvalue Json::Value assignment operator (should copy, not move) 2017-07-31 15:29:02 +03:00
Devin Jeanpierre
59e4d35339 Restore BL's authorship attribution, and add "The Jsoncpp Authors" where it was missing.
Requested/noticed in https://github.com/open-source-parsers/jsoncpp/pull/610, and a
followup to https://github.com/open-source-parsers/jsoncpp/pull/607 .
2017-07-21 03:44:36 -07:00
Christopher Dunn
f26edb05e5 Merge pull request #630 from jschueller/appveyor
Fix shared/static lib build conflict

resolves #631
2017-07-16 17:18:24 -05:00
pavel.pimenov
ea9f0cec30 strstr -> strchr
https://www.viva64.com/en/w/V817/print/
2017-07-13 14:21:53 +03:00
Julien Schueller
ffdcc9355d Avoid import/static libs name clash 2017-07-13 09:03:35 +02:00
Dhruv Paranjape
0ba8bd73f5 add move assignment operator for CZString and change copy assignment to const reference. 2017-07-08 17:47:13 +05:30
Dhruv Paranjape
23c44d9f9e overload append function for R value references. 2017-07-08 17:30:47 +05:30
Dhruv Paranjape
8996c377aa add move assignment operator for Json::Value class. 2017-07-08 17:27:07 +05:30
Bernhard Hartleb
4a9d77bcf7 Fix issue #567 in writing real values in different locales
The output of snprintf might produce ',' separators for decimal places if
certain locales are set. This commit moves the converversion from ',' to '.'
to correct place. Otherwise an additional ".0" might be appended.
2017-06-22 22:46:16 +02:00
Sylvestre Ledru
7f9cc2705c Allocate the proper memory for formatString. Fix a warning with gcc 7.1
/root/firefox-gcc-last/toolkit/components/jsoncpp/src/lib_json/json_writer.cpp:139:16: note: using the range [-2147483648, 2147483647] for directive argument
/root/firefox-gcc-last/toolkit/components/jsoncpp/src/lib_json/json_writer.cpp:146:10: note: 'sprintf' output between 5 and 15 bytes into a destination of size 6
   sprintf(formatString, "%%.%dg", precision);
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2017-06-09 22:41:48 +02:00
Anton Indrawan
2e319850d1 Fix QNX build: QNX defines sprintf under the std namespace. Use snprintf instead 2017-05-01 23:14:23 +02:00
pavel.pimenov
6ca374371e Fix V815:Decreased performance 2017-04-07 15:41:07 +03:00
Alexander V. Brezgin
c442fd96e6 Optimize Value::isIntegral() method
Worst case called modf() twice
2017-03-29 06:37:37 +05:00
Gaurav
f251f15e6a Fix crash issue due to NULL value.
Null value in Value constructor will crash strlen(). Avoid crash with JSON_ASSERT_MESSAGE
2017-01-17 17:28:43 +05:30
Christopher Dunn
11836ae9aa std::min<unsigned>, for VS2015
fixes #565
2016-12-21 11:09:57 -06:00
David Seifert
f3a4941590
Replace current install variables with GNUInstallDirs
* The GNUInstallDirs module is more idiomatic and supported by
  Kitware upstream, whereas the current directories are not
  standardised across CMake-using packages. Using CMake native
  mechanisms is better than reinventing the wheel, as it makes
  using the build system more uniform across the ecosystem
* Use CMAKE_CXX_STANDARD to force C++11
* Require CMake 3.1.0 at a minimum
* Fixed lower/UPPERcase format for function/macro calls
* Fixed indents by replacing tabs with 4 spaces
2016-12-14 17:53:10 +01:00
Christopher Dunn
0d25d9aebf Merge pull request #556 from Infotecs/nnkur-rec-fix
Removed a static variable used to contain the current recursion depth in json_reader.cpp
2016-12-09 10:47:17 -06:00
nnkur
5021e799dc Renamed JSONCPP_STACK_LIMIT to JSONCPP_DEPRECATED_STACK_LIMIT
Renamed JSONCPP_STACK_LIMIT to JSONCPP_DEPRECATED_STACK_LIMIT to stress that usage of this macros assumes old interface.
2016-12-07 15:47:08 +03:00