comparison libinterp/corefcn/spparms.cc @ 20617:ba2b07c13913

use new string_value method to handle value extraction errors * __dispatch__.cc, balance.cc, colloc.cc, conv2.cc, data.cc, debug.cc, graphics.cc, input.cc, matrix_type.cc, oct-hist.cc, schur.cc, spparms.cc, symtab.cc, sysdep.cc, toplev.cc, utils.cc: Use new string_value method.
author John W. Eaton <jwe@octave.org>
date Fri, 09 Oct 2015 10:06:39 -0400
parents 4f45eaf83908
children
comparison
equal deleted inserted replaced
20616:fd0efcdb3718 20617:ba2b07c13913
165 octave_sparse_params::set_vals (vals); 165 octave_sparse_params::set_vals (vals);
166 } 166 }
167 } 167 }
168 else if (nargin == 2) 168 else if (nargin == 2)
169 { 169 {
170 if (args(0).is_string ()) 170 std::string str = args(0).string_value ("spparms: first argument must be a string");
171 { 171
172 std::string str = args(0).string_value (); 172 double val = args(1).double_value ();
173 173
174 double val = args(1).double_value (); 174 if (error_state)
175 175 error ("spparms: second argument must be a real scalar");
176 if (error_state) 176 else if (str == "umfpack")
177 error ("spparms: second argument must be a real scalar"); 177 warning ("spparms: request to disable umfpack solvers ignored");
178 else if (str == "umfpack") 178 else if (!octave_sparse_params::set_key (str, val))
179 warning ("spparms: request to disable umfpack solvers ignored"); 179 error ("spparms: KEY not found");
180 else if (!octave_sparse_params::set_key (str, val))
181 error ("spparms: KEY not found");
182 }
183 else
184 error ("spparms: first argument must be a string");
185 } 180 }
186 else 181 else
187 error ("spparms: too many input arguments"); 182 error ("spparms: too many input arguments");
188 183
189 return retval; 184 return retval;