|
From: | David Bateman |
Subject: | Re: [changeset] property value not paired with name in __add_datasource__.m |
Date: | Mon, 01 Sep 2008 15:32:20 +0200 |
User-agent: | Thunderbird 2.0.0.16 (X11/20080725) |
Ben Abbott wrote:
On Sep 1, 2008, at 6:30 AM, David Bateman wrote:This is not the correct fix as __add_datasource__ is looking for a prop/val pair with the name ?DataSource. It doesn't however make the assumption that the other arguments that are passed are all property/value pairs, and in some cases they are.Trying to generate or error with plot(1:10,1:10,"LineWidth", 3)the code works correctly. I then tried a rebuild of voroni.eps with the changeset I just sent and the build when find. I'd therefore suggest not making the change to __add_datasource__ you suggest..Regards Davidoctave:1> plot(1:10,1:10,"LineWidth", 3) error: set: invalid number of arguments error: called from:error: /Users/bpabbott/Development/mercurial/octave-3-0-0/scripts/plot/__plt2vv__.m at line 83, column 7 error: /Users/bpabbott/Development/mercurial/octave-3-0-0/scripts/plot/__plt2__.m at line 68, column 14 error: /Users/bpabbott/Development/mercurial/octave-3-0-0/scripts/plot/__plt__.m at line 79, column 10 error: /Users/bpabbott/Development/mercurial/octave-3-0-0/scripts/plot/plot.m at line 189, column 5The problem appears to remains.
Is this in the 3.1.51+ sources or the 3.0.2+ sources as implied by octave-3-0-0 above? I'm assuming its 3.1.51+
Ok, this is odd. This works find here.
I identified the problem is in __plt2vv__.m [...] 69 hg = hggroup (); 70 retval = hg;71 properties = __add_datasource__ ("__plt2vv__", hg, {"x", "y", "z"},72 properties{:}); 73 74 h = line (x, y, "keylabel", key, "color", color, 75 "linestyle", options.linestyle, 76 "marker", options.marker, "parent", hg); 77 78 __add_line_series__ (h, hg); 79 if (! isempty (properties)) 80 set (hg, properties{:}); 81 endif Prior to line 71"properties" is set as { [1,1] = LineWidth [1,2] = 3 } Subsequently, "properties is set as { [1,1] = LineWidth }The scripts __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?
The function __add_datasource__ is suppose to find prop/value pairs in an arbitrary list of arguments that have the property name "?DataSource" in a case insensitive manner. Thus something like
hg = hggroup(); args{1} = "g+"; args{2} = "YDataSource"; args{3} = "sin(x)"; args = __add_datasource__ ("myfunc", hg, {"x","y"}, args{:});is supposed to add the properties xdatasource and ydatasource to the hggroup passed, set ydatasource to the string "sin(x)" and return the argument list args{1} = "g+";
args get(hg)will confirm this. Note that the above is a realistic case that is supposed to be handled by __add_datasource__ in that the LineStyle is a single argument and not a property/value pair. Now the issue you are seeing is characterized by
clear all hg = hggroup (); args {1} = "LineWidth"; args{2} = 3; args = __add_datasource__ ("myfunc", hg, {"x", "y","z"}, args{:}) This returns args = { [1,1] = LineWidth [1,2] = 3 }for me as it should. Whereas from what you are saying it returns "LineWdith". Can you confirm
D.
Beb Ben
-- David Bateman address@hiddenMotorola 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
[Prev in Thread] | Current Thread | [Next in Thread] |