PR gdb/544
* rltty.c (block_sigint, release_sigint): Rename to... (_rl_block_sigint, _rl_release_sigint): ...these and make them global. * rltty.h (_rl_block_sigint, _rl_release_sigint): New prototypes. * display.c (rl_redisplay): Wrap the function by the calls to _RL_BLOCK_SIGINT and _RL_RELEASE_SIGINT.
This commit is contained in:
parent
086a18414a
commit
87adec2ec1
@ -1,3 +1,12 @@
|
|||||||
|
2008-03-24 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
|
PR gdb/544
|
||||||
|
* rltty.c (block_sigint, release_sigint): Rename to...
|
||||||
|
(_rl_block_sigint, _rl_release_sigint): ...these and make them global.
|
||||||
|
* rltty.h (_rl_block_sigint, _rl_release_sigint): New prototypes.
|
||||||
|
* display.c (rl_redisplay): Wrap the function by the calls to
|
||||||
|
_RL_BLOCK_SIGINT and _RL_RELEASE_SIGINT.
|
||||||
|
|
||||||
2007-09-01 Daniel Jacobowitz <dan@codesourcery.com>
|
2007-09-01 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
PR gdb/2138
|
PR gdb/2138
|
||||||
|
@ -463,6 +463,10 @@ rl_redisplay ()
|
|||||||
if (!readline_echoing_p)
|
if (!readline_echoing_p)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* Signals are blocked through this function as the global data structures
|
||||||
|
could get corrupted upon modifications from an invoked signal handler. */
|
||||||
|
_rl_block_sigint ();
|
||||||
|
|
||||||
if (!rl_display_prompt)
|
if (!rl_display_prompt)
|
||||||
rl_display_prompt = "";
|
rl_display_prompt = "";
|
||||||
|
|
||||||
@ -1139,6 +1143,8 @@ rl_redisplay ()
|
|||||||
else
|
else
|
||||||
visible_wrap_offset = wrap_offset;
|
visible_wrap_offset = wrap_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_rl_release_sigint ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* PWP: update_line() is based on finding the middle difference of each
|
/* PWP: update_line() is based on finding the middle difference of each
|
||||||
|
@ -52,8 +52,8 @@ extern int errno;
|
|||||||
rl_vintfunc_t *rl_prep_term_function = rl_prep_terminal;
|
rl_vintfunc_t *rl_prep_term_function = rl_prep_terminal;
|
||||||
rl_voidfunc_t *rl_deprep_term_function = rl_deprep_terminal;
|
rl_voidfunc_t *rl_deprep_term_function = rl_deprep_terminal;
|
||||||
|
|
||||||
static void block_sigint PARAMS((void));
|
void _rl_block_sigint PARAMS((void));
|
||||||
static void release_sigint PARAMS((void));
|
void _rl_release_sigint PARAMS((void));
|
||||||
|
|
||||||
static void set_winsize PARAMS((int));
|
static void set_winsize PARAMS((int));
|
||||||
|
|
||||||
@ -74,9 +74,9 @@ static int sigint_oldmask;
|
|||||||
static int sigint_blocked;
|
static int sigint_blocked;
|
||||||
|
|
||||||
/* Cause SIGINT to not be delivered until the corresponding call to
|
/* Cause SIGINT to not be delivered until the corresponding call to
|
||||||
release_sigint(). */
|
_rl_release_sigint(). */
|
||||||
static void
|
void
|
||||||
block_sigint ()
|
_rl_block_sigint ()
|
||||||
{
|
{
|
||||||
if (sigint_blocked)
|
if (sigint_blocked)
|
||||||
return;
|
return;
|
||||||
@ -100,8 +100,8 @@ block_sigint ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Allow SIGINT to be delivered. */
|
/* Allow SIGINT to be delivered. */
|
||||||
static void
|
void
|
||||||
release_sigint ()
|
_rl_release_sigint ()
|
||||||
{
|
{
|
||||||
if (sigint_blocked == 0)
|
if (sigint_blocked == 0)
|
||||||
return;
|
return;
|
||||||
@ -663,7 +663,7 @@ rl_prep_terminal (meta_flag)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Try to keep this function from being INTerrupted. */
|
/* Try to keep this function from being INTerrupted. */
|
||||||
block_sigint ();
|
_rl_block_sigint ();
|
||||||
|
|
||||||
tty = fileno (rl_instream);
|
tty = fileno (rl_instream);
|
||||||
|
|
||||||
@ -676,7 +676,7 @@ rl_prep_terminal (meta_flag)
|
|||||||
if (errno == ENOTTY)
|
if (errno == ENOTTY)
|
||||||
#endif
|
#endif
|
||||||
readline_echoing_p = 1; /* XXX */
|
readline_echoing_p = 1; /* XXX */
|
||||||
release_sigint ();
|
_rl_release_sigint ();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -711,7 +711,7 @@ rl_prep_terminal (meta_flag)
|
|||||||
|
|
||||||
if (set_tty_settings (tty, &tio) < 0)
|
if (set_tty_settings (tty, &tio) < 0)
|
||||||
{
|
{
|
||||||
release_sigint ();
|
_rl_release_sigint ();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -722,7 +722,7 @@ rl_prep_terminal (meta_flag)
|
|||||||
terminal_prepped = 1;
|
terminal_prepped = 1;
|
||||||
RL_SETSTATE(RL_STATE_TERMPREPPED);
|
RL_SETSTATE(RL_STATE_TERMPREPPED);
|
||||||
|
|
||||||
release_sigint ();
|
_rl_release_sigint ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Restore the terminal's normal settings and modes. */
|
/* Restore the terminal's normal settings and modes. */
|
||||||
@ -735,7 +735,7 @@ rl_deprep_terminal ()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Try to keep this function from being interrupted. */
|
/* Try to keep this function from being interrupted. */
|
||||||
block_sigint ();
|
_rl_block_sigint ();
|
||||||
|
|
||||||
tty = fileno (rl_instream);
|
tty = fileno (rl_instream);
|
||||||
|
|
||||||
@ -746,14 +746,14 @@ rl_deprep_terminal ()
|
|||||||
|
|
||||||
if (set_tty_settings (tty, &otio) < 0)
|
if (set_tty_settings (tty, &otio) < 0)
|
||||||
{
|
{
|
||||||
release_sigint ();
|
_rl_release_sigint ();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
terminal_prepped = 0;
|
terminal_prepped = 0;
|
||||||
RL_UNSETSTATE(RL_STATE_TERMPREPPED);
|
RL_UNSETSTATE(RL_STATE_TERMPREPPED);
|
||||||
|
|
||||||
release_sigint ();
|
_rl_release_sigint ();
|
||||||
}
|
}
|
||||||
#endif /* !NO_TTY_DRIVER */
|
#endif /* !NO_TTY_DRIVER */
|
||||||
|
|
||||||
|
@ -79,4 +79,7 @@ typedef struct _rl_tty_chars {
|
|||||||
unsigned char t_status;
|
unsigned char t_status;
|
||||||
} _RL_TTY_CHARS;
|
} _RL_TTY_CHARS;
|
||||||
|
|
||||||
|
extern void _rl_block_sigint PARAMS((void));
|
||||||
|
extern void _rl_release_sigint PARAMS((void));
|
||||||
|
|
||||||
#endif /* _RLTTY_H_ */
|
#endif /* _RLTTY_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user