Subject: bug#67857: 30.0.50; ispell fails on apostrophes when the dictionary includes contractions

From: Bob Rogers <[email-masked]>
Date: Sat, 16 Dec 2023 13:03:46 -0800

1.  "emacs -Q" (in an environment that uses hunspell by default).

   2.  In the *scratch* buffer, type "this wiouldn't work".

   3.  Type M-b three times to move point before the "w" in the second
word.

   4.  Type M-$.  The sole offered replacement is "wouldn't" but the
text it offers to replace is "wiouldn"; typing "0" to take the
replacement results in "this wouldn't't work" in the buffer.

   On my system, the value of ispell-really-hunspell is "1.6.2"; further
configuration data appear below.  The problem seems to be that the
dictionary hunspell is using contains contractions, but ispell is
expecting just [:alpha:] words.  I tried tweaking the regexps in
ispell-dictionary-alist to accept apostrophes, but got the error:

	ispell--run-on-word: Ispell and its process have different
	character maps: (* & wiouldn 1 1: wouldn't)

It seems like a job tailor-made for OTHERCHARS, but I get the same error
whether I add the apostrophe to OTHERCHARS via

	(setf (nth 3 (assoc nil ispell-dictionary-alist)) "['0-9]")

or to CASECHARS and NOT-CASECHARS in tandem, via (e.g.):

	(setf (nth 1 (assoc nil ispell-dictionary-alist)) "['[:alpha:]]")

   I do not understand how to get past this point, so either the code is
failing somehow (and I appreciate that it might be hard to glean the
right config bits for the dictionar(y|ies) in use), I am missing or
misunderstanding some part of the documentation, or the documentation is
lacking.  TIA,

					-- Bob Rogers
					   http://www.rgrjr.com/

------------------------------------------------------------------------
In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.34, cairo version 1.16.0) of 2023-12-16 built on orion
Repository revision: 059ae68087bf4498a0529d07319f5c5c2671cad7
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: openSUSE Leap 15.5

Configured using:
 'configure --with-dbus=no --with-gsettings=no --with-gif=ifavailable
 --with-tiff=no --with-gnutls=yes --with-gconf=no'

Configured features:
ACL CAIRO FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LIBSELINUX LIBXML2
MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS
TOOLKIT_SCROLL_BARS X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix