libweston: print head names on output enable

This will be interesting to see when testing clone mode.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Derek Foreman <derekf@osg.samsung.com>
diff --git a/libweston/compositor.c b/libweston/compositor.c
index d149bb0..d5bbcb2 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -5482,6 +5482,32 @@
 	wl_list_insert(compositor->pending_output_list.prev, &output->link);
 }
 
+/** Create a string with the attached heads' names.
+ *
+ * The string must be free()'d.
+ */
+static char *
+weston_output_create_heads_string(struct weston_output *output)
+{
+	FILE *fp;
+	char *str = NULL;
+	size_t size = 0;
+	struct weston_head *head;
+	const char *sep = "";
+
+	fp = open_memstream(&str, &size);
+	if (!fp)
+		return NULL;
+
+	wl_list_for_each(head, &output->head_list, output_link) {
+		fprintf(fp, "%s%s", sep, head->name);
+		sep = ", ";
+	}
+	fclose(fp);
+
+	return str;
+}
+
 /** Constructs a weston_output object that can be used by the compositor.
  *
  * \param output The weston_output object that needs to be enabled. Must not
@@ -5521,6 +5547,7 @@
 	struct weston_compositor *c = output->compositor;
 	struct weston_output *iterator;
 	struct weston_head *head;
+	char *head_names;
 	int x = 0, y = 0;
 
 	if (output->enabled) {
@@ -5585,6 +5612,11 @@
 
 	weston_compositor_add_output(output->compositor, output);
 
+	head_names = weston_output_create_heads_string(output);
+	weston_log("Output '%s' enabled with head(s) %s\n",
+		   output->name, head_names);
+	free(head_names);
+
 	return 0;
 }