Subject: bug#12768: 24.1; flyspell highlights words which ispell accepts

From: Agustin Martin <[email-masked]>
Date: Fri, 2 Nov 2012 02:19:51 +0100

2012/11/1 Eli Zaretskii <[email-masked]>:
>> From: Agustin Martin <[email-masked]>
>>
>> Really strange. With your steps I can even reproduce the problem with
>> something as simple as
>>
>> dnl -- D
>>
>> If I add something before dnl  I still get the problem.
>>
>> sdfdsfsdnl -- D
>>
>> IIf I either break the double dash (no double dashes at all) or the
>> dnl or remove the "D" after the dashes problem disappear
>>
>> dfnl -- D
>> dnl - - D
>> dnl --
>>
>> autotest-mode.el is a small file, but II  do not see any hint about
>> what is happening here. Seems to do something strange with double
>> dashes associated with dnl, but I am absolutely clueless, help
>> welcome.
>
> If you step through ispell-region, you will see that it goes bananas
> because ispell-skip-region-alist has "--+" as part of it, which
> matches the dashes between "dnl" and the text of the comment.  What
> ispell-region does is remove the dashes, and then _prepend_ "dnl"
> (because it's a comment-start string).  The result is that we send
> something like "^dnl FOO" to the speller, and the character positions
> get screwed up, because the characters between "dnl" and "FOO" were
> removed.

Thanks a lot for debugging. I only had time to note that as you point
put more that one dash is removed causing the misalignment. Was
currently looking at the wrong site (autoconf.el).

> FWIW, I really don't understand why ispell.el removes patterns that
> pertain to email messages from buffers that have nothing to do with
> mail-mode or its derivatives.

No idea. I never looked before into ispell-region and friends for
anything than trying to have a fallback behavior on misalignments, and
that was beyond my skills.

>> Dirty workaround in the meantime, avoid double dashes and try something like
>>
>> dnl - - - - Hi, whatever I want to add here
>>
>> But I really wonder what is happening here.
>
> See above.  A single dash doesn't get removed, so the workaround works
> around.
>
> Btw, WIBNI ispell.el had a debug option, which, if set, would collect
> in a special buffer everything we send to the speller and its
> responses.  I find myself adding '(message "sent %s" strin)'
> etc. every time I need to debug the communications between ispell.el
> and the speller program.  WDYT?

I think you are right. I am also an extensive user of the (message
...) debugger and it is really useful, but needing to re-add things
for every new debug is a pity.

flyspell has some of such debug options sending things to a
flyspell-debug buffer, something in the same line would be useful.

Thanks again for the info. Will try to have a look at ispell-region to
try understanding things better

-- 
Agustin