# HG changeset patch # User jwe # Date 1028586136 0 # Node ID 963507f8caf48727863095f6f67cff04e39f85e1 # Parent ca18dc3d5596d1e558557dd9a43defcb51acc8bc [project @ 2002-08-05 22:22:16 by jwe] diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2002-08-05 John W. Eaton + + * data.cc (ANY_ALL): Improve arg checks. + 2002-08-04 John W. Eaton * ov.h (octave_value::assign_op): New enum values, op_pow_eq and diff --git a/src/data.cc b/src/data.cc --- a/src/data.cc +++ b/src/data.cc @@ -56,20 +56,22 @@ \ int nargin = args.length (); \ \ - int dim = (nargin == 1 ? -1 : args(1).int_value (true) - 1); \ - \ - if (! error_state) \ + if (nargin == 1 || nargin == 2) \ { \ - if (dim <= 1 && dim >= -1) \ - { \ - if (nargin == 1 || nargin == 2) \ + int dim = (nargin == 1 ? -1 : args(1).int_value (true) - 1); \ + \ + if (! error_state) \ + { \ + if (dim <= 1 && dim >= -1) \ retval = args(0).FCN (dim); \ - else \ - print_usage (#FCN); \ - } \ + else \ + error (#FCN ": invalid dimension argument = %d", dim + 1); \ + } \ else \ - error (#FCN ": invalid dimension argument = %d", dim + 1); \ + error (#FCN ": expecting dimension argument to be an integer"); \ } \ + else \ + print_usage (#FCN); \ \ return retval diff --git a/test/octave.test/matrix/all-1.m b/test/octave.test/matrix/all-1.m --- a/test/octave.test/matrix/all-1.m +++ b/test/octave.test/matrix/all-1.m @@ -1,3 +1,6 @@ x = ones (3); x(1,1) = 0; -all (all (rand (3) + 1) == [1, 1, 1]) == 1 && all (all (x) == [0, 1, 1]) == 1 +(all (all (rand (3) + 1) == [1, 1, 1]) == 1 + && all (all (x) == [0, 1, 1]) == 1 + && all (x, 1) == [0, 1, 1] + && all (x, 2) == [0; 1; 1]) diff --git a/test/octave.test/matrix/all-3.m b/test/octave.test/matrix/all-3.m --- a/test/octave.test/matrix/all-3.m +++ b/test/octave.test/matrix/all-3.m @@ -1,1 +1,1 @@ -all (1, 2) +all (1, 2, 3) diff --git a/test/octave.test/matrix/any-1.m b/test/octave.test/matrix/any-1.m --- a/test/octave.test/matrix/any-1.m +++ b/test/octave.test/matrix/any-1.m @@ -1,3 +1,6 @@ x = zeros (3); x(3,3) = 1; -all (any (x) == [0, 0, 1]) == 1 && all (any (ones (3)) == [1, 1, 1]) == 1 +(all (any (x) == [0, 0, 1]) == 1 + && all (any (ones (3)) == [1, 1, 1]) == 1 + && any (x, 1) == [0, 0, 1] + && any (x, 2) == [0; 0; 1]) diff --git a/test/octave.test/matrix/any-3.m b/test/octave.test/matrix/any-3.m --- a/test/octave.test/matrix/any-3.m +++ b/test/octave.test/matrix/any-3.m @@ -1,1 +1,1 @@ -any (1, 2) +any (1, 2, 3)