Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package wayland for openSUSE:Factory checked 
in at 2024-09-18 15:26:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wayland (Old)
 and      /work/SRC/openSUSE:Factory/.wayland.new.29891 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "wayland"

Wed Sep 18 15:26:14 2024 rev:51 rq:1201530 version:1.23.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/wayland/wayland.changes  2024-06-21 
16:03:30.854745118 +0200
+++ /work/SRC/openSUSE:Factory/.wayland.new.29891/wayland.changes       
2024-09-18 15:26:32.876004046 +0200
@@ -1,0 +2,11 @@
+Tue Sep 17 00:53:52 UTC 2024 - llyyr <[email protected]>
+
+- Update to release 1.23.1:
+  * meson: Fix use of install_data() without specifying install_dir
+  * Put WL_DEPRECATED in front of the function declarations
+  * client: Handle proxies with no queue
+  * scanner: extract validator function emission to helper function
+  * scanner: fix validator for bitfields
+  * tests: add enum bitfield test
+
+-------------------------------------------------------------------

Old:
----
  wayland-1.23.0.tar.xz
  wayland-1.23.0.tar.xz.sig

New:
----
  _scmsync.obsinfo
  build.specials.obscpio
  wayland-1.23.1.tar.xz
  wayland-1.23.1.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ wayland.spec ++++++
--- /var/tmp/diff_new_pack.j1abLe/_old  2024-09-18 15:26:33.524031027 +0200
+++ /var/tmp/diff_new_pack.j1abLe/_new  2024-09-18 15:26:33.528031193 +0200
@@ -16,7 +16,7 @@
 #
 
 
-%define _version 1.23.0
+%define _version 1.23.1
 %if 0%{?suse_version} >= 1500 && 0%{?suse_version} < 1550
 %define eglversion 99~%_version
 %else

++++++ _scmsync.obsinfo ++++++
mtime: 1726554164
commit: 1f7e9726e4c71b597410f67111e0754d43a79bef7523959c0e790989c07f8af9
url: https://src.opensuse.org/jengelh/wayland
revision: master

++++++ wayland-1.23.0.tar.xz -> wayland-1.23.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/meson.build 
new/wayland-1.23.1/meson.build
--- old/wayland-1.23.0/meson.build      2024-05-30 20:59:51.000000000 +0200
+++ new/wayland-1.23.1/meson.build      2024-08-24 17:43:55.000000000 +0200
@@ -1,6 +1,6 @@
 project(
        'wayland', 'c',
-       version: '1.23.0',
+       version: '1.23.1',
        license: 'MIT',
        meson_version: '>= 0.57.0',
        default_options: [
@@ -131,7 +131,9 @@
                'wayland-scanner.mk',
                'protocol/wayland.xml',
                'protocol/wayland.dtd',
-       ])
+       ],
+               install_dir: join_paths(get_option('prefix'), 
get_option('datadir'), 'wayland'),
+       )
 
        install_data(
                [ 'wayland-scanner.m4' ],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/src/scanner.c 
new/wayland-1.23.1/src/scanner.c
--- old/wayland-1.23.0/src/scanner.c    2024-05-30 20:59:51.000000000 +0200
+++ new/wayland-1.23.1/src/scanner.c    2024-08-24 17:43:55.000000000 +0200
@@ -1379,6 +1379,50 @@
 }
 
 static void
+emit_validator(struct interface *interface, struct enumeration *e)
+{
+       struct entry *entry;
+
+       printf("/**\n"
+              " * @ingroup iface_%s\n"
+              " * Validate a %s %s value.\n"
+              " *\n"
+              " * @return true on success, false on error.\n"
+              " * @ref %s_%s\n"
+              " */\n"
+              "static inline bool\n"
+              "%s_%s_is_valid(uint32_t value, uint32_t version) {\n",
+              interface->name, interface->name, e->name,
+              interface->name, e->name,
+              interface->name, e->name);
+
+       if (e->bitfield) {
+               printf("        uint32_t valid = 0;\n");
+               wl_list_for_each(entry, &e->entry_list, link) {
+                       printf("        if (version >= %d)\n"
+                              "                valid |= %s_%s_%s;\n",
+                              entry->since,
+                              interface->uppercase_name, e->uppercase_name,
+                              entry->uppercase_name);
+               }
+               printf("        return (value & ~valid) == 0;\n");
+       } else {
+               printf("        switch (value) {\n");
+               wl_list_for_each(entry, &e->entry_list, link) {
+                       printf("        case %s%s_%s_%s:\n"
+                              "                return version >= %d;\n",
+                              entry->value[0] == '-' ? "(uint32_t)" : "",
+                              interface->uppercase_name, e->uppercase_name,
+                              entry->uppercase_name, entry->since);
+               }
+               printf("        default:\n"
+                      "                return false;\n"
+                      "        }\n");
+       }
+       printf("}\n");
+}
+
+static void
 emit_enumerations(struct interface *interface, bool with_validators)
 {
        struct enumeration *e;
@@ -1439,32 +1483,8 @@
 
                }
 
