diff examples/code/structdemo.cc @ 20578:2f8500ca91d3

eliminate error_state from example files * addtwomatrices.cc, celldemo.cc, embedded.cc, fortrandemo.cc, funcdemo.cc, globaldemo.cc, helloworld.cc, make_int.cc, paramdemo.cc, stringdemo.cc, structdemo.cc, unwinddemo.cc: Eliminate use of global error_state variable.
author John W. Eaton <jwe@octave.org>
date Sat, 03 Oct 2015 16:05:27 -0400
parents c8240a60dd01
children
line wrap: on
line diff
--- a/examples/code/structdemo.cc	Sat Oct 03 13:20:28 2015 -0400
+++ b/examples/code/structdemo.cc	Sat Oct 03 16:05:27 2015 -0400
@@ -3,43 +3,30 @@
 
 DEFUN_DLD (structdemo, args, , "Struct Demo")
 {
-  octave_value retval;
-  int nargin = args.length ();
-
-  if (args.length () == 2)
-    {
-      octave_scalar_map arg0 = args(0).scalar_map_value ();
-      //octave_map arg0 = args(0).map_value ();
-
-      if (! error_state)
-        {
-          std::string arg1 = args(1).string_value ();
-
-          if (! error_state)
-            {
-              octave_value tmp = arg0.contents (arg1);
-              //octave_value tmp = arg0.contents (arg1)(0);
-
-              if (tmp.is_defined ())
-                {
-                  octave_scalar_map st;
-
-                  st.assign ("selected", tmp);
-
-                  retval = octave_value (st);
-                }
-              else
-                error ("structdemo: struct does not have a field named '%s'\n",
-                       arg1.c_str ());
-            }
-          else
-            error ("structdemo: ARG2 must be a character string");
-        }
-      else
-        error ("structdemo: ARG1 must be a struct");
-    }
-  else
+  if (args.length () != 2)
     print_usage ();
 
-  return retval;
+  if (! args(0).is_map ())
+    error ("structdemo: ARG1 must be a struct");
+
+  octave_scalar_map arg0 = args(0).scalar_map_value ();
+  //octave_map arg0 = args(0).map_value ();
+
+  if (! args(1).is_string ())
+    error ("structdemo: ARG2 must be a character string");
+
+  std::string arg1 = args(1).string_value ();
+
+  octave_value tmp = arg0.contents (arg1);
+  //octave_value tmp = arg0.contents (arg1)(0);
+
+  if (! tmp.is_defined ())
+    error ("structdemo: struct does not have a field named '%s'\n",
+           arg1.c_str ());
+
+  octave_scalar_map st;
+
+  st.assign ("selected", tmp);
+
+  return octave_value (st);
 }