File 0001-scanner-Generate-macros-for-getting-the-since-versio.patch of Package wayland.2655

From 35be5a7c65a47e3547c5b6250141e135ee109a6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Thu, 8 May 2014 23:39:49 +0200
Subject: [PATCH] scanner: Generate macros for getting the 'since' version of
 an event
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This could be useful for compositors who need to be able to not send
events if the client bound a version lower than the newest provided.

Event version numbers are exposed as
[INTERFACE_NAME]_[EVENT_NAME]_SINCE_VERSION for example wl_output.scale
will have the version macro WL_OUTPUT_SCALE_SINCE_VERSION.

Signed-off-by: Jonas Ã…dahl <jadahl@gmail.com>
---
 src/scanner.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/scanner.c b/src/scanner.c
index 28fadb0..80c466e 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -579,6 +579,18 @@ emit_opcodes(struct wl_list *message_list, struct interface *interface)
 }
 
 static void
+emit_opcode_versions(struct wl_list *message_list, struct interface *interface)
+{
+	struct message *m;
+
+	wl_list_for_each(m, message_list, link)
+		printf("#define %s_%s_SINCE_VERSION\t%d\n",
+		       interface->uppercase_name, m->uppercase_name, m->since);
+
+	printf("\n");
+}
+
+static void
 emit_type(struct arg *a)
 {
 	switch (a->type) {
@@ -1004,6 +1016,7 @@ emit_header(struct protocol *protocol, int server)
 		if (server) {
 			emit_structs(&i->request_list, i);
 			emit_opcodes(&i->event_list, i);
+			emit_opcode_versions(&i->event_list, i);
 			emit_event_wrappers(&i->event_list, i);
 		} else {
 			emit_structs(&i->event_list, i);
-- 
2.1.4

openSUSE Build Service is sponsored by