[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [unclassified] improved get, set - to accept handle vectors
From: |
John W. Eaton |
Subject: |
Re: [unclassified] improved get, set - to accept handle vectors |
Date: |
Fri, 15 Jun 2007 14:21:22 -0400 |
On 15-Jun-2007, Kai Habel wrote:
| O.k. after setting tabstop to 8, I get the following patch. The
| indentation looks better now. Does this work for you?
I checked in your patch with the following additional changes.
Thanks,
jwe
Index: src/graphics.cc
===================================================================
RCS file: /cvs/octave/src/graphics.cc,v
retrieving revision 1.19
diff -u -u -r1.19 graphics.cc
--- src/graphics.cc 15 Jun 2007 18:07:29 -0000 1.19
+++ src/graphics.cc 15 Jun 2007 18:13:07 -0000
@@ -2146,6 +2146,8 @@
if (! error_state)
{
+ bool request_drawnow = false;
+
for (octave_idx_type n = 0; n < hcv.length (); n++)
{
graphics_object obj = gh_manager::get_object (hcv(n));
@@ -2154,11 +2156,17 @@
{
obj.set (args.splice (0, 1));
- feval ("__request_drawnow__");
+ request_drawnow = true;
}
else
- error ("set: invalid handle (= %g)", hcv(n));
+ {
+ error ("set: invalid handle (= %g)", hcv(n));
+ break;
+ }
}
+
+ if (! error_state && request_drawnow)
+ feval ("__request_drawnow__");
}
else
error ("set: expecting graphics handle as first argument");
@@ -2189,7 +2197,11 @@
if (! error_state)
{
- for (octave_idx_type n = 0; n < hcv.length (); n++)
+ octave_idx_type len = hcv.length ();
+
+ vlist.resize (len);
+
+ for (octave_idx_type n = 0; n < len; n++)
{
graphics_object obj = gh_manager::get_object (hcv(n));
@@ -2204,11 +2216,17 @@
if (! error_state)
vlist(n) = obj.get (property);
else
- error ("get: expecting property name as second
argument");
+ {
+ error ("get: expecting property name as second
argument");
+ break;
+ }
}
}
else
- error ("get: invalid handle (= %g)", hcv(n));
+ {
+ error ("get: invalid handle (= %g)", hcv(n));
+ break;
+ }
}
}
else
@@ -2217,13 +2235,15 @@
else
print_usage ();
- if (vlist.length () > 1)
+ if (! error_state)
{
- Cell c(vlist);
- retval = c;
+ octave_idx_type len = vlist.length ();
+
+ if (len > 1)
+ retval = Cell (vlist);
+ else if (len == 1)
+ retval = vlist(0);
}
- else
- retval = vlist(0);
return retval;
}