# HG changeset patch # User jwe # Date 832799255 0 # Node ID 9dc512bdc19b8b1c9262af9a955b789bf217e783 # Parent 22f40c3d06003ff220a6292dd2b049567d0099f2 [project @ 1996-05-22 21:07:35 by jwe] diff --git a/src/pt-const.cc b/src/pt-const.cc --- a/src/pt-const.cc +++ b/src/pt-const.cc @@ -2608,38 +2608,52 @@ } } - octave_value tmp_a = a.make_numeric (); - - if (error_state) - return retval; - - switch (tmp_a.const_type ()) + // XXX FIXME XXX -- it is very unlikely that this is the correct + // place for this special case... + + if (a.const_type () == OCT_VAL_REP::char_matrix_constant_str + && t == tree_expression::transpose) + { + charMatrix chm = a.all_strings (); + + if (! error_state) + retval = octave_value (chm.transpose (), true); + } + else { - case OCT_VAL_REP::scalar_constant: - retval = do_unary_op (tmp_a.double_value (), t); - break; - - case OCT_VAL_REP::matrix_constant: - { - Matrix m = tmp_a.matrix_value (); - retval = do_unary_op (m, t); - } - break; - - case OCT_VAL_REP::complex_scalar_constant: - retval = do_unary_op (tmp_a.complex_value (), t); - break; - - case OCT_VAL_REP::complex_matrix_constant: - { - ComplexMatrix m = tmp_a.complex_matrix_value (); - retval = do_unary_op (m, t); - } - break; - - default: - gripe_wrong_type_arg_for_unary_op (tmp_a); - break; + octave_value tmp_a = a.make_numeric (); + + if (error_state) + return retval; + + switch (tmp_a.const_type ()) + { + case OCT_VAL_REP::scalar_constant: + retval = do_unary_op (tmp_a.double_value (), t); + break; + + case OCT_VAL_REP::matrix_constant: + { + Matrix m = tmp_a.matrix_value (); + retval = do_unary_op (m, t); + } + break; + + case OCT_VAL_REP::complex_scalar_constant: + retval = do_unary_op (tmp_a.complex_value (), t); + break; + + case OCT_VAL_REP::complex_matrix_constant: + { + ComplexMatrix m = tmp_a.complex_matrix_value (); + retval = do_unary_op (m, t); + } + break; + + default: + gripe_wrong_type_arg_for_unary_op (tmp_a); + break; + } } return retval;