Subject: bug#50143: 28.0.50; Various issues with `tamil-itrans' input method

From: Ramesh Nedunchezian <[email-masked]>
Date: Sat, 21 Aug 2021 14:55:23 +0530

I am working on `tamil-phonetic.el`, a "Tamil Phonetic Input for
Emacs".  See https://github.com/rnchzn/tamil-phonetic and
https://raw.githubusercontent.com/rnchzn/tamil-phonetic/main/tamil-phonetic.el.
I will be submitting this library for inclusion in NON GNU ELPA.

In preparation for that step, I desire fixes for three issues listed
below.  Of these first two are bugs, and the last is an API
enhancement request.

1. The `indian-tml-base-table' has no entries for letters ௐ and ஶ.
   The fix for this would be to do this:

        (setcar (nthcdr (seq-position (nth 2 indian-itrans-v5-table-for-tamil) '("AUM" "OM")
                                      (lambda (s1 s2)
                                        (when (and (consp s1) (consp s2))
                                          (string= (car s1) (car s2)))))
                        (nth 2 indian-tml-base-table))
                ?ௐ)

        (setcar (nthcdr (seq-position (nth 1 indian-itrans-v5-table-for-tamil) "sh"
                                      (lambda (s1 s2)
                                        (when (and (stringp s1) (stringp s2))
                                          (string= s1 s2))))
                        (nth 1 indian-tml-base-table))
                ?ஶ)

   I have chosen entry for "sh" above because of the recommendations
   in the following link https://github.com/avinash311/itrans and 
   https://docs.google.com/spreadsheets/d/14wZl8zCa4khZV3El2VGoqurKBLGx21mbS-yORi4w7Qo/edit#gid=0

   See the attached screenshot for relevant portions.

2. M-x describe-input-method RET tamil-itrans RET doesn't show the
   help table. i.e., instead of saying

   > Uses keymap ‘quail-tamil-itrans-syllable-table’, which is not currently defined.

   it should display the value of `quail-tamil-itrans-syllable-table'
   inline.

   The problem is the docstring uses "keymap" syntax, when in actual
   fact, that variable in NOT a keymap but a text with some display
   properties.

   There are two more such variables that have the same issues as
   above variable.
   
   See the attached screenshot.

3. `indian-make-hash` ALWAYS installs translation for decimal digits
   0-9.  Tamil decimal digits are NOT used at all i.e., it is not even
   taught in Schools in the state of TamilNadu, India.  So, I wanted a
   way NOT to insall the translation for digits.  I suggest one of the
   following:

   - Change signature of `(indian-make-hash TABLE TRANS-TABLE)' to
     `(indian-make-hash TABLE TRANS-TABLE &optional
     DONT-INSTALL-NATIVE-DIGITS)' or some such thing.
     
     `indian-make-hash' is used by many indic scripts, so I am not
     sure if other indian language users would have a need for
     inputting native decimal digits.  I--as a representative of Tamil
     speakers--can say that we don't need that ON by default.
    
   - Or provide a new API which honors looks at digits row of
     TRANS-TABLE and honor it.  This way the caller has more
     flexibility in installing mapping of his choice.

In GNU Emacs 28.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0)
 of 2021-07-08 built on debian
Repository revision: 7d6d14023a4ad7907c6e10ebdb49d78f9c6393e4
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Debian GNU/Linux 11 (bullseye)

Configured using:
 'configure -with-imagemagick --with-json --with-xwidgets'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2
M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS
TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM XWIDGETS GTK3 ZLIB

Important settings:
  value of $LANG: en_IN
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: iso-latin-1-unix