diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c index 064b684f80069c86e0ba1e3d193275d9e3c4c04d..5f14911af62fe9aa2b91467c0405ff018a525584 100644 --- a/src/conio/ciolib.c +++ b/src/conio/ciolib.c @@ -435,7 +435,8 @@ void ciolib_wscroll(void) ciolib_gotoxy(1,ti.winbottom-ti.winleft+1); os=_wscroll; _wscroll=0; - ciolib_cprintf("%*s",ti.winright-ti.winleft+1,""); + /* ciolib_cprintf("%*s",ti.winright-ti.winleft+1,""); */ + ciolib_clreol(); _wscroll=os; ciolib_gotoxy(ti.curx,ti.cury); } @@ -527,17 +528,24 @@ void ciolib_window(int sx, int sy, int ex, int ey) void ciolib_clreol(void) { - int os; - struct text_info ti; + unsigned char *buf; + int i; + int width,height; + struct text_info ti; CIOLIB_INIT(); ciolib_gettextinfo(&ti); - os=_wscroll; - _wscroll=0; - ciolib_cprintf("%*s",ti.winright-ti.curx+1,""); - _wscroll=os; - ciolib_gotoxy(ti.curx,ti.cury); + + width=ti.winright-ti.curx+1; + height=1; + buf=(unsigned char *)malloc(width*height*2); + for(i=0;i<width*height*2;) { + buf[i++]=' '; + buf[i++]=ti.attribute; + } + ciolib_puttext(ti.curx+ti.winleft-1,ti.cury+ti.wintop-1,ti.winright,ti.cury+ti.wintop-1,buf); + free(buf); } void ciolib_clrscr(void)