Subject: Re: bug#22429: Force character to be recognized as LTR inside RTL paragraph

From: Eli Zaretskii <[email-masked]>
Date: Fri, 22 Jan 2016 16:01:07 +0200

> From: Filipe Moreira <[email-masked]>
> Date: Fri, 22 Jan 2016 11:54:45 +0000
> Cc: [email-masked]
> 
>     Emacs being Emacs, you can programmatically change the bidirectional
>     class of every character, but that change has global effect: it will
>     affect the directionality of that character everywhere in the Emacs
>     session. So this is not recommended.
> 
> Also this is not recommended, I would be willing to have the bidi class
> property of some characters set to left-to-right, like the example of the slash
> character.

Can you tell why?  There are ways to produce the display you expect
without changing the character properties; I described 3 such ways.
If you change the properties, the text will only display correctly on
your system, any other user who displays your text, either in Emacs or
in other editor that supports bidirectional display, will see the text
in the same jumbled order you wanted to avoid.  So I see very little
sense in such changes.

> Can you point somewhere regarding this? I saw the
> get-char-code-property function but could not find anyway to
> actually change the setting.

You want put-char-code-property.  Again, I very much recommend not to
do that.

>     \begin{hebrew}
>     \pstart
>     
>     בְּרֵאשִׁ֖ית‪\footnoteA{This is a Hebrew related footnote}‬ בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת
>     הָאָֽרֶץ׃
>     
>     \pend
>     \end{hebrew}
>     
> 
> In this example the direction of the surrounding Hebrew text has been changed.
> The word בְּרֵאשִׁ֖ית should come before (i.e. on the right) of the word בָּרָ֣א. So
> while the footnote command is correctly shown as LTR the Hebrew text has been
> changed. I don't think is is the expected. See the updated image
> (http://emacs.stackexchange.com/questions/19696/handling-left-to-right-inside-right-to-left-paragraphs-using-emacs-and-auctex)
> that shows TextEdit correct handling of this.

What version of Emacs do you have?  The above renders correctly for
me, both in Emacs 24.5 and in the development version.  The word
בְּרֵאשִׁ֖ית is shown to the right of the footnote, and all the rest is
shown to the left of it.  Maybe you have an older Emacs which somehow
has a bug?

> Is there any change of having a way to set the unicode bidirectionally of a
> character within each separate mode? Could this be considered a feature?

I think it would be a misfeature, for the reasons explained above.
It's the same as using a private font to display some character in a
different shape -- you are the only one who will enjoy that shape.

However, nothing prevents a mode from using put-char-code-property in
some ingenious ways to do what you want.