GNU bug report logs - #44632
27.1.50; Left-to-right Arabic shaping breaks at property bounds

Previous Next

Package: emacs;

Reported by: Thamer Mahmoud <thamer.mahmoud <at> gmail.com>

Date: Sat, 14 Nov 2020 12:43:02 UTC

Severity: normal

Tags: wontfix

Found in version 27.1.50

Done: Stefan Kangas <stefan <at> marxist.se>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 44632 in the body.
You can then email your comments to 44632 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#44632; Package emacs. (Sat, 14 Nov 2020 12:43:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thamer Mahmoud <thamer.mahmoud <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 14 Nov 2020 12:43:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Thamer Mahmoud <thamer.mahmoud <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.1.50; Left-to-right Arabic shaping breaks at property bounds
Date: Sat, 14 Nov 2020 15:42:35 +0300
This also affects overlays and `transient-mark-mode' region.

1. Eval:

(with-current-buffer-window "*shaping testcase*" nil nil
  (insert "L2R عربي" "\n\n")
  (insert "عربي")
  (put-text-property 5 6 'face 'highlight)
  (put-text-property 11 12 'face 'highlight))

2. Notice the AIN(ع) in the L2R paragraph has the wrong shape.

--
Regards,
Thamer




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44632; Package emacs. (Sat, 14 Nov 2020 14:52:01 GMT) Full text and rfc822 format available.

Message #8 received at 44632 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Thamer Mahmoud <thamer.mahmoud <at> gmail.com>
Cc: 44632 <at> debbugs.gnu.org
Subject: Re: bug#44632: 27.1.50;
 Left-to-right Arabic shaping breaks at property bounds
Date: Sat, 14 Nov 2020 16:51:39 +0200
> From: Thamer Mahmoud <thamer.mahmoud <at> gmail.com>
> Date: Sat, 14 Nov 2020 15:42:35 +0300
> 
> (with-current-buffer-window "*shaping testcase*" nil nil
>   (insert "L2R عربي" "\n\n")
>   (insert "عربي")
>   (put-text-property 5 6 'face 'highlight)
>   (put-text-property 11 12 'face 'highlight))
> 
> 2. Notice the AIN(ع) in the L2R paragraph has the wrong shape.

This is a known limitation of the current Emacs display engine: it
cannot shape text across face changes.  All the text that needs to be
shaped must have the same face.  This problem has existed since Emacs
21.

Fixing this limitation would require a more or less complete redesign
of how the display engine scans the buffer text, or maybe some radical
changes in how character composition is handled.  Until one of these
changes, this problem will remain unsolved, sorry.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44632; Package emacs. (Sun, 22 Nov 2020 16:59:01 GMT) Full text and rfc822 format available.

Message #11 received at 44632 <at> debbugs.gnu.org (full text, mbox):

From: Thamer Mahmoud <thamer.mahmoud <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 44632 <at> debbugs.gnu.org
Subject: Re: bug#44632: 27.1.50; Left-to-right Arabic shaping breaks at
 property bounds
Date: Sun, 22 Nov 2020 19:58:03 +0300
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Thamer Mahmoud <thamer.mahmoud <at> gmail.com>
>> Date: Sat, 14 Nov 2020 15:42:35 +0300
>>
>> (with-current-buffer-window "*shaping testcase*" nil nil
>>   (insert "L2R عربي" "\n\n")
>>   (insert "عربي")
>>   (put-text-property 5 6 'face 'highlight)
>>   (put-text-property 11 12 'face 'highlight))
>>
>> 2. Notice the AIN(ع) in the L2R paragraph has the wrong shape.
>
> This is a known limitation of the current Emacs display engine: it
> cannot shape text across face changes.  All the text that needs to be
> shaped must have the same face.  This problem has existed since Emacs
> 21.
>
> Fixing this limitation would require a more or less complete redesign
> of how the display engine scans the buffer text, or maybe some radical
> changes in how character composition is handled.  Until one of these
> changes, this problem will remain unsolved, sorry.

Shaping across face changes works for me in R2L paragraphs, but not in
L2R. See the attached screenshot.

[shaping.png (image/png, inline)]
[Message part 3 (text/plain, inline)]

Wouldn't it be possible to extend the same behavior that is currently
working fine in R2L paragraphs to also apply to L2R ones?

Thanks.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44632; Package emacs. (Sun, 22 Nov 2020 18:20:02 GMT) Full text and rfc822 format available.

Message #14 received at 44632 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Thamer Mahmoud <thamer.mahmoud <at> gmail.com>
Cc: 44632 <at> debbugs.gnu.org
Subject: Re: bug#44632: 27.1.50; Left-to-right Arabic shaping breaks at
 property bounds
Date: Sun, 22 Nov 2020 20:19:09 +0200
> From: Thamer Mahmoud <thamer.mahmoud <at> gmail.com>
> Cc: 44632 <at> debbugs.gnu.org
> Date: Sun, 22 Nov 2020 19:58:03 +0300
> 
> Wouldn't it be possible to extend the same behavior that is currently
> working fine in R2L paragraphs to also apply to L2R ones?

Sorry, no.  Not without serious changes (basically, a redesign) in the
low-level code that iterates the buffer for rendering characters for
display.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44632; Package emacs. (Mon, 11 Oct 2021 12:37:02 GMT) Full text and rfc822 format available.

Message #17 received at 44632 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 44632 <at> debbugs.gnu.org, Thamer Mahmoud <thamer.mahmoud <at> gmail.com>
Subject: Re: bug#44632: 27.1.50; Left-to-right Arabic shaping breaks at
 property bounds
Date: Mon, 11 Oct 2021 05:36:14 -0700
tags 44632 + wontfix
close 44632
thanks

Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Thamer Mahmoud <thamer.mahmoud <at> gmail.com>
>> Date: Sat, 14 Nov 2020 15:42:35 +0300
>>
>> (with-current-buffer-window "*shaping testcase*" nil nil
>>   (insert "L2R عربي" "\n\n")
>>   (insert "عربي")
>>   (put-text-property 5 6 'face 'highlight)
>>   (put-text-property 11 12 'face 'highlight))
>>
>> 2. Notice the AIN(ع) in the L2R paragraph has the wrong shape.
>
> This is a known limitation of the current Emacs display engine: it
> cannot shape text across face changes.  All the text that needs to be
> shaped must have the same face.  This problem has existed since Emacs
> 21.
>
> Fixing this limitation would require a more or less complete redesign
> of how the display engine scans the buffer text, or maybe some radical
> changes in how character composition is handled.  Until one of these
> changes, this problem will remain unsolved, sorry.

Since this is a known limitation, I think it unfortunately doesn't make
sense to keep this bug open.  If anyone wants to work on a redesign of
the display engine, they will probably not do that due to this bug.

I guess it would be good if we could have a list somewhere of the known
limitations, so if anyone knows about something like that please add it.

But for now, I'm closing this as wontfix.




Added tag(s) wontfix. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Mon, 11 Oct 2021 12:37:03 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 44632 <at> debbugs.gnu.org and Thamer Mahmoud <thamer.mahmoud <at> gmail.com> Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Mon, 11 Oct 2021 12:37:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 09 Nov 2021 12:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 161 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.