diff src/sighandlers.cc @ 4793:a62215ab8a03

[project @ 2004-02-20 20:59:34 by jwe]
author jwe
date Fri, 20 Feb 2004 20:59:34 +0000
parents 62f2fb593455
children 2c4b08ace285
line wrap: on
line diff
--- a/src/sighandlers.cc	Fri Feb 20 18:44:43 2004 +0000
+++ b/src/sighandlers.cc	Fri Feb 20 20:59:34 2004 +0000
@@ -237,7 +237,7 @@
   // XXX FIXME XXX -- will setting octave_interrupt_state really help
   // here?
 
-  if (can_interrupt)
+  if (can_interrupt && octave_interrupt_state >= 0)
     octave_interrupt_state++;
 
   SIGHANDLER_RETURN (0);
@@ -334,6 +334,13 @@
 	octave_jump_to_enclosing_context ();
       else
 	{
+	  // If we are already cleaning up from a previous interrupt,
+	  // take note of the fact that another interrupt signal has
+	  // arrived.
+
+	  if (octave_interrupt_state < 0)
+	    octave_interrupt_state = 0;
+
 	  octave_interrupt_state++;
 
 	  if (interactive && octave_interrupt_state == 2)
@@ -363,7 +370,7 @@
   // XXX FIXME XXX -- will setting octave_interrupt_state really help
   // here?
 
-  if (pipe_handler_error_count  > 100)
+  if (pipe_handler_error_count  > 100 && octave_interrupt_state >= 0)
     octave_interrupt_state++;
 
   SIGHANDLER_RETURN (0);