Bug#730799: libglib2.0-bin: "gsettings list-recursively" outputs lots of duplicate key / value pairs

Patrice DUROUX patrice.duroux at igh.cnrs.fr
Sat Nov 30 09:43:58 UTC 2013


Hi,

Sorry I do wrong check but now I suspect that gsettings
list-recursively algorithm is:

for schema in $(gsettings list-schemas)
do
   gsettings list-recursively $schema
done

that will produce redundancy. Having a look to source in
https://git.gnome.org/browse/glib/tree/gio/gsettings-tool.c


static void
gsettings_list_recursively (void)
{
  if (global_settings)
    {
      list_recursively (global_settings);
    }
  else
    {
      gchar **schemas;
      gint i;

      g_settings_schema_source_list_schemas (global_schema_source, TRUE, &schemas, NULL);

      for (i = 0; schemas[i]; i++)
        {
          GSettings *settings;

          settings = g_settings_new (schemas[i]);
          list_recursively (settings);
          g_object_unref (settings);
        }

      g_strfreev (schemas);
    }
}

seems to confirm this but then I don't have enough Glib knowledge to
propose a good solution on this. Check visited nodes? Iterate only
on «leave» schemas?

Sorry again.

Regards,
Patrice

-- 
Patrice DUROUX
CNRS Research Engineer

IMGT®, the international ImMunoGeneTics information system®
http://www.imgt.org

IMGT, LIGM, IGH, UPR CNRS 1142
141, rue de la Cardonille - 34396 Montpellier Cedex 5 - France
room: S01
tel: +33 4 34 35 99 28 (office)
fax: +33 4 34 35 99 01
mailto:patrice.duroux at igh.cnrs.fr



More information about the pkg-gnome-maintainers mailing list