-               if (with_validators) {
-                       printf("/**\n"
-                              " * @ingroup iface_%s\n"
-                              " * Validate a %s %s value.\n"
-                              " *\n"
-                              " * @return true on success, false on error.\n"
-                              " * @ref %s_%s\n"
-                              " */\n"
-                              "static inline bool\n"
-                              "%s_%s_is_valid(uint32_t value, uint32_t 
version) {\n"
-                              "        switch (value) {\n",
-                              interface->name, interface->name, e->name,
-                              interface->name, e->name,
-                              interface->name, e->name);
-                       wl_list_for_each(entry, &e->entry_list, link) {
-                               printf("        case %s%s_%s_%s:\n"
-                                      "                return version >= 
%d;\n",
-                                      entry->value[0] == '-' ? "(uint32_t)" : 
"",
-                                      interface->uppercase_name, 
e->uppercase_name,
-                                      entry->uppercase_name, entry->since);
-                       }
-                       printf("        default:\n"
-                              "                return false;\n"
-                              "        }\n"
-                              "}\n");
-               }
+               if (with_validators)
+                       emit_validator(interface, e);
 
                printf("#endif /* %s_%s_ENUM */\n\n",
                       interface->uppercase_name, e->uppercase_name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/src/wayland-client.c 
new/wayland-1.23.1/src/wayland-client.c
--- old/wayland-1.23.0/src/wayland-client.c     2024-05-30 20:59:51.000000000 
+0200
+++ new/wayland-1.23.1/src/wayland-client.c     2024-08-24 17:43:55.000000000 
+0200
@@ -921,10 +921,14 @@
 
        if (debug_client) {
                struct wl_event_queue *queue;
+               const char *queue_name = NULL;
 
                queue = wl_proxy_get_queue(proxy);
+               if (queue)
+                       queue_name = wl_event_queue_get_name(queue);
+
                wl_closure_print(closure, &proxy->object, true, false, NULL,
-                                wl_event_queue_get_name(queue));
+                                queue_name);
        }
 
        if (wl_closure_send(closure, proxy->display->connection)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/src/wayland-server-core.h 
new/wayland-1.23.1/src/wayland-server-core.h
--- old/wayland-1.23.0/src/wayland-server-core.h        2024-05-30 
20:59:51.000000000 +0200
+++ new/wayland-1.23.1/src/wayland-server-core.h        2024-08-24 
17:43:55.000000000 +0200
@@ -674,10 +674,11 @@
 uint32_t *
 wl_display_add_shm_format(struct wl_display *display, uint32_t format);
 
+WL_DEPRECATED
 struct wl_shm_buffer *
 wl_shm_buffer_create(struct wl_client *client,
                     uint32_t id, int32_t width, int32_t height,
-                    int32_t stride, uint32_t format) WL_DEPRECATED;
+                    int32_t stride, uint32_t format);
 
 void
 wl_log_set_handler_server(wl_log_func_t handler);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/src/wayland-server.c 
new/wayland-1.23.1/src/wayland-server.c
--- old/wayland-1.23.0/src/wayland-server.c     2024-05-30 20:59:51.000000000 
+0200
+++ new/wayland-1.23.1/src/wayland-server.c     2024-08-24 17:43:55.000000000 
+0200
@@ -2483,9 +2483,10 @@
 
 /** \cond */ /* Deprecated functions below. */
 
+WL_DEPRECATED
 uint32_t
 wl_client_add_resource(struct wl_client *client,
-                      struct wl_resource *resource) WL_DEPRECATED;
+                      struct wl_resource *resource);
 
 WL_EXPORT uint32_t
 wl_client_add_resource(struct wl_client *client,
@@ -2514,11 +2515,12 @@
        return resource->object.id;
 }
 
