diff liboctave/Array.cc @ 4759:364bbf35dbfa

[project @ 2004-02-15 00:08:06 by jwe]
author jwe
date Sun, 15 Feb 2004 00:08:07 +0000
parents c48180a45d34
children bec345670e56
line wrap: on
line diff
--- a/liboctave/Array.cc
+++ b/liboctave/Array.cc
@@ -76,10 +76,35 @@
 
   if (dims_changed)
     {
-      if (k == 0)
-	new_dimensions = dim_vector (1);
-      else
-	new_dimensions.resize (k);
+      switch (k)
+	{
+	case 0:
+	  new_dimensions = dim_vector (1, 1);
+	  break;
+
+	case 1:
+	  {
+	    int tmp = new_dimensions(0);
+
+	    new_dimensions.resize (2);
+
+	    if (dimensions(0) == 1)
+	      {
+		new_dimensions(0) = 1;
+		new_dimensions(1) = tmp;
+	      }
+	    else
+	      {
+		new_dimensions(0) = tmp;
+		new_dimensions(1) = 1;
+	      }
+	  }
+	  break;
+
+	default:
+	  new_dimensions.resize (k);
+	  break;
+	}
 
       retval.make_unique ();