Subject: Windows emacs 23.4.1: scroll-conservatively > 0 results in multiple cursors being displayed after scrolling

From: Bill Meier <[email-masked]>
Date: Mon, 09 Apr 2012 18:38:28 -0400

To reproduce:

1. emacs -Q
2. [customize 'scroll-conservatively' to 4]
3. [visit a file named tshark.c containing all the lines between the
     ====== lines in the following]
=====================================
/* tshark.c
  *
  * Text-mode variant of Wireshark, along the lines of tcpdump and snoop,
  * by Gilbert Ramirez <[email-masked]> and Guy Harris 
<[email-masked]>.
  *
  * $Id: tshark.c 41542 2012-03-14 01:08:09Z morriss $
  *
  * Wireshark - Network traffic analyzer
  * By Gerald Combs <[email-masked]>
  * Copyright 1998 Gerald Combs
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 
02111-1307, USA.
  */

#ifdef HAVE_CONFIG_H
# include "config.h"
#endif

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <locale.h>
#include <limits.h>

#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif

#include <errno.h>
=================================================

4. Do repeated down-arrow (manually; auto-repeat not req'd)
5. The result is that as the screen scrolls up (by 1 line each time)
    that the "cursor" indication sometimes remains displayed on the
    the "last line just scrolled up" even as it is also displayed
    on the new last line of the buffer.

    So: the result might look like the following (except of course, that
    the cursor doesn't actually take up a character position):

...
#include <stdlib.h>
|#include <stdio.h>
#include <string.h>
|#include <ctype.h>
|#include <locale.h>
#include <limits.h>

This effect does not happen on my Emacs 23.3.1:

   GNU Emacs 23.3.1 (i386-mingw-nt6.1.7601)
   of 2011-03-10 on 3249CTO

In GNU Emacs 23.4.1 (i386-mingw-nt6.1.7601)
  of 2012-02-04 on MARVIN
Windowing system distributor `Microsoft Corp.', version 6.1.7601
configured using `configure --with-gcc (4.4) --cflags 
-ID:/devel/emacs/libs/libXpm-3.5.8/include 
-ID:/devel/emacs/libs/libXpm-3.5.8/src 
-ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include 
-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include 
-ID:/devel/emacs/libs/giflib-4.1.4-1/include 
-ID:/devel/emacs/libs/jpeg-6b-4/include 
-ID:/devel/emacs/libs/tiff-3.8.2-1/include'

Important settings:
   value of $LC_ALL: nil
   value of $LC_COLLATE: nil
   value of $LC_CTYPE: nil
   value of $LC_MESSAGES: nil
   value of $LC_MONETARY: nil
   value of $LC_NUMERIC: nil
   value of $LC_TIME: nil
   value of $LANG: en_US.UTF-8
   value of $XMODIFIERS: nil
   locale-coding-system: cp1252
   default enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
   tooltip-mode: t
   mouse-wheel-mode: t
   tool-bar-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   blink-cursor-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   transient-mark-mode: t

Recent input:
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<up> <up> <up> <up> <up> <up> <up> <up> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <C-home> C-s s c
r o l l C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s <C-home> C-s
c o n s e r C-x k <return> M-x r e p o r t - e m a
c s - b u g <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Quit [3 times]
For information about GNU Emacs and the GNU system, type C-h C-a.
Type C-x 1 to delete the help window, C-M-v to scroll help.
View mode: type C-h for help, C-h m for commands, M-x View-quit to quit.
Mark set [2 times]
Mark saved where search started
Mark set
Mark saved where search started

Load-path shadows:
None found.

Features:
(shadow sort mail-extr message ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1
hex-util hashcash mail-utils emacsbug multi-isearch goto-addr thingatpt
noutline outline easy-mmode kmacro two-column iso-transl help-mode
easymenu view apropos tooltip ediff-hook vc-hooks lisp-float-type mwheel
dos-w32 disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image
fringe lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev loaddefs button minibuffer faces cus-face files
text-properties overlay md5 base64 format env code-pages mule custom
widget hashtable-print-readable backquote make-network-process multi-tty
emacs)