Subject: Re: bug#44466: 27.1; quail input fails at read-only boundary

From: Evgeny Zajcev <[email-masked]>
Date: Sun, 8 Nov 2020 09:42:23 +0300

> 8 нояб. 2020 г., в 07:29, Eli Zaretskii <[email-masked]> написал(а):
>
> 
>>
>> From: Evgeny Zajcev <[email-masked]>
>> Date: Sun, 8 Nov 2020 01:24:26 +0300
>> Cc: dick <[email-masked]>, [email-masked]
>>
>> What I want with that patch is that if some key is pressed on read-only area in non-read-only buffer, then
>> quail should do what it does as if buffer marked as read only, i.e. no input method translations are done, and
>> all single char bindings continue to work.
>
> When an input method is used in a read-only buffer, Emacs barfs
> because it doesn't allow inserting text into such a buffer.  It
> doesn't insert the untranslated character, as what your patch did.
>
>> Possible we need to check front-stickyness of the char at point along with 'read-only property:
>>
>> ..
>>                   (and (get-char-property (point) 'read-only)
>>                        (get-char-property (point) 'front-sticky)))
>
> Does this solve the problem in this case?

Yes, because this mimics what is done in
verify_interval_modification() function from textprop.c.

Possibly the best solution would be to make
verify_interval_modification() visible from elisp side and use it in
quail-input-method to check for writability at point.

--
lg