GNU bug report logs -
#11464
24.1.50; pos-visible-in-window-p returns a false positive with bidi text
Previous Next
Reported by: Ari Roponen <ari.roponen <at> gmail.com>
Date: Sun, 13 May 2012 15:56:01 UTC
Severity: normal
Found in version 24.1.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> From: Michael Welsh Duggan <mwd <at> cert.org>
> Cc: ari.roponen <at> gmail.com, 11464 <at> debbugs.gnu.org
> Date: Thu, 17 May 2012 17:22:36 -0400
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> >> From: Michael Welsh Duggan <mwd <at> cert.org>
> >> Cc: Ari Roponen <ari.roponen <at> gmail.com>, 11464 <at> debbugs.gnu.org
> >> Date: Thu, 17 May 2012 13:56:45 -0400
> >>
> >> else if (top_y < it.last_visible_y) ==> if (255 < 256) ==> if (TRUE)
> >>
> >> hence, visible_p _would_ be set to 1 by the else if clause.
> >
> > And will never be reset to zero, because 27 <= 256 => FALSE. And yet
> > Ari said that he needed to change the condition to <=.
>
> But where do you get 27? The number was 270, I believe.
It's 270, yes. But the rest is correct: if visible_p is set in this
case, it will never be reset with the current code. My original code
used
if (bottom_y >= it.last_visible_y
which would have caught this case.
Ari, can you please describe again what happens in this particular
case on your machine, step by step, when you step with a debugger
through the relevant fragment?
I'm sorry I keep asking questions, but I must understand what was
incorrect in my original reasoning, to make sure there's no subtle
bugs lurking here.
Also, for this case:
> bottom_y = 300
> it.last_visible_y = 304
can you show the corresponding values of top_y and window_top_y?
Thanks.
This bug report was last modified 13 years and 4 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.