Subject: bug#22250: 25.0.50; Eww fails to break RTL paragraph

From: Eli Zaretskii <[email-masked]>
Date: Tue, 29 Dec 2015 18:47:43 +0200

> From: Benjamin Riefenstahl <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Mon, 28 Dec 2015 22:23:23 +0100
> 
> I see that you found something with that other file, that's good.  My
> script-based test case contains no diacritics though, so it is still
> another problem.  I have uploaded this now to my private webserver as
> <https://odoacer.turtle-trading.net/abc-abc-abc-abc-abc-abc-abc-abc-abc-abc-abc-abc-abc-abc-test.html>.
> This URL reproduces the problem for me after "G RET".

Not for me, it doesn't.  I tried "G RET" quite a few times, it always
displays correctly.

> In the bad case, for the first line, everything looks the same,
> vertical-motion gets called with the same parameter, but when it returns
> point is at 161.  Which is not good.

What does window-hscroll return in each of these two cases?

> In the good case, it->w->hscroll is 0, in the bad case it->w->hscroll is
> 68.  Experimentation tells me that the interpretation of window-hscroll
> (whether it refers to the left or the right margin) depends on
> bidi-paragraph-direction, is that right?

Yes and no.  It depends on what you mean by "interpretation".

> Note that at the point when vertical-motion is called and gives
> different answers, bidi-paragraph-direction is always right-to-left, so
> it looks like some window parameter that depends on
> bidi-paragraph-direction is cached somewhere?

The value of bidi-paragraph-direction shouldn't matter when
bidi-display-reordering is nil (I've just went through the entire code
and didn't see any place where we use that value when
bidi-display-reordering is nil).  But just in case I missed something,
try bindings bidi-paragraph-direction to nil or left-to-right where I
bind bidi-display-reordering, and see if that helps.

Thanks.

P.S. I'm going to commit my patch, as it definitely improves things
and is clearly TRT to do (and I'm tired of stashing it ;-).