emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Two (or much more) cursors bug debugged (simple test case)


From: Francesco Potorti`
Subject: Re: Two (or much more) cursors bug debugged (simple test case)
Date: 29 Nov 2001 12:57:39 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1.50

Gerd, your discussion about cursor position and oversized glyphs may
have anything to do with the bug that I am the only one to observe (only
on Xfree86 version 4), and which I redescribe below?

================================================================
emacs -q
(setq comint-scroll-show-maximum-output t)
(add-hook 'comint-output-filter-functions 'comint-postoutput-scroll-to-bottom)
(set-default-font "-adobe-courier-medium-r-normal-*-*-140-*-*-m-*-iso8859-1")

The bug only happens with that particular font.  I do:

M-x shell
RET RET RET
C-u 200 #
RET ... until the window begins to scroll
then I slowly hit RET until the long line scrolls off the top
  of the window.  As soon as it scrolls, point is put in the middle of
  the window, while the last input line is at the bottom of the window.
================================================================

The bug happens also with the default font.  The problem (but only with
the default font) is corrected by the following patch posted by Miles
Bader <address@hidden>, but not installed:

*** src/xdisp.c.~1.703.~        Tue Nov 13 21:18:27 2001
--- src/xdisp.c Tue Nov 13 23:52:54 2001
***************
*** 5383,5392 ****
          move_it_vertically (it, target_y - it->current_y);
          xassert (IT_CHARPOS (*it) >= BEGV);
        }
!       else if (target_y >= it->current_y + line_height
!              && IT_CHARPOS (*it) < ZV)
        {
!         move_it_vertically (it, target_y - (it->current_y + line_height));
          xassert (IT_CHARPOS (*it) >= BEGV);
        }
      }
--- 5383,5391 ----
          move_it_vertically (it, target_y - it->current_y);
          xassert (IT_CHARPOS (*it) >= BEGV);
        }
!       else if (target_y > it->current_y && IT_CHARPOS (*it) < ZV)
        {
!         move_it_vertically (it, target_y - it->current_y);
          xassert (IT_CHARPOS (*it) >= BEGV);
        }
      }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]