Ben Abbott wrote:
On Sep 1, 2008, at 9:06 AM, Ben Abbott wrote:
The script __add_datasource__ does not preserve the property values.
I'm confused as to how __add_datasource__ is intended to work. Is
this behavior correct?
If yours works properly (different, I assume), perhaps our
sources are out of sync?
Ben
I'm presently unable to pull from jwe's archive :-(
To apply David's patch I edited the sources myself. My archive is
now a bit of a mess :-(
In any event, I have a solution (I think). The functioning code for
*my* __add_datasource__.m is below. I've modified line 37. It was
"while (i < numel (varargin))".
David, the test plot you suggested works now. Is my inferred
solution proper?
21 function newargs = __add_datasource__ (fcn, h, data, varargin)
22
23 if (nargin < 3)
24 error ("internal error");
25 endif
26
27 if (ischar (data))
28 data = {data};
29 endif
30
31 for i = 1 : numel (data)
32 addproperty (strcat (data{i}, "datasource"), h, "string", "");
33 endfor
34
35 i = 1;
36 newargs = {};
37 while (i <= numel (varargin))
38 arg = varargin{i++};
39 if (ischar (arg) && length (arg > 1) && strcmpi (arg(2:end),
"datasource"))
40 arg = tolower (arg);
41 val = varargin{i++};
42 if (ischar (val))
43 set (h, arg, val);
44 else
45 error ("%s: expecting data source to be a string", fcn);
46 endif
47 else
48 newargs{end + 1} = arg;
49 endif
50 endwhile
51 endfunction
Ben
Ok, we are out of sync.. My __add_datasource__ reads..
function newargs = __add_datasource__ (fcn, h, data, varargin)
if (nargin < 3)
error ("internal error");
endif
if (ischar (data))
data = {data};
endif
for i = 1 : numel (data)
addproperty (strcat (data{i}, "datasource"), h, "string", "");
endfor
i = 0;
newargs = {};
while (i < numel (varargin))
arg = varargin{++i};
if (i != numel(varargin) && ischar (arg) &&
length (arg > 1) && strcmpi (arg(2:end), "datasource"))
arg = tolower (arg);
val = varargin{++i};
if (ischar (val))
set (h, arg, val);
else
error ("%s: expecting data source to be a string", fcn);
endif
else
newargs{end + 1} = arg;
endif
endwhile
endfunction
As you say I can't check what John actually has in his repository as
I can't get to it at the moment.
D.