Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package at-spi2-core for openSUSE:Factory 
checked in at 2023-09-06 18:56:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/at-spi2-core (Old)
 and      /work/SRC/openSUSE:Factory/.at-spi2-core.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "at-spi2-core"

Wed Sep  6 18:56:21 2023 rev:105 rq:1109061 version:2.48.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/at-spi2-core/at-spi2-core.changes        
2023-08-07 15:28:44.048181210 +0200
+++ /work/SRC/openSUSE:Factory/.at-spi2-core.new.1766/at-spi2-core.changes      
2023-09-06 18:57:43.174545514 +0200
@@ -1,0 +2,13 @@
+Mon Sep  4 18:20:58 UTC 2023 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 2.48.4:
+  + Add atspi_get_version() to return the runtime version of the
+    AT-SPI library.
+  + collection:
+    - Fix match testing for attributes.
+    - Avoid locking up if an object has a very large child count.
+  + Fix possible NULL pointer dereference when deregistering an
+    event listener.
+  + Various fixes for the new key grabbing API.
+
+-------------------------------------------------------------------

Old:
----
  at-spi2-core-2.48.3.tar.xz

New:
----
  at-spi2-core-2.48.4.tar.xz

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

Other differences:
------------------
++++++ at-spi2-core.spec ++++++
--- /var/tmp/diff_new_pack.RZBPVZ/_old  2023-09-06 18:57:44.338587010 +0200
+++ /var/tmp/diff_new_pack.RZBPVZ/_new  2023-09-06 18:57:44.346587295 +0200
@@ -19,7 +19,7 @@
 %define atspiconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}
 
 Name:           at-spi2-core
-Version:        2.48.3
+Version:        2.48.4
 Release:        0
 Summary:        Assistive Technology Service Provider Interface - D-Bus based 
implementation
 License:        LGPL-2.1-or-later

++++++ at-spi2-core-2.48.3.tar.xz -> at-spi2-core-2.48.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/NEWS new/at-spi2-core-2.48.4/NEWS
--- old/at-spi2-core-2.48.3/NEWS        2023-05-27 17:00:48.000000000 +0200
+++ new/at-spi2-core-2.48.4/NEWS        2023-09-02 15:40:51.000000000 +0200
@@ -1,3 +1,15 @@
+What's new in at-spi2-core 2.48.4:
+
+* Add atspi_get_version() to return the runtime version of the AT-SPI library.
+
+* collection: Fix match testing for attributes.
+
+* collection: Avoid locking up if an object has a very large child count
+
+* Fix possible NULL pointer dereference when deregistering an event listener.
+
+* Various fixes for the new key grabbing API.
+
 What's new in at-spi2-core 2.48.3:
 
 * Fix the build when dbus-broker is not set to be used by default.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atk/meson.build 
new/at-spi2-core-2.48.4/atk/meson.build
--- old/at-spi2-core-2.48.3/atk/meson.build     2023-05-27 17:00:48.000000000 
+0200
+++ new/at-spi2-core-2.48.4/atk/meson.build     2023-09-02 15:40:51.000000000 
+0200
@@ -72,13 +72,13 @@
 
 # Features header
 atk_version_conf = configuration_data()
-atk_version_conf.set('ATK_MAJOR_VERSION', atk_major_version)
-atk_version_conf.set('ATK_MINOR_VERSION', atk_minor_version)
-atk_version_conf.set('ATK_MICRO_VERSION', atk_micro_version)
+atk_version_conf.set('ATK_MAJOR_VERSION', atspi_major_version)
+atk_version_conf.set('ATK_MINOR_VERSION', atspi_minor_version)
+atk_version_conf.set('ATK_MICRO_VERSION', atspi_micro_version)
 atk_version_conf.set('ATK_BINARY_AGE', atk_binary_age)
 atk_version_conf.set('ATK_INTERFACE_AGE', atk_interface_age)
 atk_version_conf.set('LT_CURRENT_MINUS_AGE', '0')
-atk_version_conf.set('ATK_VERSION', atk_version)
+atk_version_conf.set('ATK_VERSION', atspi_version)
 
 atk_includedir = join_paths(get_option('prefix'), get_option('includedir'))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/at-spi2-core-2.48.3/atk-adaptor/adaptors/collection-adaptor.c 
