/usr/share/doc/liboctave-dev/examples/structdemo.cc is in liboctave-dev 4.0.3-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #include <octave/oct.h>
#include <octave/ov-struct.h>
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
print_usage ();
return retval;
}
|