Mercurial > hg > octave-terminal
changeset 655:6a2e35dc94c3
[project @ 1994-08-25 22:16:05 by jwe]
author | jwe |
---|---|
date | Thu, 25 Aug 1994 22:16:15 +0000 |
parents | 4457d1970b0a |
children | d285f62d8638 |
files | info/Makefile.in info/session.c info/signals.c |
diffstat | 3 files changed, 26 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/info/Makefile.in +++ b/info/Makefile.in @@ -1,7 +1,7 @@ # Makefile for Octave's info directory. Adapted from the makefile for # texinfo/info. # -# Copyright (C) 1993 Free Software Foundation, Inc. +# Copyright (C) 1993, 1994 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -27,6 +27,10 @@ include $(TOPDIR)/Makeconf +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ + common = @srcdir@/../src MAKEINFO= makeinfo
--- a/info/session.c +++ b/info/session.c @@ -4158,8 +4158,19 @@ else if (info_get_key_from_typeahead (&keystroke) == 0) { int rawkey; - - rawkey = getc (info_input_stream); + int ignoreeof = 7; + + /* Ugh. After returning from a C-z that interrupted us while we were + waiting on input, Ultrix (and other?) systems return EOF from getc + instead of continuing to wait. Hack around that by trying to read + atain up to IGNOREEOF times. */ + + do + { + rawkey = getc (info_input_stream); + } + while (rawkey == EOF && --ignoreeof); + keystroke = rawkey; if (rawkey == EOF) @@ -4177,6 +4188,7 @@ if (rawkey == EOF) { + keystroke = '\0'; terminal_unprep_terminal (); close_dribble_file (); exit (0);
--- a/info/signals.c +++ b/info/signals.c @@ -140,13 +140,15 @@ #if defined (SIGTSTP) if (sig == SIGTSTP) old_signal_handler = &old_TSTP; - if (sig == SIGTTOU) + else if (sig == SIGTTOU) old_signal_handler = &old_TTOU; - if (sig == SIGTTIN) + else if (sig == SIGTTIN) old_signal_handler = &old_TTIN; #endif /* SIGTSTP */ - if (sig == SIGINT) +#if defined (SIGINT) + else if (sig == SIGINT) old_signal_handler = &old_INT; +#endif /* For stop signals, restore the terminal IO, leave the cursor at the bottom of the window, and stop us. */ @@ -154,13 +156,14 @@ terminal_clear_to_eol (); fflush (stdout); terminal_unprep_terminal (); + UNBLOCK_SIGNAL (sig); signal (sig, *old_signal_handler); - UNBLOCK_SIGNAL (sig); kill (getpid (), sig); /* The program is returning now. Restore our signal handler, turn on terminal handling, redraw the screen, and place the cursor where it belongs. */ + terminal_prep_terminal (); *old_signal_handler = (SigHandler *) signal (sig, info_signal_handler); redisplay_after_signal ();