From: Benjamin Otte Date: Wed, 20 Oct 2021 22:05:56 +0000 (+0200) Subject: css: Emit a special error for a common error X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~5^2~218^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=350a5edb87c447d7ef302df08cdd993e6425e8f0;p=gtk4.git 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. --- diff --git a/gtk/gtkcsscalcvalue.c b/gtk/gtkcsscalcvalue.c index ad7380b990..d0731b267b 100644 --- a/gtk/gtkcsscalcvalue.c +++ b/gtk/gtkcsscalcvalue.c @@ -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; }