Fix compile-time warnings
[platform/core/uifw/at-spi2-atk.git] / atk-adaptor / adaptors / collection-adaptor.c
index 4162acf..5633a5d 100644 (file)
@@ -27,9 +27,9 @@
 #include <atk/atk.h>
 #include <droute/droute.h>
 
-#include "common/bitarray.h"
-#include "common/spi-dbus.h"
-#include "common/spi-stateset.h"
+#include "bitarray.h"
+#include "spi-dbus.h"
+#include "accessible-stateset.h"
 
 #include "accessible-register.h"
 #include "object.h"
@@ -39,13 +39,13 @@ typedef struct _MatchRulePrivate MatchRulePrivate;
 struct _MatchRulePrivate
 {
   gint *states;
-  Accessibility_Collection_MatchType statematchtype;
+  AtspiCollectionMatchType statematchtype;
   AtkAttributeSet *attributes;
-  Accessibility_Collection_MatchType attributematchtype;
+  AtspiCollectionMatchType attributematchtype;
   gint *roles;
-  Accessibility_Collection_MatchType rolematchtype;
+  AtspiCollectionMatchType rolematchtype;
   gchar **ifaces;
-  Accessibility_Collection_MatchType interfacematchtype;
+  AtspiCollectionMatchType interfacematchtype;
   gboolean invert;
 };
 
@@ -86,7 +86,7 @@ match_states_all_p (AtkObject * child, gint * set)
   gint i;
   gboolean ret = TRUE;
 
-  if (set == NULL)
+  if (set == NULL || set[0] == BITARRAY_SEQ_TERM)
     return TRUE;
 
   chs = atk_object_ref_state_set (child);
@@ -112,14 +112,14 @@ match_states_any_p (AtkObject * child, gint * set)
   gint i;
   gboolean ret = FALSE;
 