+WL_DEPRECATED
 struct wl_resource *
 wl_client_add_object(struct wl_client *client,
                     const struct wl_interface *interface,
                     const void *implementation,
-                    uint32_t id, void *data) WL_DEPRECATED;
+                    uint32_t id, void *data);
 
 WL_EXPORT struct wl_resource *
 wl_client_add_object(struct wl_client *client,
@@ -2537,10 +2539,11 @@
        return resource;
 }
 
+WL_DEPRECATED
 struct wl_resource *
 wl_client_new_object(struct wl_client *client,
                     const struct wl_interface *interface,
-                    const void *implementation, void *data) WL_DEPRECATED;
+                    const void *implementation, void *data);
 
 WL_EXPORT struct wl_resource *
 wl_client_new_object(struct wl_client *client,
@@ -2599,10 +2602,11 @@
        return client->data;
 }
 
+WL_DEPRECATED
 struct wl_global *
 wl_display_add_global(struct wl_display *display,
                      const struct wl_interface *interface,
-                     void *data, wl_global_bind_func_t bind) WL_DEPRECATED;
+                     void *data, wl_global_bind_func_t bind);
 
 WL_EXPORT struct wl_global *
 wl_display_add_global(struct wl_display *display,
@@ -2612,9 +2616,10 @@
        return wl_global_create(display, interface, interface->version, data, 
bind);
 }
 
+WL_DEPRECATED
 void
 wl_display_remove_global(struct wl_display *display,
-                        struct wl_global *global) WL_DEPRECATED;
+                        struct wl_global *global);
 
 WL_EXPORT void
 wl_display_remove_global(struct wl_display *display, struct wl_global *global)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/src/wayland-server.h 
new/wayland-1.23.1/src/wayland-server.h
--- old/wayland-1.23.0/src/wayland-server.h     2024-05-30 20:59:51.000000000 
+0200
+++ new/wayland-1.23.1/src/wayland-server.h     2024-08-24 17:43:55.000000000 
+0200
@@ -70,30 +70,35 @@
        void *data;
 };
 
+WL_DEPRECATED
 uint32_t
 wl_client_add_resource(struct wl_client *client,
-                      struct wl_resource *resource) WL_DEPRECATED;
+                      struct wl_resource *resource);
 
+WL_DEPRECATED
 struct wl_resource *
 wl_client_add_object(struct wl_client *client,
                     const struct wl_interface *interface,
                     const void *implementation,
-                    uint32_t id, void *data) WL_DEPRECATED;
+                    uint32_t id, void *data);
 
+WL_DEPRECATED
 struct wl_resource *
 wl_client_new_object(struct wl_client *client,
                     const struct wl_interface *interface,
-                    const void *implementation, void *data) WL_DEPRECATED;
+                    const void *implementation, void *data);
 
+WL_DEPRECATED
 struct wl_global *
 wl_display_add_global(struct wl_display *display,
                      const struct wl_interface *interface,
                      void *data,
-                     wl_global_bind_func_t bind) WL_DEPRECATED;
+                     wl_global_bind_func_t bind);
 
+WL_DEPRECATED
 void
 wl_display_remove_global(struct wl_display *display,
-                        struct wl_global *global) WL_DEPRECATED;
+                        struct wl_global *global);
 
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/tests/data/example-server.h 
new/wayland-1.23.1/tests/data/example-server.h
--- old/wayland-1.23.0/tests/data/example-server.h      2024-05-30 
20:59:51.000000000 +0200
+++ new/wayland-1.23.1/tests/data/example-server.h      2024-08-24 
17:43:55.000000000 +0200
@@ -2396,18 +2396,16 @@
  */
 static inline bool
 wl_data_device_manager_dnd_action_is_valid(uint32_t value, uint32_t version) {
-       switch (value) {
-       case WL_DATA_DEVICE_MANAGER_DND_ACTION_NONE:
-               return version >= 1;
-       case WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY:
-               return version >= 1;
-       case WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE:
-               return version >= 1;
-       case WL_DATA_DEVICE_MANAGER_DND_ACTION_ASK:
-               return version >= 1;
-       default:
-               return false;
-       }
+       uint32_t valid = 0;
+       if (version >= 1)
+               valid |= WL_DATA_DEVICE_MANAGER_DND_ACTION_NONE;
+       if (version >= 1)
+               valid |= WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY;
+       if (version >= 1)
+               valid |= WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE;
+       if (version >= 1)
+               valid |= WL_DATA_DEVICE_MANAGER_DND_ACTION_ASK;
+       return (value & ~valid) == 0;
 }
 #endif /* WL_DATA_DEVICE_MANAGER_DND_ACTION_ENUM */
 
