From c2754991ba6e513a07c15b4058df13d58f8c55ba Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Thu, 14 Mar 2013 13:51:47 -0400 Subject: [PATCH] Minor fixes for hstore_to_json_loose(). Fix unportable use of isdigit(), get rid of useless calculations. --- contrib/hstore/hstore_io.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/contrib/hstore/hstore_io.c b/contrib/hstore/hstore_io.c index 07b60e621b2..a9a55d89b8b 100644 --- a/contrib/hstore/hstore_io.c +++ b/contrib/hstore/hstore_io.c @@ -1299,7 +1299,8 @@ hstore_to_json_loose(PG_FUNCTION_ARGS) * don't treat something with a leading zero followed by another * digit as numeric - could be a zip code or similar */ - if (src->len > 0 && (src->data[0] != '0' || !isdigit(src->data[1])) && + if (src->len > 0 && + !(src->data[0] == '0' && isdigit((unsigned char) src->data[1])) && strspn(src->data, "+-0123456789Ee.") == src->len) { /* @@ -1308,7 +1309,7 @@ hstore_to_json_loose(PG_FUNCTION_ARGS) */ char *endptr = "junk"; - (void) (strtol(src->data, &endptr, 10) + 1); + (void) strtol(src->data, &endptr, 10); if (*endptr == '\0') { /* @@ -1320,7 +1321,7 @@ hstore_to_json_loose(PG_FUNCTION_ARGS) else { /* not an int - try a double */ - (void) (strtod(src->data, &endptr) + 1.0); + (void) strtod(src->data, &endptr); if (*endptr == '\0') is_number = true; } -- GitLab