GNU bug report logs - #11464
24.1.50; pos-visible-in-window-p returns a false positive with bidi text

Previous Next

Package: emacs;

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


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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Michael Welsh Duggan <mwd <at> cert.org>
Cc: ari.roponen <at> gmail.com, 11464 <at> debbugs.gnu.org
Subject: Re: bug#11464: 24.1.50;
	pos-visible-in-window-p returns a false positive with bidi text
Date: Fri, 18 May 2012 10:42:35 +0300
> 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 3 days ago.

Previous Next


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