@@ -2560,28 +2558,26 @@
  */
 static inline bool
 wl_shell_surface_resize_is_valid(uint32_t value, uint32_t version) {
-       switch (value) {
-       case WL_SHELL_SURFACE_RESIZE_NONE:
-               return version >= 1;
-       case WL_SHELL_SURFACE_RESIZE_TOP:
-               return version >= 1;
-       case WL_SHELL_SURFACE_RESIZE_BOTTOM:
-               return version >= 1;
-       case WL_SHELL_SURFACE_RESIZE_LEFT:
-               return version >= 1;
-       case WL_SHELL_SURFACE_RESIZE_TOP_LEFT:
-               return version >= 1;
-       case WL_SHELL_SURFACE_RESIZE_BOTTOM_LEFT:
-               return version >= 1;
-       case WL_SHELL_SURFACE_RESIZE_RIGHT:
-               return version >= 1;
-       case WL_SHELL_SURFACE_RESIZE_TOP_RIGHT:
-               return version >= 1;
-       case WL_SHELL_SURFACE_RESIZE_BOTTOM_RIGHT:
-               return version >= 1;
-       default:
-               return false;
-       }
+       uint32_t valid = 0;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_RESIZE_NONE;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_RESIZE_TOP;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_RESIZE_BOTTOM;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_RESIZE_LEFT;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_RESIZE_TOP_LEFT;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_RESIZE_BOTTOM_LEFT;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_RESIZE_RIGHT;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_RESIZE_TOP_RIGHT;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_RESIZE_BOTTOM_RIGHT;
+       return (value & ~valid) == 0;
 }
 #endif /* WL_SHELL_SURFACE_RESIZE_ENUM */
 
@@ -2609,12 +2605,10 @@
  */
 static inline bool
 wl_shell_surface_transient_is_valid(uint32_t value, uint32_t version) {
-       switch (value) {
-       case WL_SHELL_SURFACE_TRANSIENT_INACTIVE:
-               return version >= 1;
-       default:
-               return false;
-       }
+       uint32_t valid = 0;
+       if (version >= 1)
+               valid |= WL_SHELL_SURFACE_TRANSIENT_INACTIVE;
+       return (value & ~valid) == 0;
 }
 #endif /* WL_SHELL_SURFACE_TRANSIENT_ENUM */
 
@@ -3486,16 +3480,14 @@
  */
 static inline bool
 wl_seat_capability_is_valid(uint32_t value, uint32_t version) {
-       switch (value) {
-       case WL_SEAT_CAPABILITY_POINTER:
-               return version >= 1;
-       case WL_SEAT_CAPABILITY_KEYBOARD:
-               return version >= 1;
-       case WL_SEAT_CAPABILITY_TOUCH:
-               return version >= 1;
-       default:
-               return false;
-       }
+       uint32_t valid = 0;
+       if (version >= 1)
+               valid |= WL_SEAT_CAPABILITY_POINTER;
+       if (version >= 1)
+               valid |= WL_SEAT_CAPABILITY_KEYBOARD;
+       if (version >= 1)
+               valid |= WL_SEAT_CAPABILITY_TOUCH;
+       return (value & ~valid) == 0;
 }
 #endif /* WL_SEAT_CAPABILITY_ENUM */
 
@@ -4567,14 +4559,12 @@
  */
 static inline bool
 wl_output_mode_is_valid(uint32_t value, uint32_t version) {
-       switch (value) {
-       case WL_OUTPUT_MODE_CURRENT:
-               return version >= 1;
-       case WL_OUTPUT_MODE_PREFERRED:
-               return version >= 1;
-       default:
-               return false;
-       }
+       uint32_t valid = 0;
+       if (version >= 1)
+               valid |= WL_OUTPUT_MODE_CURRENT;
+       if (version >= 1)
+               valid |= WL_OUTPUT_MODE_PREFERRED;
+       return (value & ~valid) == 0;
 }
 #endif /* WL_OUTPUT_MODE_ENUM */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/tests/data/small-client-core.h 
