-char buf[16];
-int i;
-if (s.x) return -1;
-if (e.x!=(CRT_COLS-1)) return -1;
-if (s.y) return -1;
-if (s.y>=a->size.y) return -1;
-
-ansi_showhide_cursor (a, 1);
-i=sprintf(buf,"\033[%d;%dr",s.y+1,e.y+1);
-ansi_write(a,buf,i);
-i=sprintf(buf,"\033[%d;%dH",e.y+1,0);
-ansi_write(a,buf,i);
-ansi_write (a, "\033D",2);
-ansi_write(a,"\033[r", 3);
-
-a->pos.x=ANSI_INVAL;
-
-return 0;
+ char buf[16];
+ int i;
+ if (s.x)
+ return -1;
+ if (e.x != (CRT_COLS - 1))
+ return -1;
+ if (s.y)
+ return -1;
+ if (s.y >= a->size.y)
+ return -1;
+
+ ansi_showhide_cursor (a, 1);
+ i = sprintf (buf, "\033[%d;%dr", s.y + 1, e.y + 1);
+ ansi_write (a, buf, i);
+ i = sprintf (buf, "\033[%d;%dH", e.y + 1, 0);
+ ansi_write (a, buf, i);
+ ansi_write (a, "\033D", 2);
+ ansi_write (a, "\033[r", 3);
+
+ s.y = e.y;
+ crt_erase (&a->crt, s, e, 1);
+
+ a->pos.x = ANSI_INVAL;
+
+ return 0;