Mercurial > octave
diff src/pt-exp-base.cc @ 1093:51fd9e40a7f7
[project @ 1995-02-03 21:57:34 by jwe]
author | jwe |
---|---|
date | Fri, 03 Feb 1995 21:57:34 +0000 |
parents | 7b7e58b31316 |
children | 22741d6ed818 |
line wrap: on
line diff
--- a/src/pt-exp-base.cc Thu Feb 02 16:47:56 1995 +0000 +++ b/src/pt-exp-base.cc Fri Feb 03 21:57:34 1995 +0000 @@ -1940,8 +1940,12 @@ tree_constant rhs_val = rhs->eval (0); if (error_state) { - if (error_state) - eval_error (); + eval_error (); + } + else if (rhs_val.is_undefined ()) + { + error ("value on right hand side of assignment is undefined"); + eval_error (); } else if (! index) { @@ -2112,8 +2116,9 @@ tree_constant *tmp = 0; if (results(i).is_undefined ()) { - Matrix m; - tmp = new tree_constant (m); + error ("element number %d undefined in return list", i+1); + eval_error (); + break; } else tmp = new tree_constant (results(i)); @@ -2808,7 +2813,16 @@ // Copy return values out. if (ret_list) - retval = ret_list->convert_to_const_vector (vr_list); + { + if (nargout > 0 && user_pref.define_all_return_values) + { + tree_constant tmp = builtin_any_variable ("default_return_value"); + if (tmp.is_defined ()) + ret_list->initialize_undefined_elements (tmp); + } + + retval = ret_list->convert_to_const_vector (vr_list); + } else if (user_pref.return_last_computed_value) retval(0) = last_computed_value; }