Ticket #1537: ticket1537.patch
File ticket1537.patch, 2.4 KB (added by , 13 years ago) |
---|
-
libs/program_options/test/parsers_test.cpp
117 117 "--plug3=10"}; 118 118 vector<string> cmdline3 = sv(cmdline3_, 119 119 sizeof(cmdline3_)/sizeof(const char*)); 120 120 121 vector<option> a3 = 121 122 command_line_parser(cmdline3).options(desc).run().options; 122 123 … … 202 203 desc.add_options() 203 204 ("gv1", new untyped_value) 204 205 ("gv2", new untyped_value) 206 ("empty_value", new untyped_value) 205 207 ("plug*", new untyped_value) 206 208 ("m1.v1", new untyped_value) 207 209 ("m1.v2", new untyped_value) … … 210 212 211 213 const char content1[] = 212 214 " gv1 = 0#asd\n" 215 "empty_value = \n" 213 216 "plug3 = 7\n" 214 217 "b = true\n" 215 218 "[m1]\n" … … 220 223 221 224 stringstream ss(content1); 222 225 vector<option> a1 = parse_config_file(ss, desc).options; 223 BOOST_REQUIRE(a1.size() == 5);226 BOOST_REQUIRE(a1.size() == 6); 224 227 check_value(a1[0], "gv1", "0"); 225 check_value(a1[1], "plug3", "7"); 226 check_value(a1[2], "b", "true"); 227 check_value(a1[3], "m1.v1", "1"); 228 check_value(a1[4], "m1.v2", "2"); 228 check_value(a1[1], "empty_value", ""); 229 check_value(a1[2], "plug3", "7"); 230 check_value(a1[3], "b", "true"); 231 check_value(a1[4], "m1.v1", "1"); 232 check_value(a1[5], "m1.v2", "2"); 229 233 230 234 } 231 235 -
libs/program_options/src/config_file.cpp
105 105 bool registered = allowed_option(name); 106 106 if (!registered && !m_allow_unregistered) 107 107 boost::throw_exception(unknown_option(name)); 108 109 if (value.empty()) 110 boost::throw_exception(invalid_syntax(s, "no value given")); 111 108 112 109 found = true; 113 110 this->value().string_key = name; 114 111 this->value().value.clear();