diff examples/unwinddemo.cc @ 6572:8e7148b84b59

[project @ 2007-04-25 04:13:44 by jwe]
author jwe
date Wed, 25 Apr 2007 04:14:49 +0000
parents
children 4270ded9ddc6
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/examples/unwinddemo.cc
@@ -0,0 +1,31 @@
+#include <octave/oct.h>
+#include <octave/unwind-prot.h>
+
+void
+err_hand (const char *fmt, ...)
+{
+  // Do nothing!!
+}
+
+DEFUN_DLD (unwinddemo, args, nargout, "Unwind Demo")
+{
+  int nargin = args.length();
+  octave_value retval;
+  if (nargin < 2)
+    print_usage ();
+  else
+    {
+      NDArray a = args(0).array_value ();
+      NDArray b = args(1).array_value ();
+
+      if (! error_state)
+        {
+          unwind_protect::begin_frame ("Funwinddemo");
+          unwind_protect_ptr (current_liboctave_warning_handler);
+          set_liboctave_warning_handler(err_hand);
+          retval = octave_value (quotient (a, b));
+          unwind_protect::run_frame ("Funwinddemo");
+        }
+    }
+  return retval;
+}