add all features
authorChristopher Dunn <cdunn2001@gmail.com>
Tue, 10 Feb 2015 00:24:56 +0000 (18:24 -0600)
committerChristopher Dunn <cdunn2001@gmail.com>
Tue, 10 Feb 2015 00:24:56 +0000 (18:24 -0600)
include/json/reader.h
include/json/writer.h
src/lib_json/json_reader.cpp

index eb4ef97..c0dd137 100644 (file)
@@ -298,12 +298,16 @@ public:
   /** Configuration of this builder.
     These are case-sensitive.
     Available settings (case-sensitive):
-    - "collectComments": false or true (default=true)
-    - TODO: other features ...
+    - "collectComments": false or true
+    - "allowComments"
+    - "strictRoot"
+    - "allowDroppedNullPlaceholders"
+    - "allowNumericKeys"
+
     You can examine 'settings_` yourself
     to see the defaults. You can also write and read them just like any
     JSON Value.
-    \sa setDefaults(Json::Value*)
+    \sa setDefaults()
     */
   Json::Value settings_;
 
@@ -312,7 +316,7 @@ public:
 
   virtual CharReader* newCharReader() const;
 
-  /** \return true if 'settings' are illegal and consistent;
+  /** \return true if 'settings' are legal and consistent;
    *   otherwise, indicate bad settings via 'invalid'.
    */
   bool validate(Json::Value* invalid) const;
index 2e074c1..7dad7f6 100644 (file)
@@ -99,11 +99,13 @@ public:
   // without a major version bump.
   /** Configuration of this builder.
     Available settings (case-sensitive):
-    - "commentStyle": "None", "Some", or "All" (default="All")
-    - "indentation":  (default="\t")
-    But don't trust these docs. You can examine 'settings_` yourself
+    - "commentStyle": "None", "Some", or "All"
+    - "indentation":  "<anything>"
+
+    You can examine 'settings_` yourself
     to see the defaults. You can also write and read them just like any
     JSON Value.
+    \sa setDefaults()
     */
   Json::Value settings_;
 
@@ -115,7 +117,7 @@ public:
    */
   virtual StreamWriter* newStreamWriter(std::ostream* sout) const;
 
-  /** \return true if 'settings' are illegal and consistent;
+  /** \return true if 'settings' are legal and consistent;
    *   otherwise, indicate bad settings via 'invalid'.
    */
   bool validate(Json::Value* invalid) const;
index 4a3ffda..8038c11 100644 (file)
@@ -925,13 +925,20 @@ CharReader* CharReaderBuilder::newCharReader() const
 
   bool collectComments = settings_["collectComments"].asBool();
   Features features = Features::all();
-  // TODO: Fill in features.
+  features.allowComments_ = settings_["allowComments"].asBool();
+  features.strictRoot_ = settings_["strictRoot"].asBool();
+  features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool();
+  features.allowNumericKeys_ = settings_["allowNumericKeys"].asBool();
   return new OldReader(collectComments, features);
 }
 static void getValidReaderKeys(std::set<std::string>* valid_keys)
 {
   valid_keys->clear();
   valid_keys->insert("collectComments");
+  valid_keys->insert("allowComments");
+  valid_keys->insert("strictRoot");
+  valid_keys->insert("allowDroppedNullPlaceholders");
+  valid_keys->insert("allowNumericKeys");
 }
 bool CharReaderBuilder::validate(Json::Value* invalid) const
 {