changeset 7389:4d0d6c357bc6

[project @ 2008-01-16 08:32:13 by jwe]
author jwe
date Wed, 16 Jan 2008 08:32:14 +0000
parents 0e1ccfe1bf91
children 3a21ee84a432
files src/ChangeLog src/pt-assign.cc
diffstat 2 files changed, 23 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Wed Jan 16 06:31:23 2008 +0000
+++ b/src/ChangeLog	Wed Jan 16 08:32:14 2008 +0000
@@ -1,3 +1,9 @@
+2008-01-16  John W. Eaton  <jwe@octave.org>
+
+	* pt-assign.cc (tree_simple_assignment::rvalue,
+	tree_multi_assignment::rvalue): Handle assignment of
+	comma-separated lists.
+
 2008-01-15  John W. Eaton  <jwe@octave.org>
 
 	* mappers.cc (install_mapper_functions): Move test for asin here
--- a/src/pt-assign.cc	Wed Jan 16 06:31:23 2008 +0000
+++ b/src/pt-assign.cc	Wed Jan 16 08:32:14 2008 +0000
@@ -209,14 +209,24 @@
 	    {
 	      error ("value on right hand side of assignment is undefined");
 	      eval_error ();
-	    }
-	  else if (rhs_val.is_cs_list ())
-	    {
-	      error ("invalid assignment of comma-separated list");
-	      eval_error ();
+	      return retval;
 	    }
 	  else
 	    {
+	      if (rhs_val.is_cs_list ())
+		{
+		  octave_value_list lst = rhs_val.list_value ();
+
+		  if (! lst.empty ())
+		    rhs_val = lst(0);
+		  else
+		    {
+		      error ("invalid number of elements on RHS of assignment");
+		      eval_error ();
+		      return retval;
+		    }
+		}
+
 	      octave_lvalue ult = lhs->lvalue ();
 
 	      if (error_state)
@@ -385,9 +395,8 @@
 
 	      if (tmp.is_cs_list ())
 		{
-		  error ("invalid assignment of comma-separated list");
-		  eval_error ();
-		  return retval;
+		  rhs_val = tmp.list_value ();
+		  n = rhs_val.length ();
 		}
 	    }