# HG changeset patch # User jwe # Date 1095999967 0 # Node ID 3dcc3824b732dab646026d6b5dca79747243c22a # Parent 3361e084646984fe681212289423526f0c13d63f [project @ 2004-09-24 04:26:07 by jwe] diff -r 3361e0846469 -r 3dcc3824b732 src/ChangeLog --- a/src/ChangeLog Fri Sep 24 03:57:04 2004 +0000 +++ b/src/ChangeLog Fri Sep 24 04:26:07 2004 +0000 @@ -1,3 +1,8 @@ +2004-09-24 John W. Eaton + + * ov-str-mat.cc (default_numeric_conversion_function): Return + scalar object if numel == 1. + 2004-09-23 John W. Eaton * ops.h (DEFSTRDBLCONVFN): New macro. diff -r 3361e0846469 -r 3dcc3824b732 src/ov-str-mat.cc --- a/src/ov-str-mat.cc Fri Sep 24 03:57:04 2004 +0000 +++ b/src/ov-str-mat.cc Fri Sep 24 04:26:07 2004 +0000 @@ -39,6 +39,7 @@ #include "oct-obj.h" #include "oct-stream.h" #include "ops.h" +#include "ov-scalar.h" #include "ov-re-mat.h" #include "ov-str-mat.h" #include "gripes.h" @@ -57,11 +58,21 @@ static octave_value * default_numeric_conversion_function (const octave_value& a) { + octave_value *retval = 0; + CAST_CONV_ARG (const octave_char_matrix_str&); NDArray nda = v.array_value (true); - return error_state ? 0 : new octave_matrix (nda); + if (! error_state) + { + if (nda.numel () == 1) + retval = new octave_scalar (nda(0)); + else + retval = new octave_matrix (nda); + } + + return retval; } type_conv_fcn