[Scilab-Dev] get(h_matrix, prop) changed from 5.5.2 to 6.0.0, inconsistent in both cases

Samuel Gougeon sgougeon at free.fr
Wed Feb 6 08:48:22 CET 2019


Le 06/02/2019 à 08:14, Stéphane Mottelet a écrit :
>
> Hello,
>
> Le 06/02/2019 à 04:16, Samuel Gougeon a écrit :
>>
>> Hello,
>>
>> In preparation to Scilab 6.0.2, some unitary or non-regression tests 
>> about graphics and GUI show some changes about the format of some 
>> properties:
>>
>> test_run graphics plot2d_demo show_error
>> test_run graphics plot_demo show_error
>> test_run graphics bug_14042 show_error
>> test_run gui layer show_error
>>
>> The first fixes simply propose to update the .dia.ref with the 
>> transpose of properties values
>> (e.g. https://codereview.scilab.org/#/c/20768 )
>>
>> However, the analysis shows that the behavior of get(), that is also 
>> called from %h_e(),
>> changed from Scilab 5.5.2 to Scilab 6.0.0.
>>
>> In both cases, and up to now, the size of the *get(h, prop)* output 
>> is not consistent when h is a vector of handles.
>>
>> In *5.5.2*:, the output is always a row:
>> -->plot();
>> -->f = gcf(); Axes = f.children
>>  Axes  =
>> 2 by 1 matrix of handles:
>> =========================
>> Axes
>> Axes
>>
>> -->get(Axes, "visible")
>>  ans  =
>> !on  on  !
>> -->get(Axes*'*, "visible")
>>  ans  =
>> !on  on  !
>>
>> In *6.0.0* and up to now (6.0.2-), the output is always a column:
>>
>> --> f = gcf(); Axes = f.children
>>  Axes  =
>> 2 by 1 matrix of handles:
>> =========================
>> Axes
>> Axes
>>
>> --> get(Axes, "visible")
>>  ans  =
>> !on  !
>> !on  !
>> --> get(Axes*'*, "visible")
>>  ans  =
>> !on  !
>> !on  !
>>
>> To me, the default size of the output should match the size of the 
>> matrix of handles.
>>
>> Shouldn't it?
>>
>> When the value of the property is not scalar, it is the user's 
>> responsability to
>> reshape the matrix of handles in a way that is compatible with the 
>> purpose.
>>
> Sometimes the user does not even know how to resize if the values do 
> not have the same size:
>

It is always possible to split get(H,prop) with an external loop in case 
of heterogeneous sizes of the set of  H(i).prop. This is still the 
user's responsability.
But many properties have a scalar value.
For instance, gcf() has 27 scalar properties over 33. gca() has 35 
scalar properties over 61. etc
This is why imho, /by default/, concatenating ouputs according to the H 
size would be more handy.

Best regards
Samuel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/dev/attachments/20190206/0e440119/attachment.htm>


More information about the dev mailing list