new/wayland-1.23.1/tests/data/small-client-core.h
--- old/wayland-1.23.0/tests/data/small-client-core.h   2024-05-30 
20:59:51.000000000 +0200
+++ new/wayland-1.23.1/tests/data/small-client-core.h   2024-08-24 
17:43:55.000000000 +0200
@@ -106,6 +106,29 @@
 #define INTF_A_FOO_DEPRECATED_SINCE_VERSION 2
 #endif /* INTF_A_FOO_ENUM */
 
+#ifndef INTF_A_BAR_ENUM
+#define INTF_A_BAR_ENUM
+enum intf_A_bar {
+       /**
+        * this is the first
+        */
+       INTF_A_BAR_FIRST = 0x01,
+       /**
+        * this is the second
+        */
+       INTF_A_BAR_SECOND = 0x02,
+       /**
+        * this is the third
+        * @since 2
+        */
+       INTF_A_BAR_THIRD = 0x04,
+};
+/**
+ * @ingroup iface_intf_A
+ */
+#define INTF_A_BAR_THIRD_SINCE_VERSION 2
+#endif /* INTF_A_BAR_ENUM */
+
 /**
  * @ingroup iface_intf_A
  * @struct intf_A_listener
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/tests/data/small-client.h 
new/wayland-1.23.1/tests/data/small-client.h
--- old/wayland-1.23.0/tests/data/small-client.h        2024-05-30 
20:59:51.000000000 +0200
+++ new/wayland-1.23.1/tests/data/small-client.h        2024-08-24 
17:43:55.000000000 +0200
@@ -106,6 +106,29 @@
 #define INTF_A_FOO_DEPRECATED_SINCE_VERSION 2
 #endif /* INTF_A_FOO_ENUM */
 
+#ifndef INTF_A_BAR_ENUM
+#define INTF_A_BAR_ENUM
+enum intf_A_bar {
+       /**
+        * this is the first
+        */
+       INTF_A_BAR_FIRST = 0x01,
+       /**
+        * this is the second
+        */
+       INTF_A_BAR_SECOND = 0x02,
+       /**
+        * this is the third
+        * @since 2
+        */
+       INTF_A_BAR_THIRD = 0x04,
+};
+/**
+ * @ingroup iface_intf_A
+ */
+#define INTF_A_BAR_THIRD_SINCE_VERSION 2
+#endif /* INTF_A_BAR_ENUM */
+
 /**
  * @ingroup iface_intf_A
  * @struct intf_A_listener
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/tests/data/small-server-core.h 
new/wayland-1.23.1/tests/data/small-server-core.h
--- old/wayland-1.23.0/tests/data/small-server-core.h   2024-05-30 
20:59:51.000000000 +0200
+++ new/wayland-1.23.1/tests/data/small-server-core.h   2024-08-24 
17:43:55.000000000 +0200
@@ -133,6 +133,47 @@
 }
 #endif /* INTF_A_FOO_ENUM */
 
+#ifndef INTF_A_BAR_ENUM
+#define INTF_A_BAR_ENUM
+enum intf_A_bar {
+       /**
+        * this is the first
+        */
+       INTF_A_BAR_FIRST = 0x01,
+       /**
+        * this is the second
+        */
+       INTF_A_BAR_SECOND = 0x02,
+       /**
+        * this is the third
+        * @since 2
+        */
+       INTF_A_BAR_THIRD = 0x04,
+};
+/**
+ * @ingroup iface_intf_A
+ */
+#define INTF_A_BAR_THIRD_SINCE_VERSION 2
+/**
+ * @ingroup iface_intf_A
+ * Validate a intf_A bar value.
+ *
+ * @return true on success, false on error.
+ * @ref intf_A_bar
+ */
+static inline bool
+intf_A_bar_is_valid(uint32_t value, uint32_t version) {
+       uint32_t valid = 0;
+       if (version >= 1)
+               valid |= INTF_A_BAR_FIRST;
+       if (version >= 1)
+               valid |= INTF_A_BAR_SECOND;
+       if (version >= 2)
+               valid |= INTF_A_BAR_THIRD;
+       return (value & ~valid) == 0;
+}
+#endif /* INTF_A_BAR_ENUM */
+
 /**
  * @ingroup iface_intf_A
  * @struct intf_A_interface
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/tests/data/small-server.h 
new/wayland-1.23.1/tests/data/small-server.h
--- old/wayland-1.23.0/tests/data/small-server.h        2024-05-30 
20:59:51.000000000 +0200
+++ new/wayland-1.23.1/tests/data/small-server.h        2024-08-24 
17:43:55.000000000 +0200
@@ -133,6 +133,47 @@
 }
 #endif /* INTF_A_FOO_ENUM */
 
+#ifndef INTF_A_BAR_ENUM
+#define INTF_A_BAR_ENUM
+enum intf_A_bar {
+       /**
+        * this is the first
+        */
+       INTF_A_BAR_FIRST = 0x01,
+       /**
+        * this is the second
+        */
+       INTF_A_BAR_SECOND = 0x02,
+       /**
+        * this is the third
+        * @since 2
+        */
+       INTF_A_BAR_THIRD = 0x04,
+};
+/**
+ * @ingroup iface_intf_A
+ */
+#define INTF_A_BAR_THIRD_SINCE_VERSION 2
+/**
+ * @ingroup iface_intf_A
+ * Validate a intf_A bar value.
+ *
+ * @return true on success, false on error.
+ * @ref intf_A_bar
+ */
+static inline bool
+intf_A_bar_is_valid(uint32_t value, uint32_t version) {
+       uint32_t valid = 0;
+       if (version >= 1)
+               valid |= INTF_A_BAR_FIRST;
+       if (version >= 1)
+               valid |= INTF_A_BAR_SECOND;
+       if (version >= 2)
+               valid |= INTF_A_BAR_THIRD;
+       return (value & ~valid) == 0;
+}
+#endif /* INTF_A_BAR_ENUM */
+
 /**
  * @ingroup iface_intf_A
  * @struct intf_A_interface
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/tests/data/small.xml 
new/wayland-1.23.1/tests/data/small.xml
--- old/wayland-1.23.0/tests/data/small.xml     2024-05-30 20:59:51.000000000 
+0200
+++ new/wayland-1.23.1/tests/data/small.xml     2024-08-24 17:43:55.000000000 
+0200
@@ -58,5 +58,12 @@
        <entry name="negative" value="-1" since="2" summary="this is a negative 
value"/>
        <entry name="deprecated" value="3" since="2" deprecated-since="3" 
summary="this is a deprecated value"/>
     </enum>
+
+    <enum name="bar" bitfield="true">
+      <entry name="first" value="0x01" summary="this is the first"/>
+      <entry name="second" value="0x02" summary="this is the second"/>
+      <entry name="third" value="0x04" since="2" summary="this is the third"/>
+    </enum>
+
   </interface>
 </protocol>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wayland-1.23.0/tests/enum-validator-test.c 
new/wayland-1.23.1/tests/enum-validator-test.c
--- old/wayland-1.23.0/tests/enum-validator-test.c      2024-05-30 
20:59:51.000000000 +0200
+++ new/wayland-1.23.1/tests/enum-validator-test.c      2024-08-24 
17:43:55.000000000 +0200
@@ -10,4 +10,19 @@
        assert(intf_A_foo_is_valid(INTF_A_FOO_THIRD, 2));
 
        assert(intf_A_foo_is_valid(INTF_A_FOO_NEGATIVE, 2));
+
+       assert(intf_A_bar_is_valid(INTF_A_BAR_FIRST, 1));
+       assert(intf_A_bar_is_valid(INTF_A_BAR_FIRST, 2));
+       assert(intf_A_bar_is_valid(INTF_A_BAR_SECOND, 1));
+       assert(intf_A_bar_is_valid(INTF_A_BAR_SECOND, 2));
+       assert(intf_A_bar_is_valid(INTF_A_BAR_FIRST | INTF_A_BAR_SECOND, 1));
+       assert(intf_A_bar_is_valid(INTF_A_BAR_FIRST | INTF_A_BAR_SECOND, 2));
+
+       assert(!intf_A_bar_is_valid(INTF_A_BAR_THIRD, 1));
+       assert(!intf_A_bar_is_valid(INTF_A_BAR_FIRST | INTF_A_BAR_THIRD, 1));
+       assert(intf_A_bar_is_valid(INTF_A_BAR_THIRD, 2));
+       assert(intf_A_bar_is_valid(INTF_A_BAR_FIRST | INTF_A_BAR_THIRD, 2));
+
+       assert(!intf_A_bar_is_valid(0xFF, 1));
+       assert(!intf_A_bar_is_valid(0xFF, 2));
 }

Reply via email to