From: Vsevolod Stakhov Date: Thu, 29 Mar 2018 12:47:38 +0000 (+0100) Subject: [Minor] Import nan support from libucl X-Git-Tag: 1.7.3~88 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=2a59b34f18c5749a504ca588d6ca91b8c2af829f;p=rspamd.git [Minor] Import nan support from libucl --- 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;