[gtk] css: Don't print numbers with exponent



commit d71c196c5c128f4de514575c6e8b7aa9f6705909
Author: Benjamin Otte <otte redhat com>
Date:   Wed May 29 06:48:03 2019 +0200

    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]);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]