unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Pip Cet <pipcet@gmail.com>
Cc: valizadeh.ho@gmail.com, 41005@debbugs.gnu.org, nicholasdrozd@gmail.com
Subject: bug#41005: problem with rendering Persian text in Emacs 27
Date: Fri, 05 Jun 2020 17:13:27 +0300	[thread overview]
Message-ID: <831rmtbny0.fsf@gnu.org> (raw)
In-Reply-To: <87a71h1x3s.fsf@gmail.com> (message from Pip Cet on Fri, 05 Jun 2020 13:05:43 +0000)

> From: Pip Cet <pipcet@gmail.com>
> Cc: hossein valizadeh <valizadeh.ho@gmail.com>,  41005@debbugs.gnu.org,
>   nicholasdrozd@gmail.com
> Date: Fri, 05 Jun 2020 13:05:43 +0000
> 
> I think the attached patch is a fairly minimal fix; it's against master,
> applies to emacs-27 but I haven't tested it there.

Thanks, it LGTM.

I think we should put this on emacs-27, because this is a regression
caused by Emacs 27's support for HarfBuzz as the default shaping
engine.  The other shapers didn't want us to provide the direction,
they determined it internally.  We added the DIRECTION argument as
part of integrating HarfBuzz.

We could do better than your patch by actually computing the resolved
bidi level there, which would require start_display followed by
move_it_to, in which case we probably won't need to call
composition_reseat_it by hand at all, and could just pick up the
result produced by move_it_to.  Or maybe we should just use
Fvertical_motion instead (which does all that internally).  But these
ideas are for the master branch, not for emacs-27.

> Given these two bugs, I wonder whether it wouldn't be more reasonable
> always to let HarfBuzz guess the direction, at least for Emacs-27:
> scripts which change direction, if they are supported by HarfBuzz, won't
> work anyway.

Please explain "scripts that change direction" and "won't work
anyway", I don't think I understand that part.

The reason we don't let HarfBuzz guess in all cases is because the
resolved bidi level, when we have it, is a more accurate indication of
the required direction.  For example, if you have RTL characters
inside the LRO..PDF embedding, it would be wrong to let the shaper
guess, because it could (and usually will) guess wrongly that the
direction is R2L.  It is true that these are rare and unusual use
cases, but they do exist, and Emacs does want to support them,
including with scripts that must use the shaping engine.





  reply	other threads:[~2020-06-05 14:13 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-01 18:02 bug#41005: problem with rendering Persian text in Emacs 27 hossein valizadeh
2020-05-01 18:51 ` Eli Zaretskii
     [not found]   ` <CAMyfNNp7FiFgAN5EVcVauawiy8ZB7U+eKY7qOeqZOnbMQfs5iQ@mail.gmail.com>
2020-06-03 14:34     ` Eli Zaretskii
2020-06-03 17:24 ` Nicholas Drozd
2020-06-03 18:01   ` Eli Zaretskii
2020-06-04  2:39     ` hossein valizadeh
2020-06-04  3:01       ` hossein valizadeh
2020-06-04  4:01         ` Eli Zaretskii
2020-06-04  4:10           ` Eli Zaretskii
2020-06-04  6:27             ` hossein valizadeh
2020-06-04  8:28               ` Pip Cet
2020-06-04 13:15                 ` Eli Zaretskii
2020-06-04 19:52                   ` Pip Cet
2020-06-05  4:46                     ` hossein valizadeh
2020-06-05  6:21                       ` Eli Zaretskii
2020-06-05 11:07                         ` Basil L. Contovounesios
2020-06-05 12:32                         ` hossein valizadeh
2020-06-05 12:53                           ` Eli Zaretskii
2020-06-05 13:05                             ` Pip Cet
2020-06-05 14:13                               ` Eli Zaretskii [this message]
2020-06-06  8:38                                 ` Pip Cet
2020-06-06  9:04                                   ` Eli Zaretskii
2020-06-06  9:11                                     ` Pip Cet
2020-06-06  9:24                                       ` Eli Zaretskii
2020-06-06 13:09                                         ` Pip Cet
2020-06-05 14:23                               ` hossein valizadeh
2020-06-05 14:25                                 ` Eli Zaretskii
2020-06-05  6:39                       ` Pip Cet
2020-06-05  8:01                     ` Eli Zaretskii
2020-06-05  8:41                       ` Pip Cet
2020-06-05 11:42                         ` Eli Zaretskii
2020-07-21 12:40                           ` Amin Bandali
2020-07-21 13:34                             ` Robert Pluim
2020-07-21 17:53                               ` Amin Bandali
2020-07-21 18:27                                 ` Eli Zaretskii
2020-07-22  2:12                                   ` Amin Bandali
2020-07-22 14:20                                     ` Eli Zaretskii
2020-07-24  4:11                                       ` Amin Bandali
2020-07-24  6:09                                         ` Eli Zaretskii
2020-07-25  4:19                                           ` Amin Bandali
2020-07-25  6:48                                             ` Eli Zaretskii
2020-07-25 15:53                                               ` Amin Bandali
2020-07-25 16:28                                                 ` Eli Zaretskii
2020-07-25 16:44                                                   ` Amin Bandali
2020-07-25 16:56                                                     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=831rmtbny0.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=41005@debbugs.gnu.org \
    --cc=nicholasdrozd@gmail.com \
    --cc=pipcet@gmail.com \
    --cc=valizadeh.ho@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).