[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31344: 26.1; ispell enchant support generates invalid regexp for emp
From: |
Daniel Pittman |
Subject: |
bug#31344: 26.1; ispell enchant support generates invalid regexp for empty extra chars |
Date: |
Wed, 02 May 2018 20:05:02 +0000 |
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.
emacs-ispell-enchant.patch
Description: Binary data
- bug#31344: 26.1; ispell enchant support generates invalid regexp for empty extra chars,
Daniel Pittman <=