GNU bug report logs - #21732
25.0.50; intermittent failure using windmove when in doc-view buffer

Previous Next

Package: emacs;

Reported by: Daniel McClanahan <danieldmcclanahan <at> gmail.com>

Date: Thu, 22 Oct 2015 07:13:02 UTC

Severity: normal

Merged with 23809, 24804

Found in versions 24.5, 25.0.50, 25.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


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

From: martin rudalics <rudalics <at> gmx.at>
To: Daniel McClanahan <danieldmcclanahan <at> gmail.com>, 
 21732 <at> debbugs.gnu.org
Subject: Re: bug#21732: 25.0.50; intermittent failure using windmove when
 in doc-view buffer
Date: Thu, 22 Oct 2015 12:05:08 +0200
> I've attached gdb and found that this is because "cursor.y" of the
> window being chosen is negative, which I found after attaching a
> breakpoint to "posn-at-point," which was throwing the error, and
> following it down a few calls to "pos_visible_p", and checking the
> value of "w" in there. I don't know what "w->cursor.y" represents (I
> know it's cursor position, but I don't know how that maps to the
> cursor's lisp representation), and although I've delved into xdisp.c
> to see why that would be negative (but only sometimes)

FWIW w->cursor.y can be negative when the text of w was scrolled
vertically out of view.  We could simply disallow ‘pos_visible_p’ making
a negative y value and have it return false but it might be interesting
to find out what happened.  IIUC there's only one assignment in
‘pos_visible_p’ that could be responsible:

	  *y = it2.current_y + it2.max_ascent - it2.ascent;

You could try checking that.  And surely Eli has a better idea.

martin





This bug report was last modified 8 years and 209 days ago.

Previous Next


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