From 4450d83cb95f735305e9c19a7533f4f43ae26def Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 28 Sep 2017 03:42:57 +0200 Subject: [PATCH] gsksltype: Generate better type names If multiple consecutive struct names share their types, use comma notation to goup them. --- gsk/gsksltype.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gsk/gsksltype.c b/gsk/gsksltype.c index b4b616cca3..be47436a06 100644 --- a/gsk/gsksltype.c +++ b/gsk/gsksltype.c @@ -1719,7 +1719,7 @@ static char * gsk_sl_type_builder_generate_name (GskSlTypeBuilder *builder) { GString *string = g_string_new ("struct { "); - guint i; + guint i, j; for (i = 0; i < builder->members->len; i++) { @@ -1727,6 +1727,15 @@ gsk_sl_type_builder_generate_name (GskSlTypeBuilder *builder) g_string_append (string, gsk_sl_type_get_name (m->type)); g_string_append (string, " "); g_string_append (string, m->name); + for (j = i + 1; j < builder->members->len; j++) + { + GskSlTypeMember *n = &g_array_index (builder->members, GskSlTypeMember, j); + if (!gsk_sl_type_equal (m->type, n->type)) + break; + g_string_append (string, ", "); + g_string_append (string, n->name); + } + i = j - 1; g_string_append (string, "; "); } g_string_append (string, "}");