|
21 | 21 | #include "helper.h" |
22 | 22 |
|
23 | 23 | #include <sstream> |
24 | | -#include <tbox/base/catch_throw.h> |
| 24 | +#include <tbox/util/string_to.h> |
25 | 25 |
|
26 | 26 | namespace tbox { |
27 | 27 | namespace terminal { |
@@ -64,16 +64,7 @@ NodeToken AddFuncNode(TerminalNodes &terminal, NodeToken parent_node, |
64 | 64 |
|
65 | 65 | } else if (a.size() == 2u) { |
66 | 66 | auto &str = a[1]; |
67 | | - if (str == "true" || str == "True" || str == "TRUE" || |
68 | | - str == "on" || str == "On" || str == "ON") { |
69 | | - value = true; |
70 | | - is_ok = true; |
71 | | - |
72 | | - } else if (str == "false" || str == "False" || str == "FALSE" || |
73 | | - str == "off" || str == "Off" || str == "OFF") { |
74 | | - value = false; |
75 | | - is_ok = true; |
76 | | - } |
| 67 | + is_ok = util::StringTo(str, value); |
77 | 68 | } |
78 | 69 |
|
79 | 70 | if (is_ok) { |
@@ -136,7 +127,7 @@ NodeToken AddFuncNode(TerminalNodes &terminal, NodeToken parent_node, |
136 | 127 | } else if (a.size() == 2u) { |
137 | 128 | auto &str = a[1]; |
138 | 129 | int new_value = 0; |
139 | | - if (!CatchThrowQuietly([&] { new_value = std::stoi(str); })) { |
| 130 | + if (util::StringTo(str, new_value)) { |
140 | 131 | if (new_value >= min_value && new_value <= max_value) { |
141 | 132 | value = new_value; |
142 | 133 | is_ok = true; |
@@ -177,7 +168,7 @@ NodeToken AddFuncNode(TerminalNodes &terminal, NodeToken parent_node, |
177 | 168 | } else if (a.size() == 2u) { |
178 | 169 | auto &str = a[1]; |
179 | 170 | double new_value = 0; |
180 | | - if (!CatchThrowQuietly([&] { new_value = std::stod(str); })) { |
| 171 | + if (util::StringTo(str, new_value)) { |
181 | 172 | if (new_value >= min_value && new_value <= max_value) { |
182 | 173 | value = new_value; |
183 | 174 | is_ok = true; |
@@ -264,16 +255,7 @@ NodeToken AddFuncNode(TerminalNodes &terminal, NodeToken parent_node, const std: |
264 | 255 | } else if (a.size() == 2u && profile.set_func) { |
265 | 256 | auto &str = a[1]; |
266 | 257 | bool new_value = false; |
267 | | - if (str == "true" || str == "True" || str == "TRUE" || |
268 | | - str == "on" || str == "On" || str == "ON") { |
269 | | - new_value = true; |
270 | | - is_ok = true; |
271 | | - |
272 | | - } else if (str == "false" || str == "False" || str == "FALSE" || |
273 | | - str == "off" || str == "Off" || str == "OFF") { |
274 | | - new_value = false; |
275 | | - is_ok = true; |
276 | | - } |
| 258 | + is_ok = util::StringTo(str, new_value); |
277 | 259 |
|
278 | 260 | if (is_ok) { |
279 | 261 | if (profile.set_func(new_value)) { |
@@ -322,7 +304,7 @@ NodeToken AddFuncNode(TerminalNodes &terminal, NodeToken parent_node, const std: |
322 | 304 | } else if (a.size() == 2u && profile.set_func) { |
323 | 305 | auto &str = a[1]; |
324 | 306 | int new_value = 0; |
325 | | - CatchThrowQuietly([&] { new_value = std::stoi(str); is_ok = true; }); |
| 307 | + is_ok = util::StringTo(str, new_value); |
326 | 308 | if (is_ok) { |
327 | 309 | if (new_value < profile.min_value || new_value > profile.max_value) { |
328 | 310 | oss << "fail, out of range.\r\n"; |
@@ -387,7 +369,7 @@ NodeToken AddFuncNode(TerminalNodes &terminal, NodeToken parent_node, const std: |
387 | 369 | } else if (a.size() == 2u && profile.set_func) { |
388 | 370 | auto &str = a[1]; |
389 | 371 | double new_value = 0; |
390 | | - CatchThrowQuietly([&] { new_value = std::stod(str); is_ok = true; }); |
| 372 | + is_ok = util::StringTo(str, new_value); |
391 | 373 | if (is_ok) { |
392 | 374 | if (new_value < profile.min_value || new_value > profile.max_value) { |
393 | 375 | oss << "fail, out of range.\r\n"; |
|
0 commit comments