comparison libinterp/octave-value/ov-fcn-handle.cc @ 20615:729a85dafba8

use new string_value method to handle value extraction errors * ov-class.cc, ov-classdef.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov.cc, pt-idx.cc: Use new string_value method.
author John W. Eaton <jwe@octave.org>
date Thu, 08 Oct 2015 17:55:57 -0400
parents f90c8372b7ba
children f9c991dc5c1a
comparison
equal deleted inserted replaced
20614:10ec79b47808 20615:729a85dafba8
1857 octave_value retval; 1857 octave_value retval;
1858 int nargin = args.length (); 1858 int nargin = args.length ();
1859 1859
1860 if (nargin == 1 || nargin == 2) 1860 if (nargin == 1 || nargin == 2)
1861 { 1861 {
1862 if (args(0).is_string ()) 1862 std::string nm = args(0).string_value ("str2func: FCN_NAME must be a string");
1863 { 1863
1864 std::string nm = args(0).string_value (); 1864 if (nm[0] == '@')
1865 if (nm[0] == '@') 1865 {
1866 { 1866 int parse_status;
1867 int parse_status; 1867 octave_value anon_fcn_handle =
1868 octave_value anon_fcn_handle = 1868 eval_string (nm, true, parse_status);
1869 eval_string (nm, true, parse_status); 1869
1870 1870 if (parse_status == 0)
1871 if (parse_status == 0) 1871 retval = anon_fcn_handle;
1872 retval = anon_fcn_handle;
1873 }
1874 else
1875 retval = make_fcn_handle (nm, nargin != 2);
1876 } 1872 }
1877 else 1873 else
1878 error ("str2func: FCN_NAME must be a string"); 1874 retval = make_fcn_handle (nm, nargin != 2);
1879 } 1875 }
1880 else 1876 else
1881 print_usage (); 1877 print_usage ();
1882 1878
1883 return retval; 1879 return retval;