diff scripts/plot/feather.m @ 9502:69a57c59868c

compass.m, feather.m: simplify argument processing
author John W. Eaton <jwe@octave.org>
date Thu, 06 Aug 2009 15:09:53 -0400
parents 16f53d29049f
children 95c3e38098bf
line wrap: on
line diff
--- a/scripts/plot/feather.m
+++ b/scripts/plot/feather.m
@@ -49,32 +49,29 @@
   [h, varargin, nargin] = __plt_get_axis_arg__ ("feather", varargin{:});
 
   arrowsize = 0.25;
-  firstnonnumeric = Inf;
-  for i = 1:nargin
-    if (! isnumeric (varargin{i}))
-      firstnonnumeric = i;
-      break;
-    endif
-  endfor
 
-  if (nargin < 2 || firstnonnumeric < 2)
+  if (nargin == 0)
+    print_usage ();
+  elseif (nargin == 1 || (nargin == 2 && ! isnumeric (varargin{2})))
     ioff = 2;
-    z = varargin {1} (:) .';
+    z = varargin{1}(:).';
     u = real (z);
     v = imag (z);
-  else
+  elseif (nargin > 1 && isnumeric (varargin{2}))
     ioff = 3;
-    u = varargin {1} (:) .';
-    v = varargin {2} (:) .';
+    u = varargin{1}(:).';
+    v = varargin{2}(:).';
   endif
 
   line_spec = "b-";
+  have_line_spec = false;
   while (ioff <= nargin)
     arg = varargin{ioff++};
     if ((ischar (arg) || iscell (arg)) && ! have_line_spec)
       [linespec, valid] = __pltopt__ ("feather", arg, false);
       if (valid)
 	line_spec = arg;
+	have_line_spec = false;
 	break;
       else
 	error ("feather: invalid linespec");