-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/20/2017 04:08:40 PM Mon, Peter Bloomfield wrote:
…
With 1.6.1 installed I get what appears to be the same crash. I'm using 
spell-checker=internal, to avoid rebuilding gspell; the issue seems to be that 
enchant lists no available dictionaries, and Balsa is unprepared for handling 
that!

So the immediate fix is to have Balsa gracefully disable spell-checking when no 
dictionaries can be found--that should be a straightforward patch. Longer term, 
we need to find out why 1.6.1 lists no dictionaries when 1.6.0 lists several.

1. Master has been patched to cope with a situation where no spell-checker 
dictionary is found.

2. One reason that Balsa finds no dictionaries when built with enchant-1.6.1 
seems to be that it looks for myspell/*.dic in /usr/share/myspell/dicts, while 
earler versions expected them to be in /usr/share/myspell/ (or at least that's 
where hunspell-en-0.20140811.1-9.fc27.noarch installs them).

3. Even with the patch to master, and with a symlink "sudo ln -s /usr/share/myspell/ 
/usr/share/myspell/dicts" to make the dictionaries visible to enchant-1.61, I 
*still* get a SEGV when opening a compose window. The attached program should reproduce 
the crash, but, when I test it, it does some of the time and not others. So I'm quite 
mystified by the issue :-(

Best,

Peter
-----BEGIN PGP SIGNATURE-----

iF0EARECAB0WIQS030wPRfNNA5alz3MfX9S1uSp09QUCWht1NgAKCRAfX9S1uSp0
9ZK8AKCkvegneQBoyQjQRYHOKyKPGtf2KACfcDt+j1Dectzi0teEGlzEuovBQ8E=
=tnjT
-----END PGP SIGNATURE-----
/*
 * compile with
 * gcc `pkg-config --cflags --libs enchant` -o enchant-test enchant-test.c
 */

#include <stdio.h>
#include <enchant/enchant.h>

static void
broker_cb (const char * lang_tag,
	   const char * provider_name,
	   const char * provider_desc,
	   const char * provider_file, void * data)
{
  printf ("tag \"%s\", provider \"%s\", desc \"%s\", file \"%s\"\n",
	  lang_tag, provider_name, provider_desc, provider_file);
}


int
main (int argc, char **argv)
{
  EnchantBroker *broker;

  broker = enchant_broker_init ();
  enchant_broker_list_dicts (broker, broker_cb, (void *) 0);

  if (argc > 1)
    enchant_broker_free (broker);

  return 0;
}
_______________________________________________
balsa-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/balsa-list

Reply via email to