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	Thu Aug 25 20:24:28 1994 +0000
+++ b/info/Makefile.in	Thu Aug 25 22:16:15 1994 +0000
@@ -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	Thu Aug 25 20:24:28 1994 +0000
+++ b/info/session.c	Thu Aug 25 22:16:15 1994 +0000
@@ -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	Thu Aug 25 20:24:28 1994 +0000
+++ b/info/signals.c	Thu Aug 25 22:16:15 1994 +0000
@@ -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 ();