Subject: bug#56323: 29.0.50; [v2] Add new customisable phonetic Tamil input method

From: Eli Zaretskii <[email-masked]>
Date: Sat, 02 Jul 2022 11:29:55 +0300

> From: Visuwesh <[email-masked]>
> Cc: [email-masked]
> Date: Sat, 02 Jul 2022 13:41:17 +0530
> 
> >   (defun sort-by-codepoint (c1 c2)
> >     (< (string-to-char c1) (string-to-char c2)))
> >
> >   (let ((core-consonants '("க" "ங" "ச" "ஞ" "ட" "ண" "த"
> > 			   "ந" "ப" "ம" "ய" "ர" "ல"
> > 			   "வ" "ழ" "ள" "ற" "ன")))
> >
> >  (sort core-consonants 'sort-by-codepoint))
> >   => ("க" "ங" "ச" "ஞ" "ட" "ண" "த" "ந" "ன" "ப" "ம" "ய" "ர" "ற" "ல" "ள" "ழ" "வ")
> >
> > (To understand why, read the doc string of 'sort' carefully, where it
> > explains what is expected from PREDICATE.)
> 
> Unfortunately not, since it jumbles up the list.  The desired outcome is
> the same list.

But we already established that you need to break the list in two, and
always sort any member of one of the two sub-lists before any member
of the other sub-list.  I then suggested to use string-lessp _within_
each sub-list, but you said it still yielded a wrong order for some
reason.

So when you now return to the issue of splitting the list in two, and
show how sorting the full list doesn't work, you make a step back: we
already established the list cannot be sorted as a single list.  The
only remaining issue, AFAIU, is why string-lessp is not good enough
for sorting within each sub-list.