changeset 21541:38c0c1f5cf57

Allow mixed structures and prop/val pairs in call to set (bug #47526) * graphics.cc (graphics_object::set): Check whether structures (octave_map) are present and handle them separately.
author mmuetzel <markus.muetzel@gmx.de>
date Thu, 24 Mar 2016 18:56:33 +0100
parents ffb4770ba079
children 7ba48ff6ce83
files libinterp/corefcn/graphics.cc
diffstat 1 files changed, 16 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/graphics.cc	Thu Mar 24 13:35:40 2016 +1100
+++ b/libinterp/corefcn/graphics.cc	Thu Mar 24 18:56:33 2016 +0100
@@ -2173,16 +2173,22 @@
   if (nargin == 0)
     error ("graphics_object::set: Nothing to set");
 
-  if (nargin % 2 != 0)
-    error ("set: invalid number of arguments");
-
-  for (int i = 0; i < nargin; i += 2)
-    {
-      caseless_str pname = args(i).xstring_value ("set: argument %d must be a property name", i);
-
-      octave_value val = args(i+1);
-
-      set_value_or_default (pname, val);
+  for (int i = 0; i < nargin; )
+    {
+      if (args(i).is_map () )
+        {
+          set (args(i).map_value ());
+          i++;
+        }
+      else if (i < nargin - 1)
+        {
+          caseless_str pname = args(i).xstring_value ("set: argument %d must be a property name", i);
+          octave_value val = args(i+1);
+          set_value_or_default (pname, val);
+          i += 2;
+        }
+      else
+        error ("set: invalid number of arguments");
     }
 }