aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--readline/ChangeLog.gdb19
-rw-r--r--readline/display.c6
-rw-r--r--readline/readline.c4
-rw-r--r--readline/terminal.c31
4 files changed, 49 insertions, 11 deletions
diff --git a/readline/ChangeLog.gdb b/readline/ChangeLog.gdb
index adc733c..abf3282 100644
--- a/readline/ChangeLog.gdb
+++ b/readline/ChangeLog.gdb
@@ -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.
diff --git a/readline/display.c b/readline/display.c
index e151cf2..e7b7591 100644
--- a/readline/display.c
+++ b/readline/display.c
@@ -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++)
diff --git a/readline/readline.c b/readline/readline.c
index 28801f1..efa0bf8 100644
--- a/readline/readline.c
+++ b/readline/readline.c
@@ -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);
}
diff --git a/readline/terminal.c b/readline/terminal.c
index ea3270e..06bc8e9 100644
--- a/readline/terminal.c
+++ b/readline/terminal.c
@@ -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
}