(_rl_move_vert) [__GO32__]: fflush the stream, to make sure cursor position
authorEli Zaretskii <eliz@gnu.org>
Wed, 15 Mar 2000 11:41:26 +0000 (11:41 +0000)
committerEli Zaretskii <eliz@gnu.org>
Wed, 15 Mar 2000 11:41:26 +0000 (11:41 +0000)
is up-to-date.
(space_to_eol) [__GO32__]: Clear the screen and home the cursor.
(insert_some_chars) [__GO32__]: Don't write directly to the screen in DJGPP
versions 2.x (it doesn't work).
(delete_chars) [__GO32__]: Ditto.

readline/display.c

index 3f6fe71b023403c2498372d8fd68f74d90c37dc9..3215a94cd1bb44a2fda70504071cbec0a63af91e 100644 (file)
@@ -1126,8 +1126,10 @@ _rl_move_vert (to)
   {
     int row, col;
 
+    i = fflush (rl_outstream); /* make sure the cursor pos is current! */
     ScreenGetCursor (&row, &col);
     ScreenSetCursor ((row + to - _rl_last_v_pos), col);
+    delta = i;
   }
 #else /* !__GO32__ */
 
@@ -1377,7 +1379,10 @@ space_to_eol (count)
 void
 _rl_clear_screen ()
 {
-#if !defined (__GO32__)
+#if defined (__GO32__)
+  ScreenClear ();      /* FIXME: only works in text modes */
+  ScreenSetCursor (0, 0);  /* term_clrpag is "cl" which homes the cursor */
+#else
   if (term_clrpag)
     tputs (term_clrpag, 1, _rl_output_character_function);
   else
@@ -1392,6 +1397,7 @@ insert_some_chars (string, count)
      int count;
 {
 #if defined (__GO32__)
+#ifndef __DJGPP__
   int row, col, width;
   char *row_start;
 
@@ -1400,7 +1406,7 @@ insert_some_chars (string, count)
   row_start = ScreenPrimary + (row * width);
 
   memcpy (row_start + col + count, row_start + col, width - col - count);
-
+#endif /* !__DJGPP__ */
   /* Place the text on the screen. */
   _rl_output_some_chars (string, count);
 #else /* !_GO32 */
@@ -1445,6 +1451,7 @@ static void
 delete_chars (count)
      int count;
 {
+#if !defined (__DJGPP__)
 #if defined (__GO32__)
   int row, col, width;
   char *row_start;
@@ -1473,6 +1480,7 @@ delete_chars (count)
          tputs (term_dc, 1, _rl_output_character_function);
     }
 #endif /* !__GO32__ */
+#endif /* !__DJGPP__ */
 }
 
 void