diff options
author | Morgan Deters <mdeters@gmail.com> | 2012-10-02 02:57:59 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2012-10-02 02:57:59 +0000 |
commit | 6e283659af0f95505e92a1826953509537f9d216 (patch) | |
tree | 831968675e6d1da5703f9b2bf190c0451ab4ffa3 /src/util/integer_cln_imp.h | |
parent | 35ac65b0034eacf2766d9e94be1c7fe9c116bb75 (diff) |
workaround for a nasty CLN bug
Diffstat (limited to 'src/util/integer_cln_imp.h')
-rw-r--r-- | src/util/integer_cln_imp.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/util/integer_cln_imp.h b/src/util/integer_cln_imp.h index 5dfcae6d2..b86e0240c 100644 --- a/src/util/integer_cln_imp.h +++ b/src/util/integer_cln_imp.h @@ -60,7 +60,12 @@ private: void readInt(const cln::cl_read_flags& flags, const std::string& s, unsigned base) throw(std::invalid_argument) { try { - d_value = read_integer(flags, s.c_str(), NULL, NULL); + if(s.find_first_not_of('0') == std::string::npos) { + // string of all zeroes, CLN has a bug for these inputs + d_value = read_integer(flags, "0", NULL, NULL); + } else { + d_value = read_integer(flags, s.c_str(), NULL, NULL); + } } catch(...) { std::stringstream ss; ss << "Integer() failed to parse value \"" << s << "\" in base " << base; |