Subject: Re: bug#22560: forward-word etc should be interactive-only
From: Eli Zaretskii <[email-masked]>
To: Glenn Morris <[email-masked]>
Cc: [email-masked]
Date: Sat, 06 Feb 2016 00:15:15 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Glenn Morris <[email-masked]>
> Date: Thu, 04 Feb 2016 16:02:10 -0500
> 
> The new implementation of subword-mode means that forward-word etc need
> to be marked as interactive-only, all existing uses of such functions
> need to be reviewed, and the issue needs to be mentioned in NEWS.

The documentation is now fixed, including NEWS.  There are 2 new
functions, forward-word-strictly and backward-word-strictly, that move
by words using only the syntax table and disregarding
find-word-boundary-function-table.  I've reviewed all the users of
forward-word and backward-word, and made those of them which IMO
should not heed to the likes of subword-mode (there were quite a few)
use these new functions.

I didn't mark forward-word and backward-word interactive-only, as I
don't think this is needed, or even TRT, since the sub-word feature
explicitly wants to be honored in many word-related commands.

I therefore consider this bug "done".

As an aside, I don't understand how could we admit such pervasive
changes into our codebase without proper documentation and without
carefully considering its non-trivial implications.

I also think that the implementation of sub-word mode, which uses
find-word-boundary-function-table, is a kludge, and shouldn't have
been accepted in its present form.  find-word-boundary-function-table
is a char-table, which should have made it crystal clear that
(ab)using it to have the same function called for _any_ character is
against the spirit of char-tables.  This char-table was introduced for
script-specific word motion.  Patches to fix this aspect of sub-word
mode will be very welcome (on master).

But all this is a ship that sailed long ago, sadly, so all we can do
is lick our wounds and hope not to make such mistakes in the future.

Thanks.