octave-maintainers
[Top][All Lists]
Advanced

[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;
 }

reply via email to

[Prev in Thread] Current Thread [Next in Thread]