Mercurial > forge
changeset 9445:675c4333424b octave-forge
control: use assignin for set command, this allows set (sys, "key", value) without return value
author | paramaniac |
---|---|
date | Thu, 16 Feb 2012 07:12:40 +0000 |
parents | e8b75df0bf70 |
children | 69ee0bc898eb |
files | main/control/inst/@lti/set.m |
diffstat | 1 files changed, 6 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/main/control/inst/@lti/set.m Wed Feb 15 21:15:20 2012 +0000 +++ b/main/control/inst/@lti/set.m Thu Feb 16 07:12:40 2012 +0000 @@ -41,12 +41,7 @@ retsys = sys; # would lead to unwanted output when using endif # set (sys) - elseif (nargout == 0) # set (sys, "prop1", val1, ...) - - warning ("lti: set: use sys = get (sys, 'property1', ...) to save changes"); - warning (" octave does not support pass by reference"); - - else # sys = set (sys, "prop1", val1, ...) + else # set (sys, "prop1", val1, ...), sys = set (sys, "prop1", val1, ...) if (rem (nargin-1, 2)) error ("lti: set: properties and values must come in pairs"); @@ -99,7 +94,11 @@ endswitch endfor - retsys = sys; + if (nargout == 0) # set (sys, "prop1", val1, ...) + assignin ("caller", inputname (1), sys); + else # sys = set (sys, "prop1", val1, ...) + retsys = sys; + endif endif