(In reply to Karl Tomlinson (:karlt) from comment #66)
> Comment on attachment 681454
> fix for gconf v2
> 
> >+  /* This check is to avoid bug #541130 when old version of gnomevfs (2.16 
> >tested) 
> >+     is installed then error window pops up if scheme is containing '+' 
> >character. 
> >+     Let's pretend these kind of schemes are not supported by gnomevfs. */
> 
> Are you sure gnomevfs is involved in gconf_client_get_* calls?
> Can you point me at the GConf code that uses GnomeVFS, please?
Sorry, I've got confused with gnomevfs (for some reason I thought gconf was 
part of it). The comment is invalid. This is issue with gconf of course.
> 
> >   GError *err = nullptr;
> >   gchar *command = gconf_client_get_string(mClient, key.get(), &err);
> >   if (!err && command) {
> >     key.Replace(key.Length() - 7, 7, NS_LITERAL_CSTRING("enabled"));
> 
> Can you explain, please, why a dialog would be shown when there is a GError
> parameter passed to the gconf_client_get_* functions?
> 
> (Removing review request for now until we understand what is happening.)

I've looked into it deeper into gconf code and it seems there's a bug with 
forwarding GError value:
gconf_client_get_string(GConfClient* client, const gchar* key,
                        GError** err)
{
  GError* error = NULL;
  GConfValue* val;

  g_return_val_if_fail (err == NULL || *err == NULL, NULL);

  val = gconf_client_get (client, key, error);


gconf_client_get             (GConfClient* client,
                              const gchar* key,
                              GError** err)
{
  g_return_val_if_fail (GCONF_IS_CLIENT (client), NULL);
  g_return_val_if_fail (key != NULL, NULL);
  return gconf_client_get_full (client, key, NULL, TRUE, err);
}        

See passing of error variable, it should most likely be:
  val = gconf_client_get (client, key, &error);

When the error is NULL the handle_error use
gconf_client_unreturned_error to emit unreturned error signal which
subsequently leads into showing the error message.

This is valid for older gconf2 library (in my case GConf2-2.14.0). So
the patch is actually workaround for systems where these old libraries
are. We should probably push on gconf2 package maintainers to fix this
issue in gconf2.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/411358

Title:
  Thunderbird2 gconf gmt problem 'Bad key or directory name' because of
  plus symbol (+)

To manage notifications about this bug go to:
https://bugs.launchpad.net/thunderbird/+bug/411358/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to