libgimpconfig: make gimp_scanner_parse_float() less strict

A number without a decimal point can be put into a gdouble just fine,
no need to refuse them. Moreover, g_ascii_dtostr() serializes doubles
without fractional part without a decimal point, and we are soon going
to use it.
This commit is contained in:
Michael Natterer 2019-07-30 14:31:14 +02:00
parent f1351df9eb
commit 2c97bc8327
1 changed files with 21 additions and 8 deletions

View File

@ -568,9 +568,8 @@ gimp_scanner_parse_float (GScanner *scanner,
g_scanner_get_next_token (scanner);
}
if (g_scanner_peek_next_token (scanner) != G_TOKEN_FLOAT)
return FALSE;
if (g_scanner_peek_next_token (scanner) == G_TOKEN_FLOAT)
{
g_scanner_get_next_token (scanner);
if (negate)
@ -579,6 +578,20 @@ gimp_scanner_parse_float (GScanner *scanner,
*dest = scanner->value.v_float;
return TRUE;
}
else if (g_scanner_peek_next_token (scanner) == G_TOKEN_INT)
{
g_scanner_get_next_token (scanner);
if (negate)
*dest = -scanner->value.v_int;
else
*dest = scanner->value.v_int;
return TRUE;
}
return FALSE;
}
/**