GNU bug report logs - #28936
move_it_in_display_line_to returns MOVE_POS_MATCH_OR_ZV before ZV

Previous Next

Package: emacs;

Reported by: Keith David Bershatsky <esq <at> lawlist.com>

Date: Sun, 22 Oct 2017 03:04:01 UTC

Severity: normal

Tags: wontfix

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Keith David Bershatsky <esq <at> lawlist.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 28936 <at> debbugs.gnu.org
Subject: bug#28936: move_it_in_display_line_to returns MOVE_POS_MATCH_OR_ZV before ZV
Date: Sun, 22 Oct 2017 22:20:32 -0700
I was able to verify this evening that it.current_x is indeed 0 immediately following a call to `move_it_by_lines (&it, 0)` when the issue is present.

It may be that move_it_in_display_line_to is reaching the correct X, but is merely throwing the wrong label/result in this situation -- i.e., it is not really reaching a POS or ZV.  Since my loop was relying on the label/result, the loop exited too early.  To test the correct X and wrong label/result theory, would take some time for me to work on because I would like to find the precise location inside move_it_in_display_line_to where the label/result is being returned.  I will continue to think about this and tinker ...

Keith

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DATE:  [10-22-2017 12:53:47] <22 Oct 2017 22:53:47 +0300>
FROM:  Eli Zaretskii <eliz <at> gnu.org>
> 
> > Date:  Sun, 22 Oct 2017 11:05:45 -0700
> > From:  Keith David Bershatsky <esq <at> lawlist.com>
> > Cc:  28936 <at> debbugs.gnu.org
> > 
> >   SET_TEXT_POS_FROM_MARKER (start_text_position, w->start);
> >   start_display (&it, w, start_text_position);
> >   move_it_to (&it, PT, it.last_visible_x, it.last_visible_y - 1, -1, MOVE_TO_POS | MOVE_TO_X | MOVE_TO_Y);
> >   target_x = it.current_x;
> >   move_it_by_lines (&it, 0);
> 
> Did you verify that it.current_x is zero after this line?  If not, you
> will not get to the right X coordnate here:
> 
> >   rc = move_it_in_display_line_to_x (w, &it, target_x);




This bug report was last modified 6 years and 137 days ago.

Previous Next


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