new/at-spi2-core-2.48.4/atk-adaptor/adaptors/collection-adaptor.c
--- old/at-spi2-core-2.48.3/atk-adaptor/adaptors/collection-adaptor.c   
2023-05-27 17:00:48.000000000 +0200
+++ new/at-spi2-core-2.48.4/atk-adaptor/adaptors/collection-adaptor.c   
2023-09-02 15:40:51.000000000 +0200
@@ -36,6 +36,8 @@
 #include "introspection.h"
 #include "object.h"
 
+#define MAX_CHILDREN 65536
+
 typedef struct _MatchRulePrivate MatchRulePrivate;
 struct _MatchRulePrivate
 {
@@ -355,7 +357,7 @@
       AtkAttribute *attr = g_slist_nth_data (attributes, i);
       for (k = 0; k < oa_length; k++)
         {
-          AtkAttribute *oa_attr = g_slist_nth_data (attributes, i);
+          AtkAttribute *oa_attr = g_slist_nth_data (oa, k);
           if (!g_ascii_strcasecmp (oa_attr->name, attr->name) &&
               !g_ascii_strcasecmp (oa_attr->value, attr->value))
             {
@@ -428,7 +430,7 @@
       AtkAttribute *attr = g_slist_nth_data (attributes, i);
       for (k = 0; k < oa_length; k++)
         {
-          AtkAttribute *oa_attr = g_slist_nth_data (attributes, i);
+          AtkAttribute *oa_attr = g_slist_nth_data (oa, k);
           if (!g_ascii_strcasecmp (oa_attr->name, attr->name) &&
               !g_ascii_strcasecmp (oa_attr->value, attr->value))
             {
@@ -484,6 +486,8 @@
   glong acount = atk_object_get_n_accessible_children (obj);
   gboolean prev = pobj ? TRUE : FALSE;
 
+  if (acount > MAX_CHILDREN)
+    acount = MAX_CHILDREN;
   for (; i < acount && (max == 0 || kount < max); i++)
     {
       AtkObject *child = atk_object_ref_accessible_child (obj, i);
@@ -551,9 +555,11 @@
       while (nextobj && atk_object_get_n_accessible_children (nextobj) > 0)
         {
           AtkObject *follow;
+          gint count = atk_object_get_n_accessible_children (nextobj);
+          if (count > MAX_CHILDREN)
+            count = MAX_CHILDREN;
 
-          follow = atk_object_ref_accessible_child (nextobj,
-                                                    
atk_object_get_n_accessible_children (nextobj) - 1);
+          follow = atk_object_ref_accessible_child (nextobj, count - 1);
           g_object_unref (nextobj);
           nextobj = follow;
         }
@@ -1123,6 +1129,8 @@
         return;
     }
   count = atk_object_get_n_accessible_children (obj);
+  if (count > MAX_CHILDREN)
+    count = MAX_CHILDREN;
   for (i = 0; i < count; i++)
     {
       AtkObject *child = atk_object_ref_accessible_child (obj, i);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/atspi-device-x11.c 
new/at-spi2-core-2.48.4/atspi/atspi-device-x11.c
--- old/at-spi2-core-2.48.3/atspi/atspi-device-x11.c    2023-05-27 
17:00:48.000000000 +0200
+++ new/at-spi2-core-2.48.4/atspi/atspi-device-x11.c    2023-09-02 
15:40:51.000000000 +0200
@@ -38,8 +38,6 @@
   Window focused_window;
   GSource *source;
   int xi_opcode;
-  int device_id;
-  int device_id_alt;
   GSList *modifiers;
   GSList *key_grabs;
   guint virtual_mods_enabled;
@@ -200,11 +198,12 @@
 grab_key (AtspiDeviceX11 *x11_device, Window window, int keycode, int modmask)
 {
   AtspiDeviceX11Private *priv = atspi_device_x11_get_instance_private 
(x11_device);
+  gboolean include_numlock = !_atspi_key_is_on_keypad (keycode);
 
   grab_key_aux (x11_device, window, keycode, modmask);
   if (!(modmask & LockMask))
     grab_key_aux (x11_device, window, keycode, modmask | LockMask);
-  if (!(modmask & priv->numlock_physical_mask))
+  if (include_numlock && !(modmask & priv->numlock_physical_mask))
     {
       grab_key_aux (x11_device, window, keycode, modmask | 
priv->numlock_physical_mask);
       if (!(modmask & LockMask))
@@ -234,7 +233,7 @@
   xi_modifiers.modifiers = modmask;
   xi_modifiers.status = 0;
 
-  XIUngrabKeycode (priv->display, XIAllMasterDevices, keycode, window, sizeof 
(xi_modifiers), &xi_modifiers);
+  XIUngrabKeycode (priv->display, XIAllMasterDevices, keycode, window, 1, 
&xi_modifiers);
 }
 
 static void
@@ -283,9 +282,14 @@
   for (l = priv->key_grabs; l; l = l->next)
     {
       AtspiX11KeyGrab *grab = l->data;
-      gboolean new_enabled = grab_should_be_enabled (x11_device, grab);
       if (grab->window != priv->focused_window)
         disable_key_grab (x11_device, grab);
+    }
+
+  for (l = priv->key_grabs; l; l = l->next)
+    {
+      AtspiX11KeyGrab *grab = l->data;
+      gboolean new_enabled = grab_should_be_enabled (x11_device, grab);
       if (new_enabled && !grab->enabled)
         enable_key_grab (x11_device, grab);
       else if (grab->enabled && !new_enabled)
@@ -366,19 +370,11 @@
                   XLookupString ((XKeyEvent *) &keyevent, text, sizeof (text), 
&keysym, &status);
                   if (text[0] < ' ')
                     text[0] = '\0';
-                  /* The deviceid can change. Would be nice to find a better 
way of
-                     handling this */
-                  if (priv->device_id && priv->device_id_alt && 
xiDevEv->deviceid != priv->device_id && xiDevEv->deviceid != 
priv->device_id_alt)
-                    priv->device_id = priv->device_id_alt = 0;
-                  else if (priv->device_id && !priv->device_id_alt && 
xiDevEv->deviceid != priv->device_id)
-                    priv->device_id_alt = xiDevEv->deviceid;
-                  if (!priv->device_id)
-                    priv->device_id = xiDevEv->deviceid;
                   set_virtual_modifier (device, xiRawEv->detail, 
xevent.xcookie.evtype == XI_KeyPress);
                   modifiers = keyevent.xkey.state | priv->virtual_mods_enabled;
                   if (modifiers & priv->numlock_physical_mask)
                     modifiers |= (1 << ATSPI_MODIFIER_NUMLOCK);
-                  if (xiDevEv->deviceid == priv->device_id)
+                  if (xiDevEv->deviceid == xiDevEv->sourceid)
                     atspi_device_notify_key (ATSPI_DEVICE (device), 
(xevent.xcookie.evtype == XI_KeyPress), xiRawEv->detail, keysym, modifiers, 
text);
                   /* otherwise it's probably a duplicate event from a key grab 
*/
                   XFreeEventData (priv->display, &xevent.xcookie);
@@ -655,7 +651,7 @@
   AtspiDeviceX11Private *priv = atspi_device_x11_get_instance_private 
(x11_device);
   AtspiX11KeyGrab *grab;
 
-  grab = g_new (AtspiX11KeyGrab, 1);
+  grab = g_new0 (AtspiX11KeyGrab, 1);
   grab->kd = g_boxed_copy (ATSPI_TYPE_KEY_DEFINITION, kd);
   grab->enabled = FALSE;
   priv->key_grabs = g_slist_append (priv->key_grabs, grab);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/atspi-device.c 
new/at-spi2-core-2.48.4/atspi/atspi-device.c
--- old/at-spi2-core-2.48.3/atspi/atspi-device.c        2023-05-27 
17:00:48.000000000 +0200
+++ new/at-spi2-core-2.48.4/atspi/atspi-device.c        2023-09-02 
15:40:51.000000000 +0200
@@ -106,7 +106,7 @@
 }
 
 static gboolean
-key_matches_modifiers (guint key_mods, guint grab_mods)
+key_matches_modifiers (gint keycode, guint key_mods, guint grab_mods)
 {
   /* The presence or lack thereof of locking modifiers should make no
      difference when testing, but other modifiers should match. If the
@@ -114,7 +114,10 @@
      not lock modifiers, then we reject the match. Alt + left arrow should not
      match a grab on left arrow, for instance, but whether numlock is on or
      off would be irrelevant. */
-  key_mods &= ~((1 << ATSPI_MODIFIER_SHIFTLOCK) | (1 << 
ATSPI_MODIFIER_NUMLOCK));
+  if (_atspi_key_is_on_keypad (keycode))
+    key_mods &= ~((1 << ATSPI_MODIFIER_SHIFTLOCK));
+  else
+    key_mods &= ~((1 << ATSPI_MODIFIER_SHIFTLOCK) | (1 << 
ATSPI_MODIFIER_NUMLOCK));
   return (key_mods == grab_mods);
 }
 
@@ -134,7 +137,7 @@
   for (l = priv->keygrabs; l; l = l->next)
     {
       AtspiKeyGrab *grab = l->data;
-      if (keycode == grab->keycode && key_matches_modifiers (state, 
grab->modifiers))
+      if (keycode == grab->keycode && key_matches_modifiers (keycode, state, 
grab->modifiers))
         {
           if (grab->callback)
             grab->callback (device, pressed, keycode, keysym, state, text, 
grab->callback_data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/atspi-event-listener.c 
new/at-spi2-core-2.48.4/atspi/atspi-event-listener.c
--- old/at-spi2-core-2.48.3/atspi/atspi-event-listener.c        2023-05-27 
17:00:48.000000000 +0200
+++ new/at-spi2-core-2.48.4/atspi/atspi-event-listener.c        2023-09-02 
15:40:51.000000000 +0200
@@ -824,6 +824,8 @@
 {
   if (!super || !super[0])
     return TRUE;
+  if (!sub || !sub[0])
+    return FALSE;
   return (strcmp (super, sub) == 0);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/atspi-matchrule.c 
new/at-spi2-core-2.48.4/atspi/atspi-matchrule.c
--- old/at-spi2-core-2.48.3/atspi/atspi-matchrule.c     2023-05-27 
17:00:48.000000000 +0200
+++ new/at-spi2-core-2.48.4/atspi/atspi-matchrule.c     2023-09-02 
15:40:51.000000000 +0200
@@ -100,8 +100,8 @@
  *          interpret @attributes.
  * @interfaces: (element-type gchar*): An array of interfaces to match, or
  *          NULL if not applicable.  Interface names should be specified
- *          by their DBus names (org.a11y.Atspi.Accessible,
- *          org.a11y.Atspi.Component, etc).
+ *          by the final component of their DBus names (Accessible,
+ *          Component, etc).
  * @interfacematchtype: An #AtspiCollectionMatchType specifying how to
  *          interpret @interfaces.
  * @roles: (element-type AtspiRole): A #GArray of roles to match, or NULL if
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/atspi-misc-private.h 
new/at-spi2-core-2.48.4/atspi/atspi-misc-private.h
--- old/at-spi2-core-2.48.3/atspi/atspi-misc-private.h  2023-05-27 
17:00:48.000000000 +0200
+++ new/at-spi2-core-2.48.4/atspi/atspi-misc-private.h  2023-09-02 
15:40:51.000000000 +0200
@@ -162,6 +162,8 @@
 gboolean _atspi_prepare_screen_reader_interface ();
 
 gchar *_atspi_strdup_and_adjust_for_dbus (const char *s);
+
+gboolean _atspi_key_is_on_keypad (gint keycode);
 G_END_DECLS
 
 #endif /* _ATSPI_MISC_PRIVATE_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/atspi-misc.c 
new/at-spi2-core-2.48.4/atspi/atspi-misc.c
--- old/at-spi2-core-2.48.3/atspi/atspi-misc.c  2023-05-27 17:00:48.000000000 
+0200
+++ new/at-spi2-core-2.48.4/atspi/atspi-misc.c  2023-09-02 15:40:51.000000000 
+0200
@@ -2016,3 +2016,51 @@
   d[0] = toupper (d[0]);
   return d;
 }
+
+/**
+ * atspi_get_version:
+ * @major: (out): the major version.
+ * @minor: (out): the minor version.
+ * @micro: (out): the micro/patch version.
+ *
+ * Returns the version of the AT-SPI library being used at runtime.
+
+* Since: 2.50
+ */
+void
+atspi_get_version (gint *major, gint *minor, gint *micro)
+{
+  if (major)
+    *major = ATSPI_MAJOR_VERSION;
+  if (minor)
+    *minor = ATSPI_MINOR_VERSION;
+  if (micro)
+    *micro = ATSPI_MICRO_VERSION;
+}
+
+gboolean
+_atspi_key_is_on_keypad (gint keycode)
+{
+  switch (keycode)
+    {
+    case 106: /* / */
+    case 63:  /* * */
+    case 82:  /* - */
+    case 79:  /* 7 */
+    case 80:  /* 8 */
+    case 91:  /* 9 */
+    case 86:  /* + */
+    case 83:  /* 4 */
+    case 84:  /* 5 */
+    case 85:  /* 6 */
+    case 87:  /* 1 */
+    case 88:  /* 2 */
+    case 89:  /* 3 */
+    case 104: /* enter */
+    case 90:  /* 0 */
+    case 81:  /* . */
+      return TRUE;
+    default:
+      return FALSE;
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/atspi-misc.h 
new/at-spi2-core-2.48.4/atspi/atspi-misc.h
--- old/at-spi2-core-2.48.3/atspi/atspi-misc.h  2023-05-27 17:00:48.000000000 
+0200
+++ new/at-spi2-core-2.48.4/atspi/atspi-misc.h  2023-09-02 15:40:51.000000000 
+0200
@@ -47,6 +47,7 @@
 atspi_set_main_context (GMainContext *cnx);
 
 gchar *atspi_role_get_name (AtspiRole role);
+void atspi_get_version (gint *major, gint *minor, gint *micro);
 G_END_DECLS
 
 #endif /* _ATSPI_MISC_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/atspi-version.h.in 
new/at-spi2-core-2.48.4/atspi/atspi-version.h.in
--- old/at-spi2-core-2.48.3/atspi/atspi-version.h.in    1970-01-01 
01:00:00.000000000 +0100
+++ new/at-spi2-core-2.48.4/atspi/atspi-version.h.in    2023-09-02 
15:40:51.000000000 +0200
@@ -0,0 +1,58 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2023 SUSE LLC.
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef _ATSPI_VERSION_H_
+#define _ATSPI_VERSION_H_
+
+G_BEGIN_DECLS
+
+/**
+ * ATSPI_MAJOR_VERSION:
+ *
+ * The major version of AT-SPI used at compile time.
+ *
+ * Since: 2.50.0
+ */
+#define ATSPI_MAJOR_VERSION (@ATSPI_MAJOR_VERSION@)
+
+/**
+ * ATSPI_MINOR_VERSION:
+ *
+ * The minor version of AT-SPI used at compile time.
+ *
+ * Since: 2.50.0
+ */
+#define ATSPI_MINOR_VERSION (@ATSPI_MINOR_VERSION@)
+
+/**
+ * ATSPI_MICRO_VERSION:
+ *
+ * The micro version / patch level of AT-SPI used at compile time.
+ *
+ * Since: 2.50.0
+ */
+#define ATSPI_MICRO_VERSION (@ATSPI_MICRO_VERSION@)
+
+G_END_DECLS
+
+#endif /* _ATSPI_VERSION_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/atspi.h 
new/at-spi2-core-2.48.4/atspi/atspi.h
--- old/at-spi2-core-2.48.3/atspi/atspi.h       2023-05-27 17:00:48.000000000 
+0200
+++ new/at-spi2-core-2.48.4/atspi/atspi.h       2023-09-02 15:40:51.000000000 
+0200
@@ -53,4 +53,6 @@
 #include "atspi-gmain.h"
 
 #include "atspi-enum-types.h"
+
+#include "atspi-version.h"
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/atspi/meson.build 
new/at-spi2-core-2.48.4/atspi/meson.build
--- old/at-spi2-core-2.48.3/atspi/meson.build   2023-05-27 17:00:48.000000000 
+0200
+++ new/at-spi2-core-2.48.4/atspi/meson.build   2023-09-02 15:40:51.000000000 
+0200
@@ -69,6 +69,18 @@
 
 install_headers(atspi_headers, install_dir: atspi_includedir)
 
+# Features header
+atspi_version_conf = configuration_data()
+atspi_version_conf.set('ATSPI_MAJOR_VERSION', atspi_major_version)
+atspi_version_conf.set('ATSPI_MINOR_VERSION', atspi_minor_version)
+atspi_version_conf.set('ATSPI_MICRO_VERSION', atspi_micro_version)
+
+atspi_version_h = configure_file(input: 'atspi-version.h.in',
+  output: 'atspi-version.h',
+  configuration: atspi_version_conf,
+                            install_dir: atspi_includedir,
+)
+
 # Marshallers
 atspi_marshals = gnome.genmarshal('atspimarshal',
   sources: 'atspimarshal.list',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/at-spi2-core-2.48.3/meson.build 
new/at-spi2-core-2.48.4/meson.build
--- old/at-spi2-core-2.48.3/meson.build 2023-05-27 17:00:48.000000000 +0200
+++ new/at-spi2-core-2.48.4/meson.build 2023-09-02 15:40:51.000000000 +0200
@@ -1,5 +1,5 @@
 project('at-spi2-core', 'c',
-        version: '2.48.3',
+        version: '2.48.4',
         license: 'LGPLv2.1+',
         default_options: [
           'buildtype=debugoptimized',
@@ -19,14 +19,14 @@
 
 soversion = '0.0.1'
 
-atk_version = meson.project_version()
-version = atk_version.split('.')
-atk_major_version = version[0].to_int()
-atk_minor_version = version[1].to_int()
-atk_micro_version = version[2].to_int()
+atspi_version = meson.project_version()
+version = atspi_version.split('.')
+atspi_major_version = version[0].to_int()
+atspi_minor_version = version[1].to_int()
+atspi_micro_version = version[2].to_int()
 
 atk_interface_age = 1
-atk_binary_age = 10000 * atk_major_version + 100 * atk_minor_version + 10 + 
atk_micro_version
+atk_binary_age = 10000 * atspi_major_version + 100 * atspi_minor_version + 10 
+ atspi_micro_version
 
 atk_api_version = '1.0'
 atk_api_name = 'atk-@0@'.format(atk_api_version)
@@ -56,7 +56,7 @@
 test_cflags = []
 
 at_spi_conf = configuration_data()
-at_spi_conf.set_quoted('ATK_VERSION', atk_version)
+at_spi_conf.set_quoted('ATK_VERSION', atspi_version)
 at_spi_conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
 
 # Symbol visibility
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/at-spi2-core-2.48.3/tests/at-spi2-atk/atk_test_collection.c 
new/at-spi2-core-2.48.4/tests/at-spi2-atk/atk_test_collection.c
--- old/at-spi2-core-2.48.3/tests/at-spi2-atk/atk_test_collection.c     
2023-05-27 17:00:48.000000000 +0200
+++ new/at-spi2-core-2.48.4/tests/at-spi2-atk/atk_test_collection.c     
2023-09-02 15:40:51.000000000 +0200
@@ -117,6 +117,7 @@
 {
   AtspiAccessible *obj = get_root_obj (DATA_FILE);
   AtspiCollection *iface = atspi_accessible_get_collection_iface (obj);
+  GHashTable *attributes;
   g_assert (iface);
 
   AtspiAccessible *child = atspi_accessible_get_child_at_index (obj, 0, NULL);
@@ -150,6 +151,36 @@
   g_assert_cmpstr ("obj3", ==, atspi_accessible_get_name (get, NULL));
   get = g_array_index (ret, AtspiAccessible *, 2);
   g_assert_cmpstr ("obj3", ==, atspi_accessible_get_name (get, NULL));
+  g_array_free (ret, TRUE);
+  g_object_unref (rule);
+
+  attributes = g_hash_table_new (g_str_hash, g_str_equal);
+  g_hash_table_insert (attributes, "layout-guess", "true");
+  rule = atspi_match_rule_new (NULL,
+                               ATSPI_Collection_MATCH_ALL,
+                               attributes,
+                               ATSPI_Collection_MATCH_NONE,
+                               NULL,
+                               ATSPI_Collection_MATCH_ALL,
+                               NULL,
+                               ATSPI_Collection_MATCH_ALL,
+                               FALSE);
+  ret = atspi_collection_get_matches_from (iface,
+                                           child1,
+                                           rule,
+                                           
ATSPI_Collection_SORT_ORDER_CANONICAL,
+                                           ATSPI_Collection_TREE_INORDER,
+                                           0,
+                                           FALSE,
+                                           NULL);
+  g_hash_table_unref (attributes);
+  g_assert_cmpint (6, ==, ret->len);
+  g_array_free (ret, TRUE);
+  g_object_unref (rule);
+
+  g_object_unref (child1);
+  g_object_unref (child);
+  g_object_unref (iface);
 }
 
 void

Reply via email to