|
From: <i7...@us...> - 2010-11-08 15:18:00
|
Revision: 7903
http://octave.svn.sourceforge.net/octave/?rev=7903&view=rev
Author: i7tiol
Date: 2010-11-08 15:17:54 +0000 (Mon, 08 Nov 2010)
Log Message:
-----------
Fix corner cases.
Modified Paths:
--------------
trunk/octave-forge/main/struct/DESCRIPTION
trunk/octave-forge/main/struct/src/cell2fields.cc
trunk/octave-forge/main/struct/src/fields2cell.cc
Modified: trunk/octave-forge/main/struct/DESCRIPTION
===================================================================
--- trunk/octave-forge/main/struct/DESCRIPTION 2010-11-07 18:47:36 UTC (rev 7902)
+++ trunk/octave-forge/main/struct/DESCRIPTION 2010-11-08 15:17:54 UTC (rev 7903)
@@ -1,6 +1,6 @@
Name: Struct
-Version: 1.0.8
-Date: 2010-10-18
+Version: 1.0.9
+Date: 2010-11-05
Author: Etienne Grossmann and Olaf Till <ola...@un...>
Maintainer: Etienne Grossmann
Title: Structure Handling.
Modified: trunk/octave-forge/main/struct/src/cell2fields.cc
===================================================================
--- trunk/octave-forge/main/struct/src/cell2fields.cc 2010-11-07 18:47:36 UTC (rev 7902)
+++ trunk/octave-forge/main/struct/src/cell2fields.cc 2010-11-08 15:17:54 UTC (rev 7903)
@@ -48,7 +48,9 @@
return octave_value_list ();
}
- if (! names.dims ().is_vector ())
+ // do not reject if ndims == [0, 0]
+ dim_vector ndims = names.dims ();
+ if (ndims.length () > 2 || (ndims(0) > 1 && ndims(1) > 1))
{
error ("%s: second argument must be a one-dimensional cell array",
fname.c_str ());
@@ -58,7 +60,7 @@
octave_idx_type dim = args(2).int_value ();
if (error_state)
{
- error ("%s: second argument must be an integer",
+ error ("%s: third argument must be an integer",
fname.c_str ());
return octave_value_list ();
}
@@ -66,7 +68,7 @@
Octave_map s = args(3).map_value ();
if (error_state)
{
- error ("%s: third argument must be a structure", fname.c_str ());
+ error ("%s: fourth argument must be a structure", fname.c_str ());
return octave_value_list ();
}
@@ -80,7 +82,7 @@
octave_idx_type nr = 1;
- if (n_cdims >= dim && cdims(dim - 1) > 1)
+ if (n_cdims >= dim)
{
nr = cdims(dim - 1);
@@ -104,7 +106,7 @@
{
if (s.dims () != tdims)
{
- error ("%s: structure has incorrect dimenstions", fname.c_str ());
+ error ("%s: structure has incorrect dimensions", fname.c_str ());
return octave_value_list ();
}
Modified: trunk/octave-forge/main/struct/src/fields2cell.cc
===================================================================
--- trunk/octave-forge/main/struct/src/fields2cell.cc 2010-11-07 18:47:36 UTC (rev 7902)
+++ trunk/octave-forge/main/struct/src/fields2cell.cc 2010-11-08 15:17:54 UTC (rev 7903)
@@ -49,7 +49,8 @@
return octave_value_list ();
}
- if (! names.dims ().is_vector ())
+ dim_vector ndims = names.dims ();
+ if (ndims.length () > 2 || (ndims(0) > 1 && ndims(1) > 1))
{
error ("%s: second argument must be a one-dimensional cell array",
fname.c_str ());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|