diff src/data.cc @ 4513:508238e65af7

[project @ 2003-09-19 21:40:57 by jwe]
author jwe
date Fri, 19 Sep 2003 21:41:21 +0000 (2003-09-19)
parents b55eaa010770
children 34c934a1b08f
line wrap: on
line diff
--- a/src/data.cc
+++ b/src/data.cc
@@ -726,22 +726,25 @@
 
   int nargin = args.length ();
 
-  if (nargin == 1 && nargout < 3)
+  if (nargin == 1)
     {
-      int nr = args(0).rows ();
-      int nc = args(0).columns ();
+      dim_vector dimensions = args(0).dims ();
+
+      int ndims = dimensions.length ();
 
-      if (nargout == 0 || nargout == 1)
+      Matrix m (1, ndims);
+
+      if (nargout > 1)
 	{
-	  Matrix m (1, 2);
-	  m (0, 0) = nr;
-	  m (0, 1) = nc;
-	  retval(0) = m;
+	  while (ndims--)
+	    retval(ndims) = dimensions(ndims);
 	}
-      else if (nargout == 2)
+      else
 	{
-	  retval(1) = nc;
-	  retval(0) = nr;
+	  for (int i = 0; i < ndims; i++)
+	    m(0, i) = dimensions(i);
+
+	  retval(0) = m;
 	}
     }
   else if (nargin == 2 && nargout < 2)
@@ -931,7 +934,7 @@
   int ndim = 0;
   int type = 0;
 
-  Array<int> dims;
+  dim_vector dims;
   
   // Check for type information.