This commit is contained in:
Josh Soref 2017-12-03 11:54:29 -05:00 committed by Christopher Dunn
parent 7c979e8661
commit e6a588a246
12 changed files with 57 additions and 57 deletions

View File

@ -1,9 +1,9 @@
"""Amalgate json-cpp library sources into a single source and header file. """Amalgamate json-cpp library sources into a single source and header file.
Works with python2.6+ and python3.4+. Works with python2.6+ and python3.4+.
Example of invocation (must be invoked from json-cpp top directory): Example of invocation (must be invoked from json-cpp top directory):
python amalgate.py python amalgamate.py
""" """
import os import os
import os.path import os.path
@ -50,20 +50,20 @@ class AmalgamationFile:
def amalgamate_source(source_top_dir=None, def amalgamate_source(source_top_dir=None,
target_source_path=None, target_source_path=None,
header_include_path=None): header_include_path=None):
"""Produces amalgated source. """Produces amalgamated source.
Parameters: Parameters:
source_top_dir: top-directory source_top_dir: top-directory
target_source_path: output .cpp path target_source_path: output .cpp path
header_include_path: generated header path relative to target_source_path. header_include_path: generated header path relative to target_source_path.
""" """
print("Amalgating header...") print("Amalgamating header...")
header = AmalgamationFile(source_top_dir) header = AmalgamationFile(source_top_dir)
header.add_text("/// Json-cpp amalgated header (http://jsoncpp.sourceforge.net/).") header.add_text("/// Json-cpp amalgamated header (http://jsoncpp.sourceforge.net/).")
header.add_text('/// It is intended to be used with #include "%s"' % header_include_path) header.add_text('/// It is intended to be used with #include "%s"' % header_include_path)
header.add_file("LICENSE", wrap_in_comment=True) header.add_file("LICENSE", wrap_in_comment=True)
header.add_text("#ifndef JSON_AMALGATED_H_INCLUDED") header.add_text("#ifndef JSON_AMALGAMATED_H_INCLUDED")
header.add_text("# define JSON_AMALGATED_H_INCLUDED") header.add_text("# define JSON_AMALGAMATED_H_INCLUDED")
header.add_text("/// If defined, indicates that the source file is amalgated") header.add_text("/// If defined, indicates that the source file is amalgamated")
header.add_text("/// to prevent private header inclusion.") header.add_text("/// to prevent private header inclusion.")
header.add_text("#define JSON_IS_AMALGAMATION") header.add_text("#define JSON_IS_AMALGAMATION")
header.add_file("include/json/version.h") header.add_file("include/json/version.h")
@ -75,37 +75,37 @@ def amalgamate_source(source_top_dir=None,
header.add_file("include/json/reader.h") header.add_file("include/json/reader.h")
header.add_file("include/json/writer.h") header.add_file("include/json/writer.h")
header.add_file("include/json/assertions.h") header.add_file("include/json/assertions.h")
header.add_text("#endif //ifndef JSON_AMALGATED_H_INCLUDED") header.add_text("#endif //ifndef JSON_AMALGAMATED_H_INCLUDED")
target_header_path = os.path.join(os.path.dirname(target_source_path), header_include_path) target_header_path = os.path.join(os.path.dirname(target_source_path), header_include_path)
print("Writing amalgated header to %r" % target_header_path) print("Writing amalgamated header to %r" % target_header_path)
header.write_to(target_header_path) header.write_to(target_header_path)
base, ext = os.path.splitext(header_include_path) base, ext = os.path.splitext(header_include_path)
forward_header_include_path = base + "-forwards" + ext forward_header_include_path = base + "-forwards" + ext
print("Amalgating forward header...") print("Amalgamating forward header...")
header = AmalgamationFile(source_top_dir) header = AmalgamationFile(source_top_dir)
header.add_text("/// Json-cpp amalgated forward header (http://jsoncpp.sourceforge.net/).") header.add_text("/// Json-cpp amalgamated forward header (http://jsoncpp.sourceforge.net/).")
header.add_text('/// It is intended to be used with #include "%s"' % forward_header_include_path) header.add_text('/// It is intended to be used with #include "%s"' % forward_header_include_path)
header.add_text("/// This header provides forward declaration for all JsonCpp types.") header.add_text("/// This header provides forward declaration for all JsonCpp types.")
header.add_file("LICENSE", wrap_in_comment=True) header.add_file("LICENSE", wrap_in_comment=True)
header.add_text("#ifndef JSON_FORWARD_AMALGATED_H_INCLUDED") header.add_text("#ifndef JSON_FORWARD_AMALGAMATED_H_INCLUDED")
header.add_text("# define JSON_FORWARD_AMALGATED_H_INCLUDED") header.add_text("# define JSON_FORWARD_AMALGAMATED_H_INCLUDED")
header.add_text("/// If defined, indicates that the source file is amalgated") header.add_text("/// If defined, indicates that the source file is amalgamated")
header.add_text("/// to prevent private header inclusion.") header.add_text("/// to prevent private header inclusion.")
header.add_text("#define JSON_IS_AMALGAMATION") header.add_text("#define JSON_IS_AMALGAMATION")
header.add_file("include/json/config.h") header.add_file("include/json/config.h")
header.add_file("include/json/forwards.h") header.add_file("include/json/forwards.h")
header.add_text("#endif //ifndef JSON_FORWARD_AMALGATED_H_INCLUDED") header.add_text("#endif //ifndef JSON_FORWARD_AMALGAMATED_H_INCLUDED")
target_forward_header_path = os.path.join(os.path.dirname(target_source_path), target_forward_header_path = os.path.join(os.path.dirname(target_source_path),
forward_header_include_path) forward_header_include_path)
print("Writing amalgated forward header to %r" % target_forward_header_path) print("Writing amalgamated forward header to %r" % target_forward_header_path)
header.write_to(target_forward_header_path) header.write_to(target_forward_header_path)
print("Amalgating source...") print("Amalgamating source...")
source = AmalgamationFile(source_top_dir) source = AmalgamationFile(source_top_dir)
source.add_text("/// Json-cpp amalgated source (http://jsoncpp.sourceforge.net/).") source.add_text("/// Json-cpp amalgamated source (http://jsoncpp.sourceforge.net/).")
source.add_text('/// It is intended to be used with #include "%s"' % header_include_path) source.add_text('/// It is intended to be used with #include "%s"' % header_include_path)
source.add_file("LICENSE", wrap_in_comment=True) source.add_file("LICENSE", wrap_in_comment=True)
source.add_text("") source.add_text("")
@ -123,12 +123,12 @@ def amalgamate_source(source_top_dir=None,
source.add_file(os.path.join(lib_json, "json_value.cpp")) source.add_file(os.path.join(lib_json, "json_value.cpp"))
source.add_file(os.path.join(lib_json, "json_writer.cpp")) source.add_file(os.path.join(lib_json, "json_writer.cpp"))
print("Writing amalgated source to %r" % target_source_path) print("Writing amalgamated source to %r" % target_source_path)
source.write_to(target_source_path) source.write_to(target_source_path)
def main(): def main():
usage = """%prog [options] usage = """%prog [options]
Generate a single amalgated source and header file from the sources. Generate a single amalgamated source and header file from the sources.
""" """
from optparse import OptionParser from optparse import OptionParser
parser = OptionParser(usage=usage) parser = OptionParser(usage=usage)
@ -136,7 +136,7 @@ Generate a single amalgated source and header file from the sources.
parser.add_option("-s", "--source", dest="target_source_path", action="store", default="dist/jsoncpp.cpp", parser.add_option("-s", "--source", dest="target_source_path", action="store", default="dist/jsoncpp.cpp",
help="""Output .cpp source path. [Default: %default]""") help="""Output .cpp source path. [Default: %default]""")
parser.add_option("-i", "--include", dest="header_include_path", action="store", default="json/json.h", parser.add_option("-i", "--include", dest="header_include_path", action="store", default="json/json.h",
help="""Header include path. Used to include the header from the amalgated source file. [Default: %default]""") help="""Header include path. Used to include the header from the amalgamated source file. [Default: %default]""")
parser.add_option("-t", "--top-dir", dest="top_dir", action="store", default=os.getcwd(), parser.add_option("-t", "--top-dir", dest="top_dir", action="store", default=os.getcwd(),
help="""Source top-directory. [Default: %default]""") help="""Source top-directory. [Default: %default]""")
parser.enable_interspersed_args() parser.enable_interspersed_args()
@ -149,7 +149,7 @@ Generate a single amalgated source and header file from the sources.
sys.stderr.write(msg + "\n") sys.stderr.write(msg + "\n")
sys.exit(1) sys.exit(1)
else: else:
print("Source succesfully amalagated") print("Source successfully amalgamated")
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -271,7 +271,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
# parses. With this tag you can assign which parser to use for a given # parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it # extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and # using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript, # language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make # C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make
# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
# (default is Fortran), use: inc=Fortran f=C. # (default is Fortran), use: inc=Fortran f=C.
@ -1408,7 +1408,7 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering # http://www.mathjax.org) which uses client side JavaScript for the rendering
# instead of using prerendered bitmaps. Use this if you do not have LaTeX # instead of using prerendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When # installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path # enabled you may also need to install MathJax separately and configure the path
@ -1478,7 +1478,7 @@ MATHJAX_CODEFILE =
SEARCHENGINE = NO SEARCHENGINE = NO
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There # implemented using a web server instead of a web client using JavaScript. There
# are two flavours of web server based searching depending on the # are two flavours of web server based searching depending on the
# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for # EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
# searching and an index file used by the script. When EXTERNAL_SEARCH is # searching and an index file used by the script. When EXTERNAL_SEARCH is
@ -1959,7 +1959,7 @@ PREDEFINED = "_MSC_VER=1400" \
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
# remove all refrences to function-like macros that are alone on a line, have an # remove all references to function-like macros that are alone on a line, have an
# all uppercase name, and do not end with a semicolon. Such function macros are # all uppercase name, and do not end with a semicolon. Such function macros are
# typically used for boiler-plate code, and will confuse the parser if not # typically used for boiler-plate code, and will confuse the parser if not
# removed. # removed.

View File

@ -271,7 +271,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
# parses. With this tag you can assign which parser to use for a given # parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it # extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and # using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript, # language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make # C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make
# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
# (default is Fortran), use: inc=Fortran f=C. # (default is Fortran), use: inc=Fortran f=C.
@ -1408,7 +1408,7 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering # http://www.mathjax.org) which uses client side JavaScript for the rendering
# instead of using prerendered bitmaps. Use this if you do not have LaTeX # instead of using prerendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When # installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path # enabled you may also need to install MathJax separately and configure the path
@ -1478,7 +1478,7 @@ MATHJAX_CODEFILE =
SEARCHENGINE = NO SEARCHENGINE = NO
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There # implemented using a web server instead of a web client using JavaScript. There
# are two flavours of web server based searching depending on the # are two flavours of web server based searching depending on the
# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for # EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
# searching and an index file used by the script. When EXTERNAL_SEARCH is # searching and an index file used by the script. When EXTERNAL_SEARCH is
@ -1947,7 +1947,7 @@ PREDEFINED = "_MSC_VER=1400" \
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
# remove all refrences to function-like macros that are alone on a line, have an # remove all references to function-like macros that are alone on a line, have an
# all uppercase name, and do not end with a semicolon. Such function macros are # all uppercase name, and do not end with a semicolon. Such function macros are
# typically used for boiler-plate code, and will confuse the parser if not # typically used for boiler-plate code, and will confuse the parser if not
# removed. # removed.

View File

@ -156,7 +156,7 @@ def build_doc(options, make_release=False):
def main(): def main():
usage = """%prog usage = """%prog
Generates doxygen documentation in build/doxygen. Generates doxygen documentation in build/doxygen.
Optionaly makes a tarball of the documentation to dist/. Optionally makes a tarball of the documentation to dist/.
Must be started in the project top directory. Must be started in the project top directory.
""" """

View File

@ -25,9 +25,9 @@
#define JSON_USE_EXCEPTION 1 #define JSON_USE_EXCEPTION 1
#endif #endif
/// If defined, indicates that the source file is amalgated /// If defined, indicates that the source file is amalgamated
/// to prevent private header inclusion. /// to prevent private header inclusion.
/// Remarks: it is automatically defined in the generated amalgated header. /// Remarks: it is automatically defined in the generated amalgamated header.
// #define JSON_IS_AMALGAMATION // #define JSON_IS_AMALGAMATION
#ifdef JSON_IN_CPPTL #ifdef JSON_IN_CPPTL
@ -78,7 +78,7 @@
#endif // defined(_MSC_VER) #endif // defined(_MSC_VER)
// In c++11 the override keyword allows you to explicity define that a function // In c++11 the override keyword allows you to explicitly define that a function
// is intended to override the base-class version. This makes the code more // is intended to override the base-class version. This makes the code more
// managable and fixes a set of common hard-to-find bugs. // managable and fixes a set of common hard-to-find bugs.
#if __cplusplus >= 201103L #if __cplusplus >= 201103L

View File

@ -116,7 +116,7 @@ enum CommentPlacement {
/** \brief Lightweight wrapper to tag static string. /** \brief Lightweight wrapper to tag static string.
* *
* Value constructor and objectValue member assignement takes advantage of the * Value constructor and objectValue member assignment takes advantage of the
* StaticString and avoid the cost of string duplication when storing the * StaticString and avoid the cost of string duplication when storing the
* string or the member name. * string or the member name.
* *

View File

@ -99,7 +99,7 @@ public:
- "dropNullPlaceholders": false or true - "dropNullPlaceholders": false or true
- Drop the "null" string from the writer's output for nullValues. - Drop the "null" string from the writer's output for nullValues.
Strictly speaking, this is not valid JSON. But when the output is being Strictly speaking, this is not valid JSON. But when the output is being
fed to a browser's Javascript, it makes for smaller output and the fed to a browser's JavaScript, it makes for smaller output and the
browser can handle the output just fine. browser can handle the output just fine.
- "useSpecialFloats": false or true - "useSpecialFloats": false or true
- If true, outputs non-finite floating point values in the following way: - If true, outputs non-finite floating point values in the following way:
@ -169,7 +169,7 @@ public:
/** \brief Drop the "null" string from the writer's output for nullValues. /** \brief Drop the "null" string from the writer's output for nullValues.
* Strictly speaking, this is not valid JSON. But when the output is being * Strictly speaking, this is not valid JSON. But when the output is being
* fed to a browser's Javascript, it makes for smaller output and the * fed to a browser's JavaScript, it makes for smaller output and the
* browser can handle the output just fine. * browser can handle the output just fine.
*/ */
void dropNullPlaceholders(); void dropNullPlaceholders();
@ -183,7 +183,7 @@ private:
void writeValue(const Value& value); void writeValue(const Value& value);
JSONCPP_STRING document_; JSONCPP_STRING document_;
bool yamlCompatiblityEnabled_; bool yamlCompatibilityEnabled_;
bool dropNullPlaceholders_; bool dropNullPlaceholders_;
bool omitEndingLineFeed_; bool omitEndingLineFeed_;
}; };
@ -234,7 +234,7 @@ public: // overridden from Writer
private: private:
void writeValue(const Value& value); void writeValue(const Value& value);
void writeArrayValue(const Value& value); void writeArrayValue(const Value& value);
bool isMultineArray(const Value& value); bool isMultilineArray(const Value& value);
void pushValue(const JSONCPP_STRING& value); void pushValue(const JSONCPP_STRING& value);
void writeIndent(); void writeIndent();
void writeWithIndent(const JSONCPP_STRING& value); void writeWithIndent(const JSONCPP_STRING& value);
@ -307,7 +307,7 @@ public:
private: private:
void writeValue(const Value& value); void writeValue(const Value& value);
void writeArrayValue(const Value& value); void writeArrayValue(const Value& value);
bool isMultineArray(const Value& value); bool isMultilineArray(const Value& value);
void pushValue(const JSONCPP_STRING& value); void pushValue(const JSONCPP_STRING& value);
void writeIndent(); void writeIndent();
void writeWithIndent(const JSONCPP_STRING& value); void writeWithIndent(const JSONCPP_STRING& value);

View File

@ -265,7 +265,7 @@ Performs an svn export of tag release version, and build a source tarball.
Must be started in the project top directory. Must be started in the project top directory.
Warning: --force should only be used when developping/testing the release script. Warning: --force should only be used when developing/testing the release script.
""" """
from optparse import OptionParser from optparse import OptionParser
parser = OptionParser(usage=usage) parser = OptionParser(usage=usage)
@ -377,7 +377,7 @@ Warning: --force should only be used when developping/testing the release script
user=options.user, sftp=options.sftp) user=options.user, sftp=options.sftp)
print('Source and doc release tarballs uploaded') print('Source and doc release tarballs uploaded')
else: else:
print('No upload user specified. Web site and download tarbal were not uploaded.') print('No upload user specified. Web site and download tarball were not uploaded.')
print('Tarball can be found at:', doc_tarball_path) print('Tarball can be found at:', doc_tarball_path)
# Set next version number and commit # Set next version number and commit

