Subject: bug#19073: closed (Re: bug#19073: Ispell fails to initialise when hunspell does not report any loaded dictionaries)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 22 Nov 2014 20:21:02 +0000

Your bug report

#19073: Ispell fails to initialise when hunspell does not report any loaded dictionaries

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
19073: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19073
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#19073: Ispell fails to initialise when hunspell does not report any loaded dictionaries
From: Peter Oliver <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Sat, 22 Nov 2014 20:20:10 +0000 (GMT)
List-Id: <debbugs-submit.debbugs.gnu.org>

On Mon, 17 Nov 2014, Eli Zaretskii wrote:

> I'm guessing that you have an old binary of the ported Hunspell.
> Please install the latest one from ezwinports and try again.

You're quite right.  I mistakenly believed that because I had version 1.3.2, and the latest ezwinports version was 1.3.2, that I had the latest release.

Thanks.

-- 
Peter Oliver

Subject: Ispell fails to initialise when hunspell does not report any loaded dictionaries
From: Peter Oliver <[email-masked]>
To: [email-masked]
Date: Sun, 16 Nov 2014 13:34:57 +0000 (GMT)
List-Id: <debbugs-submit.debbugs.gnu.org>

The build of Hunspell 1.3.2 at http://sourceforge.net/projects/ezwinports/files/ from doesn't output the "LOADED DICTIONARY:" section when "hunspell -D" is run.  I don't know if this is a bug in hunspell, or in the build, or if this feature is missing on Windows, or if there is some other reason.

In any case, this missing section confuses function ispell-find-hunspell-dictionaries in Emacs 24.4 (I'm using the build at http://sourceforge.net/projects/emacs-bin/files/releases/emacs-24.4-bin-i686-pc-mingw32.7z/download).  Variable hunspell-default-dict never gets set, meaning function ispell-parse-hunspell-affix-file ends up being called with a nil argument and erroring.

The attached patch gets things working again for me, although I must admit I don't understand the implications of not detecting a default dictionary.

If this patch is used, I believe that I will need to sign legal papers before patches from me can be accepted.  I am happy to do so.

-- 
Peter Oliver

From 6e508b07b01f62511e356b34b9a0fa8454dcedf3 Mon Sep 17 00:00:00 2001
From: Peter Oliver <[email-masked]>
Date: Sun, 16 Nov 2014 13:32:45 +0000
Subject: [PATCH] Don't error when no default Hunspell dictionary is detected.

This happens when "hunspell -D" does not report a "LOADED DICTIONARY".
---
 lisp/textmodes/ispell.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 5cdae22..cd77eda 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1291,10 +1291,12 @@ entries if a specific dict was found."
     ;; Parse and set values for default dictionary.
     (setq hunspell-default-dict (car hunspell-default-dict))
     (setq hunspell-default-dict-entry
-	  (ispell-parse-hunspell-affix-file hunspell-default-dict))
+          (and hunspell-default-dict
+               (ispell-parse-hunspell-affix-file hunspell-default-dict)))
     ;; Create an alist of found dicts with only names, except for default dict.
     (setq ispell-hunspell-dictionary-alist
-	  (list (append (list nil) (cdr hunspell-default-dict-entry))))
+          (and hunspell-default-dict-entry
+               (list (append (list nil) (cdr hunspell-default-dict-entry)))))
     (dolist (dict (mapcar 'car ispell-hunspell-dict-paths-alist))
       (if (string= dict hunspell-default-dict)
 	  (add-to-list 'ispell-hunspell-dictionary-alist
-- 
1.8.3.1