# HG changeset patch # User David Bateman # Date 1210069236 14400 # Node ID 735dfdb923843c5ed7915da9501fb2ba018b079b # Parent 1a7ef7a48be10ffa84fbc0c0b8681d7b31c16a05 Treat bool as a scalar in the bit functions diff -r 1a7ef7a48be1 -r 735dfdb92384 src/ChangeLog --- a/src/ChangeLog Tue May 06 03:23:12 2008 -0400 +++ b/src/ChangeLog Tue May 06 06:20:36 2008 -0400 @@ -1,3 +1,7 @@ +2008-05-06 David Bateman + + * bitfcns.cc (BITOP): Treat octave_bool types and octave_scalar. + 2008-05-06 John W. Eaton * ov-cell.cc (Fstruct2cell): Handle structure arrays properly. diff -r 1a7ef7a48be1 -r 735dfdb92384 src/bitfcns.cc --- a/src/bitfcns.cc Tue May 06 03:23:12 2008 -0400 +++ b/src/bitfcns.cc Tue May 06 06:20:36 2008 -0400 @@ -40,6 +40,7 @@ #include "ov-int8.h" #include "ov-scalar.h" #include "ov-re-mat.h" +#include "ov-bool.h" // FIXME -- could probably eliminate some code duplication by // clever use of templates. @@ -87,12 +88,18 @@ if (nargin == 2) \ { \ if ((args(0).class_name () == octave_scalar::static_class_name ()) \ - || (args(1).class_name () == octave_scalar::static_class_name ())) \ + || (args(0).class_name () == octave_bool::static_class_name ()) \ + || (args(1).class_name () == octave_scalar::static_class_name ()) \ + || (args(1).class_name () == octave_bool::static_class_name ())) \ { \ bool arg0_is_int = (args(0).class_name () != \ - octave_scalar::static_class_name ()); \ + octave_scalar::static_class_name () && \ + args(0).class_name () != \ + octave_bool::static_class_name ()); \ bool arg1_is_int = (args(1).class_name () != \ - octave_scalar::static_class_name ()); \ + octave_scalar::static_class_name () && \ + args(1).class_name () != \ + octave_bool::static_class_name ()); \ \ if (! (arg0_is_int || arg1_is_int)) \ { \