Subject: bug#58070: [PATCH] Add tamil99 input method

From: Arun Isaac <[email-masked]>
Date: Wed, 28 Sep 2022 01:56:21 +0530

>> Also, while the out-of-sequence vowel insertion is a very clever
>> feature, it shouldn't be required at all if we handled grapheme cluster
>> boundaries correctly. See
>> https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries
>
> Well, we do, that's why cursor motion moves by grapheme clusters,
> right?

That makes sense and must be right. But backspace should also handle
grapheme clusters.

> There's a problem with the above: in some situations you want deletion
> by codepoints, in others you want deletion by grapheme clusters.  (It
> is possible that with Tamil the former is rarely the case, but it is
> definitely a frequent case with other scripts, in particular with
> those that have diacriticals.)  Emacs 29 solves this by having
> delete-forward-char, which is usually bound to the <Delete> key,
> delete by grapheme clusters, while DEL (which deletes backward) and
> C-d delete individual codepoints.  The primary motivation for DEL to
> delete by codepoints is that it allows you to make sub-grapheme
> corrections to stuff you just typed, for example if you typed an
> incorrect accent.
>
> Emacs 29 also has the composition-break-at-point variable, which you
> could set non-nil, in which case <Delete> will also work by
> codepoints.

I see. You're saying that the deletion by grapheme clusters or by
codepoints may be a matter of preference. In that case, it would be nice
to have a variable similar to composition-break-at-point that would
enable deletion by grapheme clusters.