css: Emit a special error for a common error

This CSS:
  calc(5px+3px)
is wrong because it gets broken to:
  calc(  5px  +3px  )
which is 2 numbers inside the calc, and what you want is:
  calc(  5px  +  3px  )
but you need to add a space to get this, like so:
  calc(5px + 3px)
which is the recommended way to write calc() statements.

So whenever we encounter an error, check if the next token is a signed
number and if so, include it in the error message.
This commit is contained in:
Benjamin Otte 2021-10-21 00:05:56 +02:00
parent c11bd57422
commit 350a5edb87

View File

@ -166,6 +166,14 @@ gtk_css_calc_value_parse_sum (GtkCssParser *parser,
}
else
{
if (gtk_css_parser_has_token (parser, GTK_CSS_TOKEN_SIGNED_INTEGER) ||
gtk_css_parser_has_token (parser, GTK_CSS_TOKEN_SIGNED_NUMBER) ||
gtk_css_parser_has_token (parser, GTK_CSS_TOKEN_SIGNED_INTEGER_DIMENSION) ||
gtk_css_parser_has_token (parser, GTK_CSS_TOKEN_SIGNED_DIMENSION))
{
gtk_css_parser_error_syntax (parser, "Unexpected signed number, did you forget a space between sign and number?");
gtk_css_parser_consume_token (parser);
}
break;
}