-  if (set == NULL)
+  if (set == NULL || set[0] == BITARRAY_SEQ_TERM)
     return TRUE;
 
   chs = atk_object_ref_state_set (child);
 
   for (i = 0; set[i] != BITARRAY_SEQ_TERM; i++)
     {
-      if (!atk_state_set_contains_state (chs, set[i]))
+      if (atk_state_set_contains_state (chs, set[i]))
         {
           ret = TRUE;
           break;
@@ -137,7 +137,7 @@ match_states_none_p (AtkObject * child, gint * set)
   gint i;
   gboolean ret = TRUE;
 
-  if (set == NULL)
+  if (set == NULL || set[0] == BITARRAY_SEQ_TERM)
     return TRUE;
 
   chs = atk_object_ref_state_set (child);
@@ -161,17 +161,17 @@ match_states_lookup (AtkObject * child, MatchRulePrivate * mrp)
 {
   switch (mrp->statematchtype)
     {
-    case Accessibility_Collection_MATCH_ALL:
+    case ATSPI_Collection_MATCH_ALL:
       if (match_states_all_p (child, mrp->states))
         return TRUE;
       break;
 
-    case Accessibility_Collection_MATCH_ANY:
+    case ATSPI_Collection_MATCH_ANY:
       if (match_states_any_p (child, mrp->states))
         return TRUE;
       break;
 
-    case Accessibility_Collection_MATCH_NONE:
+    case ATSPI_Collection_MATCH_NONE:
       if (match_states_none_p (child, mrp->states))
         return TRUE;
       break;
@@ -202,7 +202,7 @@ match_roles_all_p (AtkObject * child, gint * roles)
 static gboolean
 match_roles_any_p (AtkObject * child, gint * roles)
 {
-  Accessibility_Role role;
+  AtspiRole role;
   int i;
 
   if (roles == NULL || roles[0] == BITARRAY_SEQ_TERM)
@@ -240,17 +240,17 @@ match_roles_lookup (AtkObject * child, MatchRulePrivate * mrp)
 {
   switch (mrp->rolematchtype)
     {
-    case Accessibility_Collection_MATCH_ALL:
+    case ATSPI_Collection_MATCH_ALL:
       if (match_roles_all_p (child, mrp->roles))
         return TRUE;
       break;
 
-    case Accessibility_Collection_MATCH_ANY:
+    case ATSPI_Collection_MATCH_ANY:
       if (match_roles_any_p (child, mrp->roles))
         return TRUE;
       break;
 
-    case Accessibility_Collection_MATCH_NONE:
+    case ATSPI_Collection_MATCH_NONE:
       if (match_roles_none_p (child, mrp->roles))
         return TRUE;
       break;
@@ -313,17 +313,17 @@ match_interfaces_lookup (AtkObject * child, MatchRulePrivate * mrp)
   switch (mrp->interfacematchtype)
     {
 
-    case Accessibility_Collection_MATCH_ALL:
+    case ATSPI_Collection_MATCH_ALL:
       if (match_interfaces_all_p (child, mrp->ifaces))
         return TRUE;
       break;
 
-    case Accessibility_Collection_MATCH_ANY:
+    case ATSPI_Collection_MATCH_ANY:
       if (match_interfaces_any_p (child, mrp->ifaces))
         return TRUE;
       break;
 
-    case Accessibility_Collection_MATCH_NONE:
+    case ATSPI_Collection_MATCH_NONE:
       if (match_interfaces_none_p (child, mrp->ifaces))
         return TRUE;
       break;
@@ -397,7 +397,7 @@ match_attributes_any_p (AtkObject * child, AtkAttributeSet * attributes)
       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))
             {
@@ -449,17 +449,17 @@ match_attributes_lookup (AtkObject * child, MatchRulePrivate * mrp)
   switch (mrp->attributematchtype)
     {
 
-    case Accessibility_Collection_MATCH_ALL:
+    case ATSPI_Collection_MATCH_ALL:
       if (match_attributes_all_p (child, mrp->attributes))
         return TRUE;
       break;
 
-    case Accessibility_Collection_MATCH_ANY:
+    case ATSPI_Collection_MATCH_ANY:
       if (match_attributes_any_p (child, mrp->attributes))
         return TRUE;
       break;
 
-    case Accessibility_Collection_MATCH_NONE:
+    case ATSPI_Collection_MATCH_NONE:
       if (match_attributes_none_p (child, mrp->attributes))
         return TRUE;
       break;
@@ -583,7 +583,7 @@ sort_order_rev_canonical (MatchRulePrivate * mrp, GList * ls,
 }
 
 static int
-query_exec (MatchRulePrivate * mrp, Accessibility_Collection_SortOrder sortby,
+query_exec (MatchRulePrivate * mrp, AtspiCollectionSortOrder sortby,
             GList * ls, gint kount, gint max,
             AtkObject * obj, glong index,
             gboolean flag,
@@ -591,11 +591,11 @@ query_exec (MatchRulePrivate * mrp, Accessibility_Collection_SortOrder sortby,
 {
   switch (sortby)
     {
-    case Accessibility_Collection_SORT_ORDER_CANONICAL:
+    case ATSPI_Collection_SORT_ORDER_CANONICAL:
       kount = sort_order_canonical (mrp, ls, 0, max, obj, index, flag,
                                     pobj, recurse, traverse);
       break;
-    case Accessibility_Collection_SORT_ORDER_REVERSE_CANONICAL:
+    case ATSPI_Collection_SORT_ORDER_REVERSE_CANONICAL:
       kount = sort_order_canonical (mrp, ls, 0, max, obj, index, flag,
                                     pobj, recurse, traverse);
       break;
@@ -644,106 +644,76 @@ bitarray_to_seq (int *array, int array_count, int **ret)
 static dbus_bool_t
 read_mr (DBusMessageIter * iter, MatchRulePrivate * mrp)
 {
-  DBusMessageIter mrc, arrayc;
+  DBusMessageIter iter_struct, iter_array, iter_dict, iter_dict_entry;
   dbus_uint32_t *array;
   dbus_int32_t matchType;
   int array_count;
   AtkAttribute *attr;
   int i;
-  const char *str;
-  char *interfaces = NULL;
 
-  dbus_message_iter_recurse (iter, &mrc);
-  dbus_message_iter_recurse (&mrc, &arrayc);
-  dbus_message_iter_get_fixed_array (&arrayc, &array, &array_count);
+  dbus_message_iter_recurse (iter, &iter_struct);
+
+  /* states */
+  dbus_message_iter_recurse (&iter_struct, &iter_array);
+  dbus_message_iter_get_fixed_array (&iter_array, &array, &array_count);
   bitarray_to_seq (array, array_count, &mrp->states);
   for (i = 0; mrp->states[i] != BITARRAY_SEQ_TERM; i++)
     {
       mrp->states[i] = spi_atk_state_from_spi_state (mrp->states[i]);
     }
-  dbus_message_iter_next (&mrc);
-  dbus_message_iter_get_basic (&mrc, &matchType);
-  dbus_message_iter_next (&mrc);
+  dbus_message_iter_next (&iter_struct);
+  dbus_message_iter_get_basic (&iter_struct, &matchType);
+  dbus_message_iter_next (&iter_struct);
   mrp->statematchtype = matchType;;
+
   /* attributes */
   mrp->attributes = NULL;
-  if (dbus_message_iter_get_arg_type (&mrc) == DBUS_TYPE_STRING)
-    {
-      char *str;
-      gchar **attributes;
-      gchar **pp;
-      dbus_message_iter_get_basic (&mrc, &str);
-      attributes = g_strsplit (str, "\n", -1);
-      for (pp = attributes; *pp; pp++)
-        {
-          str = *pp;
-          attr = g_new (AtkAttribute, 1);
-          if (attr)
-            {
-              int len = strcspn (str, ":");
-              attr->name = g_strndup (str, len);
-              if (str[len] == ':')
-                {
-                  len++;
-                  if (str[len] == ' ')
-                    len++;
-                  attr->value = g_strdup (str + len);
-                }
-              else
-                attr->value = NULL;
-              mrp->attributes = g_slist_prepend (mrp->attributes, attr);
-            }
-        }
-      g_strfreev (attributes);
-    }
-  else
+  dbus_message_iter_recurse (&iter_struct, &iter_dict);
+  while (dbus_message_iter_get_arg_type (&iter_dict) != DBUS_TYPE_INVALID)
     {
-      dbus_message_iter_recurse (&mrc, &arrayc);
-      while (dbus_message_iter_get_arg_type (&arrayc) != DBUS_TYPE_INVALID)
-        {
-          dbus_message_iter_get_basic (&arrayc, &str);
-          // TODO: remove this print
-          g_print ("Got attribute: %s\n", str);
-          attr = g_new (AtkAttribute, 1);
-          if (attr)
-            {
-              int len = strcspn (str, ":");
-              attr->name = g_strndup (str, len);
-              if (str[len] == ':')
-                {
-                  len++;
-                  if (str[len] == ' ')
-                    len++;
-                  attr->value = g_strdup (str + len);
-                }
-              else
-                attr->value = NULL;
-              mrp->attributes = g_slist_prepend (mrp->attributes, attr);
-            }
-          dbus_message_iter_next (&arrayc);
-        }
+      const char *key, *val;
+      dbus_message_iter_recurse (&iter_dict, &iter_dict_entry);
+      dbus_message_iter_get_basic (&iter_dict_entry, &key);
+      dbus_message_iter_next (&iter_dict_entry);
+      dbus_message_iter_get_basic (&iter_dict_entry, &val);
+      attr = g_new (AtkAttribute, 1);
+      attr->name = g_strdup (key);
+      attr->value = g_strdup (val);
+      mrp->attributes = g_slist_prepend (mrp->attributes, attr);
+      dbus_message_iter_next (&iter_dict);
     }
-  dbus_message_iter_next (&mrc);
-  dbus_message_iter_get_basic (&mrc, &matchType);
+  dbus_message_iter_next (&iter_struct);
+  dbus_message_iter_get_basic (&iter_struct, &matchType);
   mrp->attributematchtype = matchType;;
-  dbus_message_iter_next (&mrc);
+  dbus_message_iter_next (&iter_struct);
+
   /* Get roles and role match */
-  dbus_message_iter_recurse (&mrc, &arrayc);
-  dbus_message_iter_get_fixed_array (&arrayc, &array, &array_count);
+  dbus_message_iter_recurse (&iter_struct, &iter_array);
+  dbus_message_iter_get_fixed_array (&iter_array, &array, &array_count);
   bitarray_to_seq (array, array_count, &mrp->roles);
-  dbus_message_iter_next (&mrc);
-  dbus_message_iter_get_basic (&mrc, &matchType);
+  dbus_message_iter_next (&iter_struct);
+  dbus_message_iter_get_basic (&iter_struct, &matchType);
   mrp->rolematchtype = matchType;;
-  dbus_message_iter_next (&mrc);
+  dbus_message_iter_next (&iter_struct);
+
   /* Get interfaces and interface match */
-  dbus_message_iter_get_basic (&mrc, &interfaces);
-  dbus_message_iter_next (&mrc);
-  mrp->ifaces = g_strsplit (interfaces, ";", 0);
-  dbus_message_iter_get_basic (&mrc, &matchType);
+  dbus_message_iter_recurse (&iter_struct, &iter_array);
+  mrp->ifaces = g_new0 (gchar *, 16);
+  i = 0;
+  while (i < 15 && dbus_message_iter_get_arg_type (&iter_array) != DBUS_TYPE_INVALID)
+  {
+    char *iface;
+    dbus_message_iter_get_basic (&iter_array, &iface);
+    mrp->ifaces [i] = g_strdup (iface);
+    i++;
+    dbus_message_iter_next (&iter_array);
+  }
+  dbus_message_iter_next (&iter_struct);
+  dbus_message_iter_get_basic (&iter_struct, &matchType);
   mrp->interfacematchtype = matchType;;
-  dbus_message_iter_next (&mrc);
+  dbus_message_iter_next (&iter_struct);
   /* get invert */
-  dbus_message_iter_get_basic (&mrc, &mrp->invert);
+  dbus_message_iter_get_basic (&iter_struct, &mrp->invert);
   dbus_message_iter_next (iter);
   return TRUE;
 }
@@ -789,30 +759,29 @@ static DBusMessage *
 GetMatchesFrom (DBusMessage * message,
                 AtkObject * current_object,
                 MatchRulePrivate * mrp,
-                const Accessibility_Collection_SortOrder sortby,
+                const AtspiCollectionSortOrder sortby,
                 const dbus_bool_t isrestrict,
                 dbus_int32_t count, const dbus_bool_t traverse)
 {
   GList *ls = NULL;
   AtkObject *parent;
   glong index = atk_object_get_index_in_parent (current_object);
-  gint kount = 0;
 
   ls = g_list_append (ls, current_object);
 
   if (!isrestrict)
     {
       parent = atk_object_get_parent (current_object);
-      kount = query_exec (mrp, sortby, ls, 0, count, parent, index,
-                          FALSE, NULL, TRUE, traverse);
+      query_exec (mrp, sortby, ls, 0, count, parent, index,
+                  FALSE, NULL, TRUE, traverse);
     }
   else
-    kount = query_exec (mrp, sortby, ls, 0, count,
-                        current_object, 0, FALSE, NULL, TRUE, traverse);
+    query_exec (mrp, sortby, ls, 0, count,
+                current_object, 0, FALSE, NULL, TRUE, traverse);
 
   ls = g_list_remove (ls, ls->data);
 
-  if (sortby == Accessibility_Collection_SORT_ORDER_REVERSE_CANONICAL)
+  if (sortby == ATSPI_Collection_SORT_ORDER_REVERSE_CANONICAL)
     ls = g_list_reverse (ls);
 
   free_mrp_data (mrp);
@@ -862,24 +831,23 @@ static DBusMessage *
 GetMatchesInOrder (DBusMessage * message,
                    AtkObject * current_object,
                    MatchRulePrivate * mrp,
-                   const Accessibility_Collection_SortOrder sortby,
+                   const AtspiCollectionSortOrder sortby,
                    const dbus_bool_t recurse,
                    dbus_int32_t count, const dbus_bool_t traverse)
 {
   GList *ls = NULL;
   AtkObject *obj;
-  gint kount = 0;
 
   ls = g_list_append (ls, current_object);
 
   obj = ATK_OBJECT(spi_register_path_to_object (spi_global_register, dbus_message_get_path (message)));
 
-  kount = inorder (obj, mrp, ls, 0, count,
-                   current_object, TRUE, NULL, traverse);
+  inorder (obj, mrp, ls, 0, count,
+           current_object, TRUE, NULL, traverse);
 
   ls = g_list_remove (ls, ls->data);
 
-  if (sortby == Accessibility_Collection_SORT_ORDER_REVERSE_CANONICAL)
+  if (sortby == ATSPI_Collection_SORT_ORDER_REVERSE_CANONICAL)
     ls = g_list_reverse (ls);
 
   free_mrp_data (mrp);
@@ -895,23 +863,22 @@ static DBusMessage *
 GetMatchesInBackOrder (DBusMessage * message,
                        AtkObject * current_object,
                        MatchRulePrivate * mrp,
-                       const Accessibility_Collection_SortOrder sortby,
+                       const AtspiCollectionSortOrder sortby,
                        dbus_int32_t count)
 {
   GList *ls = NULL;
   AtkObject *collection;
-  gint kount = 0;
 
   ls = g_list_append (ls, current_object);
 
   collection = ATK_OBJECT(spi_register_path_to_object (spi_global_register, dbus_message_get_path (message)));
 
-  kount = sort_order_rev_canonical (mrp, ls, 0, count, current_object,
-                                    FALSE, collection);
+  sort_order_rev_canonical (mrp, ls, 0, count, current_object,
+                            FALSE, collection);
 
   ls = g_list_remove (ls, ls->data);
 
-  if (sortby == Accessibility_Collection_SORT_ORDER_REVERSE_CANONICAL)
+  if (sortby == ATSPI_Collection_SORT_ORDER_REVERSE_CANONICAL)
     ls = g_list_reverse (ls);
 
   free_mrp_data (mrp);
@@ -922,33 +889,32 @@ static DBusMessage *
 GetMatchesTo (DBusMessage * message,
               AtkObject * current_object,
               MatchRulePrivate * mrp,
-              const Accessibility_Collection_SortOrder sortby,
+              const AtspiCollectionSortOrder sortby,
               const dbus_bool_t recurse,
               const dbus_bool_t isrestrict,
               dbus_int32_t count, const dbus_bool_t traverse)
 {
   GList *ls = NULL;
   AtkObject *obj;
-  gint kount = 0;
   ls = g_list_append (ls, current_object);
 
   if (recurse)
     {
       obj = ATK_OBJECT (atk_object_get_parent (current_object));
-      kount = query_exec (mrp, sortby, ls, 0, count,
-                          obj, 0, TRUE, current_object, TRUE, traverse);
+      query_exec (mrp, sortby, ls, 0, count,
+                  obj, 0, TRUE, current_object, TRUE, traverse);
     }
   else
     {
       obj = ATK_OBJECT (spi_register_path_to_object (spi_global_register, dbus_message_get_path (message)));
-      kount = query_exec (mrp, sortby, ls, 0, count,
-                          obj, 0, TRUE, current_object, TRUE, traverse);
+      query_exec (mrp, sortby, ls, 0, count,
+                  obj, 0, TRUE, current_object, TRUE, traverse);
 
     }
 
   ls = g_list_remove (ls, ls->data);
 
-  if (sortby != Accessibility_Collection_SORT_ORDER_REVERSE_CANONICAL)
+  if (sortby != ATSPI_Collection_SORT_ORDER_REVERSE_CANONICAL)
     ls = g_list_reverse (ls);
 
   free_mrp_data (mrp);
@@ -967,12 +933,10 @@ impl_GetMatchesFrom (DBusConnection * bus, DBusMessage * message,
   dbus_uint32_t tree;
   dbus_int32_t count;
   dbus_bool_t traverse;
-  GList *ls = NULL;
   const char *signature;
 
   signature = dbus_message_get_signature (message);
-  if (strcmp (signature, "o(aiisiaiisib)uuib") != 0 &&
-      strcmp (signature, "o(aii(as)iaiisib)uuib") != 0)
+  if (strcmp (signature, "o(aiia{ss}iaiiasib)uuib") != 0)
     {
       return droute_invalid_arguments_error (message);
     }
@@ -1001,15 +965,15 @@ impl_GetMatchesFrom (DBusConnection * bus, DBusMessage * message,
 
   switch (tree)
     {
-    case Accessibility_Collection_TREE_RESTRICT_CHILDREN:
+    case ATSPI_Collection_TREE_RESTRICT_CHILDREN:
       return GetMatchesFrom (message, current_object,
                              &rule, sortby, TRUE, count, traverse);
       break;
-    case Accessibility_Collection_TREE_RESTRICT_SIBLING:
+    case ATSPI_Collection_TREE_RESTRICT_SIBLING:
       return GetMatchesFrom (message, current_object,
                              &rule, sortby, FALSE, count, traverse);
       break;
-    case Accessibility_Collection_TREE_INORDER:
+    case ATSPI_Collection_TREE_INORDER:
       return GetMatchesInOrder (message, current_object,
                                 &rule, sortby, TRUE, count, traverse);
       break;
@@ -1031,12 +995,10 @@ impl_GetMatchesTo (DBusConnection * bus, DBusMessage * message,
   dbus_bool_t recurse;
   dbus_int32_t count;
   dbus_bool_t traverse;
-  GList *ls = NULL;
   const char *signature;
 
   signature = dbus_message_get_signature (message);
-  if (strcmp (signature, "o(aiisiaiisib)uubib") != 0 &&
-      strcmp (signature, "o(aii(as)iaiisib)uubib") != 0)
+  if (strcmp (signature, "o(aiia{ss}iaiiasib)uubib") != 0)
     {
       return droute_invalid_arguments_error (message);
     }
@@ -1067,15 +1029,15 @@ impl_GetMatchesTo (DBusConnection * bus, DBusMessage * message,
 
   switch (tree)
     {
-    case Accessibility_Collection_TREE_RESTRICT_CHILDREN:
+    case ATSPI_Collection_TREE_RESTRICT_CHILDREN:
       return GetMatchesTo (message, current_object,
                            &rule, sortby, recurse, TRUE, count, traverse);
       break;
-    case Accessibility_Collection_TREE_RESTRICT_SIBLING:
+    case ATSPI_Collection_TREE_RESTRICT_SIBLING:
       return GetMatchesTo (message, current_object,
                            &rule, sortby, recurse, FALSE, count, traverse);
       break;
-    case Accessibility_Collection_TREE_INORDER:
+    case ATSPI_Collection_TREE_INORDER:
       return GetMatchesInBackOrder (message, current_object,
                                     &rule, sortby, count);
       break;
@@ -1097,8 +1059,7 @@ impl_GetMatches (DBusConnection * bus, DBusMessage * message, void *user_data)
   const char *signature;
 
   signature = dbus_message_get_signature (message);
-  if (strcmp (signature, "(aiisiaiisib)uib") != 0 &&
-      strcmp (signature, "(aii(as)iaiisib)uib") != 0)
+  if (strcmp (signature, "(aiia{ss}iaiiasib)uib") != 0)
     {
       return droute_invalid_arguments_error (message);
     }
@@ -1119,7 +1080,7 @@ impl_GetMatches (DBusConnection * bus, DBusMessage * message, void *user_data)
                       obj, 0, TRUE, NULL, TRUE, traverse);
   ls = g_list_remove (ls, ls->data);
 
-  if (sortby == Accessibility_Collection_SORT_ORDER_REVERSE_CANONICAL)
+  if (sortby == ATSPI_Collection_SORT_ORDER_REVERSE_CANONICAL)
     ls = g_list_reverse (ls);
   free_mrp_data (&rule);
   return return_and_free_list (message, ls);
@@ -1136,5 +1097,5 @@ void
 spi_initialize_collection (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_COLLECTION, spi_org_a11y_atspi_Collection, methods, NULL);
+                             ATSPI_DBUS_INTERFACE_COLLECTION, spi_org_a11y_atspi_Collection, methods, NULL);
 };