[gnu.emacs.bug] bug in DoDsp

Duchier-Denys@cs.yale.edu (Denys Duchier) (01/25/90)

I don't know if I am dreaming, but here is another piece of code that
seems to be in error.

In function DoDsp (xdisp.c):

  if (pos.vpos < 1)
    {
      cursX = max (XFASTINT (w->left), pos.hpos);
      cursY = this_line_vpos;
      goto update;
    }
  else
    goto cancel;

Shouldn't that be:

  if (pos.vpos < 1)
    {
      cursX = XFASTINT (w->left) + ((pos.hpos < 0) ? 0 : pos.hpos);
      cursY = this_line_vpos;
      goto update;
    }
  else
    goto cancel;

Admittedly the code I found the bug in is slightly different (it's
epoch code), but I think the principle applies here too.

I don't think the problem can be reproduced in standard emacs (perhaps
because of some pessimal redisplay strategy), but in epoch I was
having problems convincing the display code to update the cursor when
I was typing \C-e.

Once again, does anyone know...?

--Denys