Subject: bug#31344: closed (resolved in master)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 19 Oct 2018 13:58:02 +0000

Your bug report

#31344: 26.1; ispell enchant support generates invalid regexp for empty extra chars

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].

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

Subject: resolved in master
From: Daniel Pittman <[email-masked]>
To: [email-masked]
Date: Fri, 19 Oct 2018 09:56:58 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

this issue has been resolved in the master branch, but the bug was not
closed.  cleaning up.

Subject: 26.1; ispell enchant support generates invalid regexp for empty extra chars
From: Daniel Pittman <[email-masked]>
To: [email-masked]
Date: Wed, 02 May 2018 20:05:02 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

G'day.  With the new Enchant support in 26 I was motivated to try it out.
Turns out that some languages generate an empty "extra characters" report
for languages I use, which is turned into the (invalid, says `looking-at`)
regular expression "[]".

This triggers in this function in ispell.el:

(defun ispell--get-extra-word-characters (&optional lang)
   "Get the extra word characters for LANG as a character class.
If LANG is omitted, get the extra word characters for the default language."
   (concat "[" (string-trim-right (apply 'ispell--call-enchant-lsmod
                                         (append '("-word-chars") (if lang
`(,lang))))) "]"))

Obviously, when the result of that call is an empty string we get `[]`; in
my case:

] enchant-2-lsmod -word-chars en_US | xxd
00000000: 0a                                       .

...which causes that.  (Error is: `(invalid-regexp "Unmatched [ or [^")`)

I have attached a patch which correctly handles this case, though I feel
there must be a cleaner way to handle this modification of the return.

In any case, Google (and I personally) have papers on file with the FSF
covering this contribution, if it is non-trivial enough for that to matter.