From 2a59b34f18c5749a504ca588d6ca91b8c2af829f Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Thu, 29 Mar 2018 13:47:38 +0100 Subject: [PATCH] [Minor] Import nan support from libucl --- contrib/libucl/ucl_parser.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/contrib/libucl/ucl_parser.c b/contrib/libucl/ucl_parser.c index fedd5065c..339b93dff 100644 --- a/contrib/libucl/ucl_parser.c +++ b/contrib/libucl/ucl_parser.c @@ -21,6 +21,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include #include "ucl.h" #include "ucl_internal.h" #include "ucl_chartable.h" @@ -1832,6 +1833,16 @@ parse_string: obj->len = 0; obj->type = UCL_NULL; } + else if (str_len == 3 && memcmp (c, "nan", 3) == 0) { + obj->len = 0; + obj->type = UCL_FLOAT; + obj->value.dv = NAN; + } + else if (str_len == 3 && memcmp (c, "inf", 3) == 0) { + obj->len = 0; + obj->type = UCL_FLOAT; + obj->value.dv = INFINITY; + } else if (!ucl_maybe_parse_boolean (obj, c, str_len)) { obj->type = UCL_STRING; if ((str_len = ucl_copy_or_store_ptr (parser, c, @@ -1842,8 +1853,8 @@ parse_string: } obj->len = str_len; } + parser->state = UCL_STATE_AFTER_VALUE; - p = chunk->pos; return true; break; -- 2.39.5