www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/10/23/16:48:32

Date: Sun, 23 Oct 94 19:51:00 +0100
From: buers AT dg1 DOT chemie DOT uni-konstanz DOT de (Dieter Buerssner)
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Bug in insline() and patch

insline (source in libsrc/pc/src/gppconoi.c) does not work correctly.
The bug can be seen by writing a screen full (i.e. with cputs), use a goto(1,1)
then insline() and writing again one line. This sequence should scroll
a text one line up (and it does so with Borland C).
The following patch also deletes a not used variable.


Dieter


*** gppconio.oc	Sun May  1 19:55:54 1994
--- gppconio.c	Sun Oct 16 03:14:56 1994
***************
*** 423,427 ****
  {
    int row, col, left, right, nbytes, bot, fill;
-   short line[txinfo.winright - txinfo.winleft + 1];
    ScreenGetCursor(&row, &col);
    left = txinfo.winleft - 1;
--- 423,426 ----
***************
*** 430,434 ****
    bot = txinfo.winbottom-1;
    fill = ' ' | (ScreenAttrib << 8);
!   while(bot > row+1)
      {
        movedata(_go32_conventional_mem_selector(), VIDADDR(bot-1, left),
--- 429,433 ----
    bot = txinfo.winbottom-1;
    fill = ' ' | (ScreenAttrib << 8);
!   while(bot > row)
      {
        movedata(_go32_conventional_mem_selector(), VIDADDR(bot-1, left),
***************
*** 437,443 ****
        bot--;
      }
!   if (row < txinfo.winbottom -1)
      {
!       fillrow(row+1,left,right,fill);
      }
  }
--- 436,442 ----
        bot--;
      }
!   if (row < txinfo.winbottom)
      {
!       fillrow(row,left,right,fill);
      }
  }




- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019