Subject: bug#39763: Incorrect behaviour of Farsi (farsi-isiri-9147) input method

From: Ali AlipourR <[email-masked]>
Date: Mon, 24 Feb 2020 12:35:04 +0330

Hi,

Farsi keyboard (isiri 9147) has a second "shift" level, which is usually
implemented to be accessible when holding Alt key.
for example when in farsi input method, pressing the "d" key should insert:
U+06CC = ی
but pressing "Shift + d" should insert:
U+064A = ي
and pressing "Alt + d" should insert:
U+0649 = ى
(trust me it's different from the first one! even though they look similar,
it makes a difference when searching for text etc since the unicode code
points are different (and they are also read differently ... one is
pronounced like i the other one like a, though this is not related to the
discussion))

The problem is, in Emacs, when you set the input method to
farsi-isiri-9147, when you press M-d, it deletes a word, which is expected,
but even when you press C-q M-d, instead of inserting U+0649 = ى, it
inserts Latin character U+00E4 = ä)

and I used the d key and letter U+0649 as an example here, there are more
keys and letters like this. in general, when in farsi-isiri-9147, when you
press C-q M-letter instead of inserting appropriate "second shift level"
Farsi letters according to isiri-9147 layout, Emacs inserts Latin
characters with diacritics according to English keyboard layout.

this was tested under GNOME Shell 3.34.3 (with gnome/X input method set to
EN; since setting it to Farsi, means gnome/X will send Farsi chars to Emacs
and thus no Emacs keybinding (e.g. C-f or C-n or C-d or C-x C-s or ...)
will work at all)
(other programs including gedit, firefox and bash in gnome-terminal, behave
correctly, when gnome input method is set to Farsi; even in Emacs Alt + d
works correctly and inserts U+0649 = ى, regardless of what input method is
selected in Emacs itself, if gnome input method is set to Farsi, but again,
as mentioned, this way no Emacs keybinding will work ... since this way,
gnome is directly sending farsi chars to Emacs)

I will attach isiri-9147 keyboard layout standard and some of its tables
(the column marked in red, are the unicode characters that should be
inserted, when pressing the letters on the rightmost column while holding
Alt key.

Thanks