Subject: Re: bug#13109: 24.1; flyspell highlights words containing curly quotes which ispell-buffer accepts

From: Juri Linkov <[email-masked]>
Date: Wed, 12 Dec 2012 01:07:22 +0200

>> `ispell-aspell-find-dictionary' reads the ispell data from
>> /usr/lib/aspell/en.dat that contains
>>
>>   name en
>>   charset iso8859-1
>>   special ' -*-
>>   soundslike en
>>   affix en
>>   #repl-table en_affix.dat
>
> Support for curly quotes in aspell appears to be partial and unreleased,
> but Debian currently packages an unreleased version with this support; see:
>
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=533378

Thanks for the link.  It refers to the diff at
http://launchpadlibrarian.net/82990151/aspell_0.60.6-6_0.60.7~20110707-1.diff.gz
that includes the following fix that implements the
support for curly quotes in aspell:

diff -Nru aspell-0.60.6/data/iso-8859-1.cmap aspell-0.60.7~20110707/data/iso-8859-1.cmap
@@ -892,6 +892,7 @@
 2009 > 20 # compat
 200A > 20 # compat
+2019 > 27 # compat
 2024 > 2E # compat
 2025 > 2E 2E # compat

This fix means that aspell developers added a mapping from
2019 (RIGHT SINGLE QUOTATION MARK) to 27 (APOSTROPHE)
in their character `compat' table.  This explains why
`ispell-buffer' does work while `ispell-word' and `flyspell' don't.

`ispell-word' and `flyspell' still use the information from
/usr/lib/aspell/en.dat to parse the buffer to find the next word to check,
and fail because they don't use the `compat' mappings from iso-8859-1.cmap.

Applying a solution similar to the aspell fix above means that
`ispell-get-word' should consult a character equivalence table
(to be added in bug#13041 and bug#13131) and match curly quotes
as straight quotes while searching the next word to check.