From d71c196c5c128f4de514575c6e8b7aa9f6705909 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 29 May 2019 06:48:03 +0200 Subject: [PATCH] css: Don't print numbers with exponent CSS does not do exponents, so printing numbers close to 0 as 1.234e-15 does not work. Also up the accuracy to 17 digits because that's what everyone else uses. --- gdk/gdkrgba.c | 2 +- gsk/gskrendernodeparser.c | 2 +- gtk/css/gtkcsstokenizer.c | 2 +- gtk/gtkcssdimensionvalue.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gdk/gdkrgba.c b/gdk/gdkrgba.c index b52e0254e6..a9b9365e0e 100644 --- a/gdk/gdkrgba.c +++ b/gdk/gdkrgba.c @@ -386,7 +386,7 @@ gdk_rgba_to_string (const GdkRGBA *rgba) { gchar alpha[G_ASCII_DTOSTR_BUF_SIZE]; - g_ascii_formatd (alpha, G_ASCII_DTOSTR_BUF_SIZE, "%g", CLAMP (rgba->alpha, 0, 1)); + g_ascii_formatd (alpha, G_ASCII_DTOSTR_BUF_SIZE, "%.17f", CLAMP (rgba->alpha, 0, 1)); return g_strdup_printf ("rgba(%d,%d,%d,%s)", (int)(0.5 + CLAMP (rgba->red, 0., 1.) * 255.), diff --git a/gsk/gskrendernodeparser.c b/gsk/gskrendernodeparser.c index 937e7d796f..428394bbb1 100644 --- a/gsk/gskrendernodeparser.c +++ b/gsk/gskrendernodeparser.c @@ -1510,7 +1510,7 @@ string_append_double (GString *string, { char buf[G_ASCII_DTOSTR_BUF_SIZE]; - g_ascii_formatd (buf, G_ASCII_DTOSTR_BUF_SIZE, "%g", d); + g_ascii_formatd (buf, G_ASCII_DTOSTR_BUF_SIZE, "%.17f", d); g_string_append (string, buf); } diff --git a/gtk/css/gtkcsstokenizer.c b/gtk/css/gtkcsstokenizer.c index c9a3856657..a9cab554a3 100644 --- a/gtk/css/gtkcsstokenizer.c +++ b/gtk/css/gtkcsstokenizer.c @@ -406,7 +406,7 @@ gtk_css_token_print (const GtkCssToken *token, /* fall through */ case GTK_CSS_TOKEN_SIGNLESS_INTEGER_DIMENSION: case GTK_CSS_TOKEN_DIMENSION: - g_ascii_dtostr (buf, G_ASCII_DTOSTR_BUF_SIZE, token->dimension.value); + g_ascii_formatd (buf, G_ASCII_DTOSTR_BUF_SIZE, "%.17f", token->dimension.value); g_string_append (string, buf); append_ident (string, token->dimension.dimension); break; diff --git a/gtk/gtkcssdimensionvalue.c b/gtk/gtkcssdimensionvalue.c index 4efdf13ef2..626c0ac2cb 100644 --- a/gtk/gtkcssdimensionvalue.c +++ b/gtk/gtkcssdimensionvalue.c @@ -198,7 +198,7 @@ gtk_css_value_dimension_print (const GtkCssValue *number, g_string_append (string, "infinite"); else { - g_ascii_dtostr (buf, sizeof (buf), number->value); + g_ascii_formatd (buf, G_ASCII_DTOSTR_BUF_SIZE, "%.17f", number->value); g_string_append (string, buf); if (number->value != 0.0) g_string_append (string, names[number->unit]);