openbsd-ports/net/icb/patches/patch-readline_readline_c

83 lines
2.4 KiB
Plaintext

$OpenBSD: patch-readline_readline_c,v 1.2 2004/06/07 05:58:45 david Exp $
--- readline/readline.c.orig 1995-02-24 15:20:03.000000000 -0600
+++ readline/readline.c 2004-06-06 22:06:07.000000000 -0500
@@ -610,22 +610,22 @@ rl_signal_handler (sig)
rl_set_signals ()
{
- old_int = (SigHandler *)signal (SIGINT, rl_signal_handler);
+ old_int = (SigHandler *)signal (SIGINT, (void *)rl_signal_handler);
if (old_int == (SigHandler *)SIG_IGN)
signal (SIGINT, SIG_IGN);
- old_alrm = (SigHandler *)signal (SIGALRM, rl_signal_handler);
+ old_alrm = (SigHandler *)signal (SIGALRM, (void *)rl_signal_handler);
if (old_alrm == (SigHandler *)SIG_IGN)
signal (SIGALRM, SIG_IGN);
#if defined (SIGTSTP)
- old_tstp = (SigHandler *)signal (SIGTSTP, rl_signal_handler);
+ old_tstp = (SigHandler *)signal (SIGTSTP, (void *)rl_signal_handler);
if (old_tstp == (SigHandler *)SIG_IGN)
signal (SIGTSTP, SIG_IGN);
#endif
#if defined (SIGTTOU)
- old_ttou = (SigHandler *)signal (SIGTTOU, rl_signal_handler);
- old_ttin = (SigHandler *)signal (SIGTTIN, rl_signal_handler);
+ old_ttou = (SigHandler *)signal (SIGTTOU, (void *)rl_signal_handler);
+ old_ttin = (SigHandler *)signal (SIGTTIN, (void *)rl_signal_handler);
if (old_tstp == (SigHandler *)SIG_IGN)
{
@@ -635,26 +635,26 @@ rl_set_signals ()
#endif
#if defined (SIGWINCH)
- old_sigwinch = (SigHandler *)signal (SIGWINCH, rl_handle_sigwinch);
+ old_sigwinch = (SigHandler *)signal (SIGWINCH, (void *)rl_handle_sigwinch);
#endif
}
rl_clear_signals ()
{
- signal (SIGINT, old_int);
- signal (SIGALRM, old_alrm);
+ signal (SIGINT, (void *)old_int);
+ signal (SIGALRM, (void *)old_alrm);
#if defined (SIGTSTP)
- signal (SIGTSTP, old_tstp);
+ signal (SIGTSTP, (void *)old_tstp);
#endif
#if defined (SIGTTOU)
- signal (SIGTTOU, old_ttou);
- signal (SIGTTIN, old_ttin);
+ signal (SIGTTOU, (void *)old_ttou);
+ signal (SIGTTIN, (void *)old_ttin);
#endif
#if defined (SIGWINCH)
- signal (SIGWINCH, old_sigwinch);
+ signal (SIGWINCH, (void *)old_sigwinch);
#endif
}
#endif /* HANDLE_SIGNALS */
@@ -1700,8 +1700,14 @@ update_line (old, new, current_line)
return;
wsatend = 1; /* flag for trailing whitespace */
- ols = oe - 1; /* find last same */
- nls = ne - 1;
+
+ /* find last same */
+ ols = oe;
+ if (oe != old)
+ ols--;
+ nls = ne;
+ if (ne != new)
+ nls--;
while ((*ols == *nls) && (ols > ofd) && (nls > nfd))
{
if (*ols != ' ')