[changeset] property value not paired with name in __add_datasource__.m
David Bateman
David.Bateman at motorola.com
Mon Sep 1 08:35:24 CDT 2008
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.
--
David Bateman David.Bateman at motorola.com
Motorola Labs - Paris +33 1 69 35 48 04 (Ph)
Parc Les Algorithmes, Commune de St Aubin +33 6 72 01 06 33 (Mob)
91193 Gif-Sur-Yvette FRANCE +33 1 69 35 77 01 (Fax)
The information contained in this communication has been classified as:
[x] General Business Information
[ ] Motorola Internal Use Only
[ ] Motorola Confidential Proprietary
More information about the Octave-maintainers
mailing list