# HG changeset patch # User John W. Eaton # Date 1287691920 14400 # Node ID 0de5cc44e69068f9d7ac6705bcc3a47c1c7d22f7 # Parent 9cb5c0b7b43b386718442c6dc7c639c48567d2c8 use gripe functions for NaN to logical and NaN to character conversions more consistently diff --git a/liboctave/Array-util.cc b/liboctave/Array-util.cc --- a/liboctave/Array-util.cc +++ b/liboctave/Array-util.cc @@ -661,7 +661,15 @@ void gripe_nan_to_logical_conversion (void) { - (*current_liboctave_error_handler) ("invalid conversion of NaN to logical"); + (*current_liboctave_error_handler) + ("invalid conversion from NaN to logical"); +} + +void +gripe_nan_to_character_conversion (void) +{ + (*current_liboctave_error_handler) + ("invalid conversion from NaN to character"); } void diff --git a/liboctave/Array-util.h b/liboctave/Array-util.h --- a/liboctave/Array-util.h +++ b/liboctave/Array-util.h @@ -112,6 +112,8 @@ extern void OCTAVE_API gripe_nan_to_logical_conversion (void); +extern void OCTAVE_API gripe_nan_to_character_conversion (void); + extern void OCTAVE_API gripe_nonconformant (const char *op, int op1_len, int op2_len); extern void OCTAVE_API gripe_nonconformant (const char *op, int op1_nr, int op1_nc, diff --git a/liboctave/ChangeLog b/liboctave/ChangeLog --- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,8 @@ +2010-10-21 John W. Eaton + + * Array-util.cc (gripe_nan_to_character_conversion): New function. + * Array-util.h: Provide decl. + 2010-10-19 John W. Eaton * Makefile.am (INCS): Add caseless-str.h to the list. diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2010-10-21 John W. Eaton + + * ov-float.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc, + ov-scalar.cc: Use gripe_nan_to_character_conversion. + + * ops.h, ov-base-mat.cc, ov-base-scalar.cc, ov-complex.h, + ov-cx-mat.cc, ov-cx-sparse.cc, ov-float.h, ov-flt-complex.h, + ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-range.cc, ov-re-mat.cc, + ov-re-sparse.cc, ov-scalar.h: Use gripe_nan_to_logical_conversion. + 2010-10-20 John W. Eaton * toplev.cc (Fsystem): Allow optional RETURN_OUTPUT and TYPE diff --git a/src/ops.h b/src/ops.h --- a/src/ops.h +++ b/src/ops.h @@ -303,7 +303,7 @@ CAST_BINOP_ARGS (const CONCAT2(octave_, t1)&, const CONCAT2(octave_, t2)&); \ if (xisnan (v1.CONCAT2(t1, _value) ()) || xisnan (v2.CONCAT2(t2, _value) ())) \ { \ - error ("invalid conversion from NaN to logical"); \ + gripe_nan_to_logical_conversion (); \ return octave_value (); \ } \ else \ diff --git a/src/ov-base-mat.cc b/src/ov-base-mat.cc --- a/src/ov-base-mat.cc +++ b/src/ov-base-mat.cc @@ -413,7 +413,7 @@ MT t1 (matrix.reshape (dim_vector (nel, 1))); if (t1.any_element_is_nan ()) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else { boolNDArray t2 = t1.all (); diff --git a/src/ov-base-scalar.cc b/src/ov-base-scalar.cc --- a/src/ov-base-scalar.cc +++ b/src/ov-base-scalar.cc @@ -128,7 +128,7 @@ bool retval = false; if (xisnan (scalar)) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else retval = (scalar != ST ()); diff --git a/src/ov-complex.h b/src/ov-complex.h --- a/src/ov-complex.h +++ b/src/ov-complex.h @@ -138,7 +138,7 @@ bool bool_value (bool warn = false) const { if (xisnan (scalar)) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && scalar != 0.0 && scalar != 1.0) gripe_logical_conversion (); @@ -148,7 +148,7 @@ boolNDArray bool_array_value (bool warn = false) const { if (xisnan (scalar)) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && scalar != 0.0 && scalar != 1.0) gripe_logical_conversion (); diff --git a/src/ov-cx-mat.cc b/src/ov-cx-mat.cc --- a/src/ov-cx-mat.cc +++ b/src/ov-cx-mat.cc @@ -226,7 +226,7 @@ octave_complex_matrix::bool_array_value (bool warn) const { if (matrix.any_element_is_nan ()) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && (! matrix.all_elements_are_real () || real (matrix).any_element_not_one_or_zero ())) gripe_logical_conversion (); diff --git a/src/ov-cx-sparse.cc b/src/ov-cx-sparse.cc --- a/src/ov-cx-sparse.cc +++ b/src/ov-cx-sparse.cc @@ -215,7 +215,7 @@ octave_sparse_complex_matrix::sparse_bool_matrix_value (bool warn) const { if (matrix.any_element_is_nan ()) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && (! matrix.all_elements_are_real () || real (matrix).any_element_not_one_or_zero ())) gripe_logical_conversion (); diff --git a/src/ov-float.cc b/src/ov-float.cc --- a/src/ov-float.cc +++ b/src/ov-float.cc @@ -104,7 +104,7 @@ octave_value retval; if (xisnan (scalar)) - ::error ("invalid conversion from NaN to character"); + gripe_nan_to_character_conversion (); else { int ival = NINT (scalar); diff --git a/src/ov-float.h b/src/ov-float.h --- a/src/ov-float.h +++ b/src/ov-float.h @@ -195,7 +195,7 @@ bool bool_value (bool warn = false) const { if (xisnan (scalar)) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && scalar != 0 && scalar != 1) gripe_logical_conversion (); @@ -205,7 +205,7 @@ boolNDArray bool_array_value (bool warn = false) const { if (xisnan (scalar)) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && scalar != 0 && scalar != 1) gripe_logical_conversion (); diff --git a/src/ov-flt-complex.h b/src/ov-flt-complex.h --- a/src/ov-flt-complex.h +++ b/src/ov-flt-complex.h @@ -136,7 +136,7 @@ bool bool_value (bool warn = false) const { if (xisnan (scalar)) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && scalar != 0.0f && scalar != 1.0f) gripe_logical_conversion (); @@ -146,7 +146,7 @@ boolNDArray bool_array_value (bool warn = false) const { if (xisnan (scalar)) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && scalar != 0.0f && scalar != 1.0f) gripe_logical_conversion (); diff --git a/src/ov-flt-cx-mat.cc b/src/ov-flt-cx-mat.cc --- a/src/ov-flt-cx-mat.cc +++ b/src/ov-flt-cx-mat.cc @@ -215,7 +215,7 @@ octave_float_complex_matrix::bool_array_value (bool warn) const { if (matrix.any_element_is_nan ()) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && (! matrix.all_elements_are_real () || real (matrix).any_element_not_one_or_zero ())) gripe_logical_conversion (); diff --git a/src/ov-flt-re-mat.cc b/src/ov-flt-re-mat.cc --- a/src/ov-flt-re-mat.cc +++ b/src/ov-flt-re-mat.cc @@ -216,7 +216,7 @@ octave_float_matrix::bool_array_value (bool warn) const { if (matrix.any_element_is_nan ()) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && matrix.any_element_not_one_or_zero ()) gripe_logical_conversion (); @@ -283,7 +283,7 @@ if (xisnan (d)) { - ::error ("invalid conversion from NaN to character"); + gripe_nan_to_character_conversion (); return retval; } else diff --git a/src/ov-range.cc b/src/ov-range.cc --- a/src/ov-range.cc +++ b/src/ov-range.cc @@ -317,7 +317,7 @@ Matrix m = range.matrix_value (); if (m.any_element_is_nan ()) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && m.any_element_not_one_or_zero ()) gripe_logical_conversion (); diff --git a/src/ov-re-mat.cc b/src/ov-re-mat.cc --- a/src/ov-re-mat.cc +++ b/src/ov-re-mat.cc @@ -225,7 +225,7 @@ octave_matrix::bool_array_value (bool warn) const { if (matrix.any_element_is_nan ()) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && matrix.any_element_not_one_or_zero ()) gripe_logical_conversion (); @@ -385,7 +385,7 @@ if (xisnan (d)) { - ::error ("invalid conversion from NaN to character"); + gripe_nan_to_character_conversion (); return retval; } else diff --git a/src/ov-re-sparse.cc b/src/ov-re-sparse.cc --- a/src/ov-re-sparse.cc +++ b/src/ov-re-sparse.cc @@ -145,7 +145,7 @@ NDArray m = matrix.matrix_value (); if (m.any_element_is_nan ()) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && m.any_element_not_one_or_zero ()) gripe_logical_conversion (); @@ -188,7 +188,7 @@ octave_sparse_matrix::sparse_bool_matrix_value (bool warn) const { if (matrix.any_element_is_nan ()) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && matrix.any_element_not_one_or_zero ()) gripe_logical_conversion (); @@ -225,7 +225,7 @@ if (xisnan (d)) { - ::error ("invalid conversion from NaN to character"); + gripe_nan_to_character_conversion (); return retval; } else diff --git a/src/ov-scalar.cc b/src/ov-scalar.cc --- a/src/ov-scalar.cc +++ b/src/ov-scalar.cc @@ -119,7 +119,7 @@ octave_value retval; if (xisnan (scalar)) - ::error ("invalid conversion from NaN to character"); + gripe_nan_to_character_conversion (); else { int ival = NINT (scalar); diff --git a/src/ov-scalar.h b/src/ov-scalar.h --- a/src/ov-scalar.h +++ b/src/ov-scalar.h @@ -196,7 +196,7 @@ bool bool_value (bool warn = false) const { if (xisnan (scalar)) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && scalar != 0 && scalar != 1) gripe_logical_conversion (); @@ -206,7 +206,7 @@ boolNDArray bool_array_value (bool warn = false) const { if (xisnan (scalar)) - error ("invalid conversion from NaN to logical"); + gripe_nan_to_logical_conversion (); else if (warn && scalar != 0 && scalar != 1) gripe_logical_conversion ();