changeset 4571:ef4bdde0805d

[project @ 2003-10-30 16:48:09 by jwe]
author jwe
date Thu, 30 Oct 2003 16:48:09 +0000
parents 32b491743d40
children 4623ef02a605
files libcruft/ChangeLog libcruft/Makefile.in libcruft/misc/Makefile.in libcruft/misc/cquit.c libcruft/misc/quit.cc
diffstat 5 files changed, 106 insertions(+), 65 deletions(-) [+]
line wrap: on
line diff
--- a/libcruft/ChangeLog	Thu Oct 30 15:28:09 2003 +0000
+++ b/libcruft/ChangeLog	Thu Oct 30 16:48:09 2003 +0000
@@ -1,3 +1,13 @@
+2003-10-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (MISC_OBJ): Add misc/cquit.o to the list.
+
+	* misc/Makefile.in (SPECIAL_SRC): Add cquit.c to the list.
+	* misc/cquit.c: New file.
+	* misc/quit.cc: Move everything except octave_interrupt_hook,
+	octave_bad_alloc_hook, octave_throw_interrupt_exception, and
+	octave_throw_bad_alloc to cquit.c.
+
 2003-10-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* misc/quit.h (octave_interrupt_hook, octave_bad_alloc_hook):
--- a/libcruft/Makefile.in	Thu Oct 30 15:28:09 2003 +0000
+++ b/libcruft/Makefile.in	Thu Oct 30 16:48:09 2003 +0000
@@ -62,7 +62,7 @@
 # a normal archive file (created from PIC code, though).
 
 MISC_OBJ := misc/machar.o misc/f77-extern.o \
-	misc/f77-fcn.o misc/lo-error.o misc/quit.o
+	misc/f77-fcn.o misc/lo-error.o misc/quit.o misc/cquit.o
 
 CRUFT_FSRC := $(foreach dir, $(SUBDIRS), $(wildcard $(srcdir)/$(dir)/*.f))
 CRUFT_OBJ2 := $(patsubst $(srcdir)/%, %, $(CRUFT_FSRC))
--- a/libcruft/misc/Makefile.in	Thu Oct 30 15:28:09 2003 +0000
+++ b/libcruft/misc/Makefile.in	Thu Oct 30 16:48:09 2003 +0000
@@ -12,7 +12,7 @@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 
-SPECIAL_SRC := machar.c f77-extern.cc f77-fcn.c lo-error.c quit.cc
+SPECIAL_SRC := machar.c f77-extern.cc f77-fcn.c lo-error.c cquit.c quit.cc
 
 DEP_1 := $(patsubst %.c, %.d, $(SPECIAL_SRC))
 MAKEDEPS := $(patsubst %.cc, %.d, $(DEP_1))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libcruft/misc/cquit.c	Thu Oct 30 16:48:09 2003 +0000
@@ -0,0 +1,94 @@
+/*
+
+Copyright (C) 2003 John W. Eaton
+
+This file is part of Octave.
+
+Octave is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+Octave is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Octave; see the file COPYING.  If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+*/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <signal.h>
+#include <string.h>
+
+#include "quit.h"
+
+octave_jmp_buf current_context;
+
+void
+octave_save_current_context (void *save_buf)
+{
+  memcpy (save_buf, current_context, sizeof (octave_jmp_buf));
+}
+
+void
+octave_restore_current_context (void *save_buf)
+{
+  memcpy (current_context, save_buf, sizeof (octave_jmp_buf));
+}
+
+void
+octave_jump_to_enclosing_context (void)
+{
+#if defined (OCTAVE_HAVE_SIG_JUMP)
+  siglongjmp (current_context, 1);
+#else
+  longjmp (current_context, 1);
+#endif
+}
+
+// Allow us to save the signal mask and then restore it to the most
+// recently saved value.  This is necessary when using the POSIX
+// signal handling interface on some systems calling longjmp out of
+// the signal handler to get to the top level on an interrupt doesn't
+// restore the original signal mask.  Alternatively, we could use
+// sigsetjmp/siglongjmp, but saving and restoring the signal mask
+// ourselves works ok and seems simpler just now.
+
+#if defined (HAVE_POSIX_SIGNALS)
+static sigset_t octave_signal_mask;
+#endif
+
+void
+octave_save_signal_mask (void)
+{
+#if defined (HAVE_POSIX_SIGNALS)
+  sigprocmask (0, 0, &octave_signal_mask);
+#endif
+}
+
+void
+octave_restore_signal_mask (void)
+{
+#if defined (HAVE_POSIX_SIGNALS)
+  sigprocmask (SIG_SETMASK, &octave_signal_mask, 0);
+#endif
+}
+
+sig_atomic_t octave_interrupt_immediately = 0;
+
+sig_atomic_t octave_interrupt_state = 0;
+
+sig_atomic_t octave_allocation_error = 0;
+
+/*
+;;; Local Variables: ***
+;;; mode: C++ ***
+;;; End: ***
+*/
--- a/libcruft/misc/quit.cc	Thu Oct 30 15:28:09 2003 +0000
+++ b/libcruft/misc/quit.cc	Thu Oct 30 16:48:09 2003 +0000
@@ -28,75 +28,12 @@
 
 #include <new>
 
-// Include signal.h, not csignal since the latter might only define
-// the ANSI standard C signal interface.
-
-#include <signal.h>
-
 #include "quit.h"
 
-octave_jmp_buf current_context;
-
 void (*octave_interrupt_hook) (void) = 0;
 void (*octave_bad_alloc_hook) (void) = 0;
 
 void
-octave_save_current_context (void *save_buf)
-{
-  std::memcpy (save_buf, current_context, sizeof (octave_jmp_buf));
-}
-
-void
-octave_restore_current_context (void *save_buf)
-{
-  std::memcpy (current_context, save_buf, sizeof (octave_jmp_buf));
-}
-
-void
-octave_jump_to_enclosing_context (void)
-{
-#if defined (OCTAVE_HAVE_SIG_JUMP)
-  siglongjmp (current_context, 1);
-#else
-  longjmp (current_context, 1);
-#endif
-}
-
-// Allow us to save the signal mask and then restore it to the most
-// recently saved value.  This is necessary when using the POSIX
-// signal handling interface on some systems calling longjmp out of
-// the signal handler to get to the top level on an interrupt doesn't
-// restore the original signal mask.  Alternatively, we could use
-// sigsetjmp/siglongjmp, but saving and restoring the signal mask
-// ourselves works ok and seems simpler just now.
-
-#if defined (HAVE_POSIX_SIGNALS)
-static sigset_t octave_signal_mask;
-#endif
-
-void
-octave_save_signal_mask (void)
-{
-#if defined (HAVE_POSIX_SIGNALS)
-  sigprocmask (0, 0, &octave_signal_mask);
-#endif
-}
-
-void
-octave_restore_signal_mask (void)
-{
-#if defined (HAVE_POSIX_SIGNALS)
-  sigprocmask (SIG_SETMASK, &octave_signal_mask, 0);
-#endif
-}
-
-sig_atomic_t octave_interrupt_immediately = 0;
-
-sig_atomic_t octave_interrupt_state = 0;
-
-sig_atomic_t octave_allocation_error = 0;
-
-void
 octave_throw_interrupt_exception (void)
 {
   if (octave_interrupt_hook)