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

From: Visuwesh <[email-masked]>
Date: Tue, 27 Sep 2022 07:59:39 +0530

[செவ்வாய் செப்டம்பர் 27, 2022] Visuwesh wrote:

>> I tried out your implementation, and am having difficulty getting it
>> working correctly. This is likely because I have an Ergodox keyboard
>> with a non-standard keyboard layout. I have told quail about this
>> keyboard layout by setting the quail-keyboard-layout variable. But, your
>> implementation assumes a qwerty layout. It should instead call
>> quail-keyboard-translate or quail-keyseq-translate to translate
>> keystrokes.
>
> Hmm, this is weird.  I thought Quail did the translation job for me
> which is why I boldly assumed the qwerty layout and coded it that way.
> I will try to change Xorg's keyboard layout and test it.  Thanks for
> testing!

[ Looks like Quail does not hold your hand in the
  UPDATE-TRANSLATION-FUNCTION.  Reading `quail-update-translation'
  again, I see the block about keysequence translation now.  ]

>> [...] merely instruct quail to do the necessary translation by
>> passing a non-nil kbd-translate argument to quail-define-package.
>  
> Here, I'm confused.  I pass a non-nil KBD-TRANSLATE argument as well...

Thanks for the hint on quail-keyseq-translate, I fixed it with the
following patch

diff --git a/tamil99.el b/tamil99.el
index 3461ccd..7262d30 100644
--- a/tamil99.el
+++ b/tamil99.el
@@ -105,7 +105,7 @@ consonant pair or hard-soft consonant pair was handled.")
   ;; pulli regardless of the character before point.
   (cond
    ((eq flag t)
-    (let ((key quail-current-key))
+    (let ((key (quail-keyseq-translate quail-current-key)))
       (cond
        ((and (equal key "W")
              (and (eq (char-before (point)) ?்)