View File

@ -71,7 +71,7 @@ enum {
typedef char UIntToStringBuffer[uintToStringBufferSize]; typedef char UIntToStringBuffer[uintToStringBufferSize];
/** Converts an unsigned integer to string. /** Converts an unsigned integer to string.
* @param value Unsigned interger to convert to string * @param value Unsigned integer to convert to string
* @param current Input/Output string buffer. * @param current Input/Output string buffer.
* Must have at least uintToStringBufferSize chars free. * Must have at least uintToStringBufferSize chars free.
*/ */

View File

@ -128,7 +128,7 @@ JSONCPP_STRING valueToString(double value, bool useSpecialFloats, unsigned int p
snprintf(formatString, sizeof(formatString), "%%.%dg", precision); snprintf(formatString, sizeof(formatString), "%%.%dg", precision);
// Print into the buffer. We need not request the alternative representation // Print into the buffer. We need not request the alternative representation
// that always has a decimal point because JSON doesn't distingish the // that always has a decimal point because JSON doesn't distinguish the
// concepts of reals and integers. // concepts of reals and integers.
if (isfinite(value)) { if (isfinite(value)) {
len = snprintf(buffer, sizeof(buffer), formatString, value); len = snprintf(buffer, sizeof(buffer), formatString, value);
@ -334,10 +334,10 @@ Writer::~Writer() {}
// ////////////////////////////////////////////////////////////////// // //////////////////////////////////////////////////////////////////
FastWriter::FastWriter() FastWriter::FastWriter()
: yamlCompatiblityEnabled_(false), dropNullPlaceholders_(false), : yamlCompatibilityEnabled_(false), dropNullPlaceholders_(false),
omitEndingLineFeed_(false) {} omitEndingLineFeed_(false) {}
void FastWriter::enableYAMLCompatibility() { yamlCompatiblityEnabled_ = true; } void FastWriter::enableYAMLCompatibility() { yamlCompatibilityEnabled_ = true; }
void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; } void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; }
@ -397,7 +397,7 @@ void FastWriter::writeValue(const Value& value) {
if (it != members.begin()) if (it != members.begin())
document_ += ','; document_ += ',';
document_ += valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length())); document_ += valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length()));
document_ += yamlCompatiblityEnabled_ ? ": " : ":"; document_ += yamlCompatibilityEnabled_ ? ": " : ":";
writeValue(value[name]); writeValue(value[name]);
} }
document_ += '}'; document_ += '}';
@ -486,7 +486,7 @@ void StyledWriter::writeArrayValue(const Value& value) {
if (size == 0) if (size == 0)
pushValue("[]"); pushValue("[]");
else { else {
bool isArrayMultiLine = isMultineArray(value); bool isArrayMultiLine = isMultilineArray(value);
if (isArrayMultiLine) { if (isArrayMultiLine) {
writeWithIndent("["); writeWithIndent("[");
indent(); indent();
@ -524,7 +524,7 @@ void StyledWriter::writeArrayValue(const Value& value) {
} }
} }
bool StyledWriter::isMultineArray(const Value& value) { bool StyledWriter::isMultilineArray(const Value& value) {
ArrayIndex const size = value.size(); ArrayIndex const size = value.size();
bool isMultiLine = size * 3 >= rightMargin_; bool isMultiLine = size * 3 >= rightMargin_;
childValues_.clear(); childValues_.clear();
@ -703,7 +703,7 @@ void StyledStreamWriter::writeArrayValue(const Value& value) {
if (size == 0) if (size == 0)
pushValue("[]"); pushValue("[]");
else { else {
bool isArrayMultiLine = isMultineArray(value); bool isArrayMultiLine = isMultilineArray(value);
if (isArrayMultiLine) { if (isArrayMultiLine) {
writeWithIndent("["); writeWithIndent("[");
indent(); indent();
@ -743,7 +743,7 @@ void StyledStreamWriter::writeArrayValue(const Value& value) {
} }
} }
bool StyledStreamWriter::isMultineArray(const Value& value) { bool StyledStreamWriter::isMultilineArray(const Value& value) {
ArrayIndex const size = value.size(); ArrayIndex const size = value.size();
bool isMultiLine = size * 3 >= rightMargin_; bool isMultiLine = size * 3 >= rightMargin_;
childValues_.clear(); childValues_.clear();
@ -860,7 +860,7 @@ struct BuiltStyledStreamWriter : public StreamWriter
private: private:
void writeValue(Value const& value); void writeValue(Value const& value);
void writeArrayValue(Value const& value); void writeArrayValue(Value const& value);
bool isMultineArray(Value const& value); bool isMultilineArray(Value const& value);
void pushValue(JSONCPP_STRING const& value); void pushValue(JSONCPP_STRING const& value);
void writeIndent(); void writeIndent();
void writeWithIndent(JSONCPP_STRING const& value); void writeWithIndent(JSONCPP_STRING const& value);
@ -984,7 +984,7 @@ void BuiltStyledStreamWriter::writeArrayValue(Value const& value) {
if (size == 0) if (size == 0)
pushValue("[]"); pushValue("[]");
else { else {
bool isMultiLine = (cs_ == CommentStyle::All) || isMultineArray(value); bool isMultiLine = (cs_ == CommentStyle::All) || isMultilineArray(value);
if (isMultiLine) { if (isMultiLine) {
writeWithIndent("["); writeWithIndent("[");
indent(); indent();
@ -1026,7 +1026,7 @@ void BuiltStyledStreamWriter::writeArrayValue(Value const& value) {
} }
} }
bool BuiltStyledStreamWriter::isMultineArray(Value const& value) { bool BuiltStyledStreamWriter::isMultilineArray(Value const& value) {
ArrayIndex const size = value.size(); ArrayIndex const size = value.size();
bool isMultiLine = size * 3 >= rightMargin_; bool isMultiLine = size * 3 >= rightMargin_;
childValues_.clear(); childValues_.clear();

View File

@ -398,7 +398,7 @@ void Runner::preventDialogOnCrash() {
_CrtSetReportHook(&msvcrtSilentReportHook); _CrtSetReportHook(&msvcrtSilentReportHook);
#endif // if defined(_MSC_VER) #endif // if defined(_MSC_VER)
// @todo investiguate this handler (for buffer overflow) // @todo investigate this handler (for buffer overflow)
// _set_security_error_handler // _set_security_error_handler
#if defined(_WIN32) #if defined(_WIN32)

View File

@ -2040,7 +2040,7 @@ JSONTEST_FIXTURE(CharReaderFailIfExtraTest, issue164) {
} }
} }
JSONTEST_FIXTURE(CharReaderFailIfExtraTest, issue107) { JSONTEST_FIXTURE(CharReaderFailIfExtraTest, issue107) {
// This is interpretted as an int value followed by a colon. // This is interpreted as an int value followed by a colon.
Json::CharReaderBuilder b; Json::CharReaderBuilder b;
Json::Value root; Json::Value root;
char const doc[] = char const doc[] =