Mercurial > octave-nkf
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); }