* readline.c (rl_save_state, rl_restore_state): Support systems
authorEli Zaretskii <eliz@gnu.org>
Tue, 30 Dec 2003 07:25:18 +0000 (07:25 +0000)
committerEli Zaretskii <eliz@gnu.org>
Tue, 30 Dec 2003 07:25:18 +0000 (07:25 +0000)
that don't define SIGWINCH.

* terminal.c (_rl_get_screen_size) [__DJGPP__]: Compute the
screen width and height using console I/O.
(_rl_init_terminal_io) [__MSDOS__]: Zero out all the _rl_term_*
variables.  Convert to _rl_* naming scheme.
(_rl_set_cursor) [__MSDOS__]: Ifdef away this function.

* display.c (_rl_move_vert) [__MSDOS__]: Don't use undeclared
variable `l'.  Use `delta' instead recomputing its value anew.
Assign -delta to i instead of the other way around.

readline/ChangeLog.gdb
readline/display.c
readline/readline.c
readline/terminal.c

index adc733ca0d379f64a5de55c7d644c1a98ef9de89..abf32820194d6b67fbe5258857f5e3e40ce24c9a 100644 (file)
@@ -1,3 +1,22 @@
+2003-12-28  Eli Zaretskii  <eliz@elta.co.il>
+
+       * readline.c (rl_save_state, rl_restore_state): Support systems
+       that don't define SIGWINCH.
+
+2003-12-25  Eli Zaretskii  <eliz@elta.co.il>
+
+       * terminal.c (_rl_get_screen_size) [__DJGPP__]: Compute the
+       screen width and height using console I/O.
+       (_rl_init_terminal_io) [__MSDOS__]: Zero out all the _rl_term_*
+       variables.  Convert to _rl_* naming scheme.
+       (_rl_set_cursor) [__MSDOS__]: Ifdef away this function.
+
+2003-12-23  Eli Zaretskii  <eliz@elta.co.il>
+
+       * display.c (_rl_move_vert) [__MSDOS__]: Don't use undeclared
+       variable `l'.  Use `delta' instead recomputing its value anew.
+       Assign -delta to i instead of the other way around.
+
 2003-12-11  Michael Chastain  <mec.gnu@mindspring.com>
 
        * rlmbutil.h: Require HAVE_MBSTATE_T for HANDLE_MULTIBYTE.
index e151cf2862bd2933ba0c1896bb7ed4e79b0d992b..e7b75912c9e465e49001c78a15041c975fa02559 100644 (file)
@@ -1642,10 +1642,10 @@ _rl_move_vert (to)
 #ifdef __MSDOS__
       int row, col;
 
-      l = fflush (rl_outstream); /* make sure the cursor pos is current! */
+      fflush (rl_outstream); /* make sure the cursor pos is current! */
       ScreenGetCursor (&row, &col);
-      ScreenSetCursor ((row + to - _rl_last_v_pos), col);
-      delta = i;
+      ScreenSetCursor (row + delta, col);
+      i = -delta;    /* in case someone wants to use it after the loop */
 #else /* !__MSDOS__ */
       if (_rl_term_up && *_rl_term_up)
        for (i = 0; i < -delta; i++)
index 28801f19dfc1ea1036258440ee690a1b1438ffd7..efa0bf84c27952eba69c34b80ae3a731b5fe5e32 100644 (file)
@@ -933,7 +933,9 @@ rl_save_state (sp)
   sp->macro = rl_executing_macro;
 
   sp->catchsigs = rl_catch_signals;
+#if defined (SIGWINCH)
   sp->catchsigwinch = rl_catch_sigwinch;
+#endif
 
   return (0);
 }
@@ -967,7 +969,9 @@ rl_restore_state (sp)
   rl_executing_macro = sp->macro;
 
   rl_catch_signals = sp->catchsigs;
+#if defined (SIGWINCH)
   rl_catch_sigwinch = sp->catchsigwinch;
+#endif
 
   return (0);
 }
index ea3270e9683e02bfc54caa34b7922fc9f4c25eb6..06bc8e94d6b6da01523dc34f3970770c9496b547 100644 (file)
@@ -220,7 +220,10 @@ _rl_get_screen_size (tty, ignore_env)
       if (ignore_env == 0 && (ss = sh_get_env_value ("COLUMNS")))
        _rl_screenwidth = atoi (ss);
 
-#if !defined (__DJGPP__)
+#if defined (__DJGPP__)
+      if (_rl_screenwidth <= 0)
+       _rl_screenwidth = ScreenCols ();
+#else
       if (_rl_screenwidth <= 0 && term_string_buffer)
        _rl_screenwidth = tgetnum ("co");
 #endif
@@ -233,7 +236,10 @@ _rl_get_screen_size (tty, ignore_env)
       if (ignore_env == 0 && (ss = sh_get_env_value ("LINES")))
        _rl_screenheight = atoi (ss);
 
-#if !defined (__DJGPP__)
+#if defined (__DJGPP__)
+      if (_rl_screenheight <= 0)
+       _rl_screenheight = ScreenRows ();
+#else
       if (_rl_screenheight <= 0 && term_string_buffer)
        _rl_screenheight = tgetnum ("li");
 #endif
@@ -382,12 +388,19 @@ _rl_init_terminal_io (terminal_name)
     term = "dumb";
 
 #ifdef __MSDOS__
-  term_im = term_ei = term_ic = term_IC = (char *)NULL;
-  term_up = term_dc = term_DC = visible_bell = (char *)NULL;
-  term_ku = term_kd = term_kl = term_kr = (char *)NULL;
-  term_mm = term_mo = (char *)NULL;
-  terminal_can_insert = term_has_meta = _rl_term_autowrap = 0;
-  term_cr = "\r";
+  _rl_term_im = _rl_term_ei = _rl_term_ic = _rl_term_IC = (char *)NULL;
+  _rl_term_up = _rl_term_dc = _rl_term_DC = _rl_visible_bell = (char *)NULL;
+  _rl_term_ku = _rl_term_kd = _rl_term_kl = _rl_term_kr = (char *)NULL;
+  _rl_term_mm = _rl_term_mo = (char *)NULL;
+  _rl_terminal_can_insert = term_has_meta = _rl_term_autowrap = 0;
+  _rl_term_cr = "\r";
+  _rl_term_clreol = _rl_term_clrpag = _rl_term_backspace = (char *)NULL;
+  _rl_term_goto = _rl_term_pc = _rl_term_ip = (char *)NULL;
+  _rl_term_ks = _rl_term_ke =_rl_term_vs = _rl_term_ve = (char *)NULL;
+  _rl_term_kh = _rl_term_kH = _rl_term_at7 = _rl_term_kI = (char *)NULL;
+#if defined(HACK_TERMCAP_MOTION)
+  _rl_term_forward_char = (char *)NULL;
+#endif
 
   _rl_get_screen_size (tty, 0);
 #else  /* !__MSDOS__ */
@@ -677,6 +690,7 @@ void
 _rl_set_cursor (im, force)
      int im, force;
 {
+#ifndef __MSDOS__
   if (_rl_term_ve && _rl_term_vs)
     {
       if (force || im != rl_insert_mode)
@@ -687,4 +701,5 @@ _rl_set_cursor (im, force)
            tputs (_rl_term_ve, 1, _rl_output_character_function);
        }
     }
+#endif
 }
This page took 0.027392 seconds and 4 git commands to generate.