Re: Urgent: Balsa crashes on send - one reason found

Peter Bloomfield <[email protected]>
Newsgroups gmane.comp.gnome.apps.balsa
Message-ID <[email protected]>
-----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-----

_______________________________________________
balsa-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/balsa-list
enchant-test.c (text/x-csrc, 660 B)
/*
 * 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;
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.