Merge remote-tracking branch 'origin/5.4' 90/10190/1
Sylvestre Ledru [Fri, 11 Jan 2013 08:50:23 +0000 (09:50 +0100)]
Change-Id: I14d1f52b1985a8a85720ecac6b87b04758f84f48

778 files changed:
scilab/CHANGES_5.4.X
scilab/CHANGES_5.5.X [new file with mode: 0644]
scilab/Makefile.am
scilab/Makefile.in
scilab/Version.incl
scilab/configure
scilab/configure.ac
scilab/libs/GetWindowsVersion/GetWindowsVersion.rc
scilab/libs/MALLOC/MALLOC.rc
scilab/libs/doublylinkedlist/doublylinkedlist.rc
scilab/libs/dynamiclibrary/dynamiclibrary.rc
scilab/libs/hashtable/hashtable.rc
scilab/libs/libst/libst.rc
scilab/modules/action_binding/src/c/action_binding.rc
scilab/modules/action_binding/src/noaction_binding/noaction_binding.rc
scilab/modules/api_scilab/Makefile.am
scilab/modules/api_scilab/Makefile.in
scilab/modules/api_scilab/api_scilab.vcxproj
scilab/modules/api_scilab/api_scilab.vcxproj.filters
scilab/modules/api_scilab/core_Import.def
scilab/modules/api_scilab/help/en_US/api_scilab.xml
scilab/modules/api_scilab/help/en_US/handle/A_isHandleType.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/handle/B_getScalarHandle.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/handle/C_createScalarHandle.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/handle/D_handleExample.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/low_level_functions/handle_reading_api.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/low_level_functions/handle_writing_api.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/optionals/getOptionals.xml [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_error.h
scilab/modules/api_scilab/includes/api_handle.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_internal_handle.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_optional.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_scilab.h
scilab/modules/api_scilab/includes/api_string.h
scilab/modules/api_scilab/src/c/api_scilab.rc
scilab/modules/api_scilab/src/cpp/api_handle.cpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/api_optional.cpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/api_string.cpp
scilab/modules/arnoldi/src/c/arnoldi.rc
scilab/modules/atoms/help/en_US/_atomsSummary.xml
scilab/modules/atoms/help/en_US/atomsGetLoadedPath.xml
scilab/modules/atoms/tests/unit_tests/atomsVersion.tst
scilab/modules/boolean/src/c/boolean.rc
scilab/modules/boolean/src/fortran/boolean_f.rc
scilab/modules/cacsd/Makefile.am
scilab/modules/cacsd/Makefile.in
scilab/modules/cacsd/macros/hallchart.sci
scilab/modules/cacsd/macros/nyquist.sci
scilab/modules/cacsd/sci_gateway/c/gw_slicot.c
scilab/modules/cacsd/sci_gateway/c/sci_dhinf.c [new file with mode: 0644]
scilab/modules/cacsd/sci_gateway/c/sci_hinf.c [new file with mode: 0644]
scilab/modules/cacsd/sci_gateway/c/sci_linmeq.c [new file with mode: 0644]
scilab/modules/cacsd/sci_gateway/c/sci_mucomp.c [new file with mode: 0644]
scilab/modules/cacsd/sci_gateway/c/sci_rankqr.c
scilab/modules/cacsd/sci_gateway/c/sci_rankqr.h
scilab/modules/cacsd/sci_gateway/c/sci_ricc2.c [new file with mode: 0644]
scilab/modules/cacsd/sci_gateway/c/sci_rrankqr.c [new file with mode: 0644]
scilab/modules/cacsd/sci_gateway/c/sci_zrankqr.c [new file with mode: 0644]
scilab/modules/cacsd/sci_gateway/fortran/sci_f_dhinf.f [deleted file]
scilab/modules/cacsd/sci_gateway/fortran/sci_f_hinf.f [deleted file]
scilab/modules/cacsd/sci_gateway/fortran/sci_f_linmeq.f [deleted file]
scilab/modules/cacsd/sci_gateway/fortran/sci_f_mucomp.f [deleted file]
scilab/modules/cacsd/sci_gateway/fortran/sci_f_rankqr.f [deleted file]
scilab/modules/cacsd/sci_gateway/fortran/sci_f_ricc2.f [deleted file]
scilab/modules/cacsd/sci_gateway/fortran/sci_f_zrankqr.f [deleted file]
scilab/modules/cacsd/src/c/Slicot_f_Import.def
scilab/modules/cacsd/src/c/cacsd.rc
scilab/modules/cacsd/src/c/cacsd.vcxproj
scilab/modules/cacsd/src/c/cacsd.vcxproj.filters
scilab/modules/cacsd/src/fortran/Slicot_f_Import.def
scilab/modules/cacsd/src/fortran/cacsd_f.rc
scilab/modules/cacsd/src/fortran/cacsd_f.vfproj
scilab/modules/cacsd/src/fortran/cacsd_f2c.vcxproj
scilab/modules/cacsd/src/fortran/cacsd_f2c.vcxproj.filters
scilab/modules/cacsd/src/slicot/slicot_f/slicot_f.rc
scilab/modules/call_scilab/src/c/call_scilab.rc
scilab/modules/commons/src/c/commons.rc
scilab/modules/commons/src/fortran/commons_f.rc
scilab/modules/completion/src/c/completion.rc
scilab/modules/completion/src/nocompletion/nocompletion.rc
scilab/modules/console/src/c/console.rc
scilab/modules/console/src/noconsole/noconsole.rc
scilab/modules/core/includes/stack-c.h
scilab/modules/core/includes/version.h.in
scilab/modules/core/includes/version.h.vc
scilab/modules/core/sci_gateway/c/sci_getscilabmode.c
scilab/modules/core/src/c/returnProperty.c
scilab/modules/core/src/c/stack2.c
scilab/modules/core/tests/nonreg_tests/bug_11524.dia.ref [new file with mode: 0644]
scilab/modules/core/tests/nonreg_tests/bug_11524.tst [new file with mode: 0644]
scilab/modules/data_structures/src/c/data_structures.rc
scilab/modules/data_structures/src/fortran/data_structures_f.rc
scilab/modules/differential_equations/src/c/differential_equations.rc
scilab/modules/differential_equations/src/fortran/differential_equations_f.rc
scilab/modules/double/sci_gateway/fortran/matpow.f
scilab/modules/double/src/c/double.rc
scilab/modules/double/src/fortran/double_f.rc
scilab/modules/dynamic_link/src/c/dynamic_link.rc
scilab/modules/dynamic_link/src/fortran/dynamic_link_f.rc
scilab/modules/elementary_functions/sci_gateway/c/sci_gsort.c
scilab/modules/elementary_functions/src/c/core_Import.def
scilab/modules/elementary_functions/src/c/elementary_functions.rc
scilab/modules/elementary_functions/src/fortran/eispack/eispack_f.rc
scilab/modules/elementary_functions/src/fortran/elementary_functions_f.rc
scilab/modules/elementary_functions/src/fortran/linpack/linpack_f.rc
scilab/modules/elementary_functions/src/fortran/slatec/slatec_f.rc
scilab/modules/elementary_functions/tests/unit_tests/binary.dia.ref
scilab/modules/elementary_functions/tests/unit_tests/binary.tst
scilab/modules/elementary_functions/tests/unit_tests/logspace.dia.ref
scilab/modules/elementary_functions/tests/unit_tests/logspace.tst
scilab/modules/elementary_functions/tests/unit_tests/max.dia.ref
scilab/modules/elementary_functions/tests/unit_tests/max.tst
scilab/modules/external_objects/external_objects.rc
scilab/modules/fftw/sci_gateway/c/sci_disposefftwlibrary.c
scilab/modules/fftw/sci_gateway/c/sci_fftw.c
scilab/modules/fftw/sci_gateway/c/sci_fftw_flags.c
scilab/modules/fftw/sci_gateway/c/sci_fftw_forget_wisdom.c
scilab/modules/fftw/sci_gateway/c/sci_fftwlibraryisloaded.c
scilab/modules/fftw/sci_gateway/c/sci_get_fftw_wisdom.c
scilab/modules/fftw/sci_gateway/c/sci_loadfftwlibrary.c
scilab/modules/fftw/sci_gateway/c/sci_set_fftw_wisdom.c
scilab/modules/fftw/src/c/fftw.rc
scilab/modules/fftw/src/nofftw/nofftw.rc
scilab/modules/fileio/src/c/fileio.rc
scilab/modules/functions/src/c/functions.rc
scilab/modules/functions/src/fortran/functions_f.rc
scilab/modules/graphic_export/Makefile.am
scilab/modules/graphic_export/Makefile.in
scilab/modules/graphic_export/graphic_export.rc
scilab/modules/graphic_export/graphic_export.vcxproj
scilab/modules/graphic_export/graphic_export.vcxproj.filters
scilab/modules/graphic_export/sci_gateway/c/xs2file.c [moved from scilab/modules/graphic_export/src/c/xs2file.c with 53% similarity]
scilab/modules/graphic_export/sci_gateway/c/xs2file.h [moved from scilab/modules/graphic_export/includes/xs2file.h with 81% similarity]
scilab/modules/graphic_export/src/nographic_export/nographic_export.rc
scilab/modules/graphics/core_Import.def
scilab/modules/graphics/graphic.rc
scilab/modules/graphics/includes/BasicAlgos.h
scilab/modules/graphics/includes/Champ.h
scilab/modules/graphics/includes/Contour.h
scilab/modules/graphics/includes/DefaultCommandArg.h
scilab/modules/graphics/includes/DestroyObjects.h
scilab/modules/graphics/includes/DrawObjects.h
scilab/modules/graphics/includes/Format.h
scilab/modules/graphics/includes/GetCommandArg.h
scilab/modules/graphics/includes/GrayPlot.h
scilab/modules/graphics/includes/PloEch.h
scilab/modules/graphics/includes/Plot2d.h
scilab/modules/graphics/includes/SetProperty.h
scilab/modules/graphics/includes/StringMatrix.h
scilab/modules/graphics/includes/TerminateGraphics.h
scilab/modules/graphics/includes/axesScale.h
scilab/modules/graphics/includes/dynlib_graphics.h
scilab/modules/graphics/includes/getDictionaryGetProperties.h
scilab/modules/graphics/includes/getDictionarySetProperties.h
scilab/modules/graphics/includes/graphicModuleLoad.h
scilab/modules/graphics/includes/gw_graphics.h
scilab/modules/graphics/includes/math_graphics.h
scilab/modules/graphics/includes/pixel_mode.h
scilab/modules/graphics/includes/sciCall.h
scilab/modules/graphics/includes/sciMatrix.h
scilab/modules/graphics/locales/graphics.pot
scilab/modules/graphics/sci_gateway/c/gw_graphics.c
scilab/modules/graphics/sci_gateway/c/sci_Legend.c
scilab/modules/graphics/sci_gateway/c/sci_StringBox.c
scilab/modules/graphics/sci_gateway/c/sci_champ.c
scilab/modules/graphics/sci_gateway/c/sci_clear_pixmap.c
scilab/modules/graphics/sci_gateway/c/sci_contour2di.c
scilab/modules/graphics/sci_gateway/c/sci_copy.c
scilab/modules/graphics/sci_gateway/c/sci_delete.c
scilab/modules/graphics/sci_gateway/c/sci_demo.c
scilab/modules/graphics/sci_gateway/c/sci_draw.c
scilab/modules/graphics/sci_gateway/c/sci_drawaxis.c
scilab/modules/graphics/sci_gateway/c/sci_drawlater.c
scilab/modules/graphics/sci_gateway/c/sci_drawnow.c
scilab/modules/graphics/sci_gateway/c/sci_fec.c
scilab/modules/graphics/sci_gateway/c/sci_geom3d.c
scilab/modules/graphics/sci_gateway/c/sci_get.c
scilab/modules/graphics/sci_gateway/c/sci_glue.c
scilab/modules/graphics/sci_gateway/c/sci_grayplot.c
scilab/modules/graphics/sci_gateway/c/sci_is_handle_valid.c
scilab/modules/graphics/sci_gateway/c/sci_matplot.c
scilab/modules/graphics/sci_gateway/c/sci_matplot1.c
scilab/modules/graphics/sci_gateway/c/sci_move.c
scilab/modules/graphics/sci_gateway/c/sci_newaxes.c
scilab/modules/graphics/sci_gateway/c/sci_param3d.c
scilab/modules/graphics/sci_gateway/c/sci_param3d1.c
scilab/modules/graphics/sci_gateway/c/sci_plot2d.c
scilab/modules/graphics/sci_gateway/c/sci_plot2d1.c
scilab/modules/graphics/sci_gateway/c/sci_plot3d.c
scilab/modules/graphics/sci_gateway/c/sci_relocate_handle.c
scilab/modules/graphics/sci_gateway/c/sci_rotate_axes.c
scilab/modules/graphics/sci_gateway/c/sci_rubberbox.c
scilab/modules/graphics/sci_gateway/c/sci_set.c
scilab/modules/graphics/sci_gateway/c/sci_show_pixmap.c
scilab/modules/graphics/sci_gateway/c/sci_show_window.c
scilab/modules/graphics/sci_gateway/c/sci_swap_handles.c
scilab/modules/graphics/sci_gateway/c/sci_unglue.c
scilab/modules/graphics/sci_gateway/c/sci_unzoom.c
scilab/modules/graphics/sci_gateway/c/sci_winsid.c
scilab/modules/graphics/sci_gateway/c/sci_xarc.c
scilab/modules/graphics/sci_gateway/c/sci_xarcs.c
scilab/modules/graphics/sci_gateway/c/sci_xarrows.c
scilab/modules/graphics/sci_gateway/c/sci_xchange.c
scilab/modules/graphics/sci_gateway/c/sci_xclick.c
scilab/modules/graphics/sci_gateway/c/sci_xdel.c
scilab/modules/graphics/sci_gateway/c/sci_xfarcs.c
scilab/modules/graphics/sci_gateway/c/sci_xfpoly.c
scilab/modules/graphics/sci_gateway/c/sci_xfpolys.c
scilab/modules/graphics/sci_gateway/c/sci_xget.c
scilab/modules/graphics/sci_gateway/c/sci_xgetmouse.c
scilab/modules/graphics/sci_gateway/c/sci_xgraduate.c
scilab/modules/graphics/sci_gateway/c/sci_xgrid.c
scilab/modules/graphics/sci_gateway/c/sci_xlfont.c
scilab/modules/graphics/sci_gateway/c/sci_xname.c
scilab/modules/graphics/sci_gateway/c/sci_xpoly.c
scilab/modules/graphics/sci_gateway/c/sci_xpolys.c
scilab/modules/graphics/sci_gateway/c/sci_xrect.c
scilab/modules/graphics/sci_gateway/c/sci_xrects.c
scilab/modules/graphics/sci_gateway/c/sci_xsegs.c
scilab/modules/graphics/sci_gateway/c/sci_xset.c
scilab/modules/graphics/sci_gateway/c/sci_xstring.c
scilab/modules/graphics/sci_gateway/c/sci_xstringb.c
scilab/modules/graphics/sci_gateway/c/sci_xtitle.c
scilab/modules/graphics/sci_gateway/c/sci_zoom_rect.c
scilab/modules/graphics/sci_gateway/graphics_gateway.xml
scilab/modules/graphics/src/c/Axes.c
scilab/modules/graphics/src/c/BasicAlgos.c
scilab/modules/graphics/src/c/BuildObjects.c
scilab/modules/graphics/src/c/Champ.c
scilab/modules/graphics/src/c/CheckScilabXgc.h
scilab/modules/graphics/src/c/Contour.c
scilab/modules/graphics/src/c/DefaultCommandArg.c
scilab/modules/graphics/src/c/DestroyObjects.c
scilab/modules/graphics/src/c/DllmainGraphics.c
scilab/modules/graphics/src/c/DrawObjects.c
scilab/modules/graphics/src/c/FeC.c
scilab/modules/graphics/src/c/Fec.h
scilab/modules/graphics/src/c/Format.c
scilab/modules/graphics/src/c/GetCommandArg.c
scilab/modules/graphics/src/c/GetProperty.c
scilab/modules/graphics/src/c/Plo2dn.c
scilab/modules/graphics/src/c/SetProperty.c
scilab/modules/graphics/src/c/StringBox.c
scilab/modules/graphics/src/c/StringBox.h
scilab/modules/graphics/src/c/StringMatrix.c
scilab/modules/graphics/src/c/TerminateGraphics.c
scilab/modules/graphics/src/c/XsetXgetParameters.h
scilab/modules/graphics/src/c/axesScale.c
scilab/modules/graphics/src/c/getHandleProperty/CheckTicksProperty.c
scilab/modules/graphics/src/c/getHandleProperty/CheckTicksProperty.h
scilab/modules/graphics/src/c/getHandleProperty/GetHashTable.c
scilab/modules/graphics/src/c/getHandleProperty/GetHashTable.h
scilab/modules/graphics/src/c/getHandleProperty/SetHashTable.c
scilab/modules/graphics/src/c/getHandleProperty/SetHashTable.h
scilab/modules/graphics/src/c/getHandleProperty/SetPropertyStatus.c
scilab/modules/graphics/src/c/getHandleProperty/SetPropertyStatus.h
scilab/modules/graphics/src/c/getHandleProperty/getHandleProperty.h
scilab/modules/graphics/src/c/getHandleProperty/getPropertyAssignedValue.c
scilab/modules/graphics/src/c/getHandleProperty/getPropertyAssignedValue.h
scilab/modules/graphics/src/c/getHandleProperty/get_alignment_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_anti_aliasing_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_arc_drawing_method_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_arrow_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_auto_clear_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_auto_dimensionning_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_auto_position_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_auto_resize_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_auto_scale_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_auto_ticks_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_axes_bounds_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_axes_reverse_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_axes_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_axes_visible_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_bar_layout_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_bar_width_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_box_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_callback_type_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_cdata_mapping_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_clip_box_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_clip_state_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_closed_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_color_flag_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_color_map_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_color_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_color_range_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_colored_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_cube_scaling_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_current_axes_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_data_bounds_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_data_mapping_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_data_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_default_axes_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_default_figure_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_event_handler_enable_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_event_handler_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_figure_id_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_figure_name_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_figure_position_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_figure_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_figure_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_figures_id_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_fill_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_filled_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_font_angle_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_font_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_font_foreground_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_font_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_font_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_foreground_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_format_n_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_grid_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_hidden_axis_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_hidden_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_immediate_drawing_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_info_message_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_interp_color_mode.c
scilab/modules/graphics/src/c/getHandleProperty/get_interp_color_vector.c
scilab/modules/graphics/src/c/getHandleProperty/get_isoview_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_labels_font_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_labels_font_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_labels_font_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_legend_location_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_line_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_line_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_log_flags_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_margins_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_mark_background_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_mark_foreground_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_mark_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_mark_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_mark_size_unit_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_mark_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_old_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_outside_colors_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_pixel_drawing_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_pixmap_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_rotation_angles_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_rotation_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_screen_position_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_segs_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_sub_tics_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_surface_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_surface_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_text_box_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_text_box_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_text_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_thickness_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tics_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tics_direction_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tics_label_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tics_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tight_limits_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_triangles_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_type_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_view_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_viewport_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_visible_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_x_location_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_x_shift_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_x_ticks_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_xtics_coord_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_y_label_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_y_location_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_y_shift_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_y_ticks_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_ytics_coord_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_z_bounds_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_z_label_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_z_shift_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_z_ticks_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_zoom_box_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_zoom_state_property.c
scilab/modules/graphics/src/c/getHandleProperty/setGetHashTable.c
scilab/modules/graphics/src/c/getHandleProperty/setGetHashTable.h
scilab/modules/graphics/src/c/getHandleProperty/setHandleProperty.h
scilab/modules/graphics/src/c/getHandleProperty/set_alignment_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_anti_aliasing_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_arc_drawing_method_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_arrow_size_factor_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_arrow_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_clear_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_dimensionning_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_position_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_resize_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_rotation_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_scale_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_ticks_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_axes_bounds_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_axes_reverse_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_axes_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_axes_visible_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_background_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_bar_layout_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_bar_width_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_box_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_callback_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_callback_type_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_cdata_mapping_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_children_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_clip_box_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_clip_state_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_closed_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_color_flag_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_color_map_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_color_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_color_range_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_colored_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_cube_scaling_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_current_axes_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_current_entity_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_current_figure_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_data_bounds_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_data_mapping_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_data_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_default_values_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_event_handler_enable_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_event_handler_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_closerequestfcn_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_id_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_name_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_position_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_resizefcn_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_fill_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_filled_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_font_angle_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_font_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_font_foreground_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_font_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_font_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_foreground_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_format_n_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_fractional_font_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_grid_position_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_grid_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_handle_visible_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_hidden_axis_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_hidden_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_immediate_drawing_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_info_message_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_interp_color_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_interp_color_vector_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_isoview_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_label_font_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_labels_font_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_labels_font_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_legend_location_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_line_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_line_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_links_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_log_flags_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_margins_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_mark_background_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_mark_foreground_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_mark_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_mark_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_mark_size_unit_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_mark_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_old_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_outside_colors_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_parent_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_pixel_drawing_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_pixmap_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_polyline_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_position_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_rotation_angles_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_rotation_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_screen_position_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_segs_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_sub_tics_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_surface_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_surface_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tag_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_text_box_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_text_box_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_text_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_thickness_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_direction_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_labels_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_segment_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tight_limits_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_title_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_triangles_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_user_data_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_view_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_viewport_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_visible_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_x_label_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_x_location_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_x_shift_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_x_ticks_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_xtics_coord_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_y_label_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_y_location_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_y_shift_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_y_ticks_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_yticks_coord_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_z_bounds_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_z_label_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_z_shift_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_z_ticks_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_zoom_box_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_zoom_state_property.c
scilab/modules/graphics/src/c/get_ticks_utils.c
scilab/modules/graphics/src/c/get_ticks_utils.h
scilab/modules/graphics/src/c/graphicModuleLoad.c
scilab/modules/graphics/src/c/loadTextRenderingAPI.c
scilab/modules/graphics/src/c/math_graphics.c
scilab/modules/graphics/src/c/pixel_mode.c
scilab/modules/graphics/src/c/sciCall.c
scilab/modules/graphics/src/c/sciMatrix.c
scilab/modules/graphics/src/c/scitokenize.c
scilab/modules/graphics/src/c/scitokenize.h
scilab/modules/graphics/src/nographics/nographics.c
scilab/modules/graphics/src/nographics/nographics.rc
scilab/modules/gui/images/icons/aboutscilab.png
scilab/modules/gui/includes/InitUIMenu.h
scilab/modules/gui/includes/SetConsoleShowHiddenHandles.h
scilab/modules/gui/includes/SetUicontrolBackgroundColor.h
scilab/modules/gui/includes/SetUicontrolFontAngle.h
scilab/modules/gui/includes/SetUicontrolFontName.h
scilab/modules/gui/includes/SetUicontrolFontSize.h
scilab/modules/gui/includes/SetUicontrolFontUnits.h
scilab/modules/gui/includes/SetUicontrolFontWeight.h
scilab/modules/gui/includes/SetUicontrolHorizontalAlignment.h
scilab/modules/gui/includes/SetUicontrolListboxTop.h
scilab/modules/gui/includes/SetUicontrolMax.h
scilab/modules/gui/includes/SetUicontrolMin.h
scilab/modules/gui/includes/SetUicontrolPosition.h
scilab/modules/gui/includes/SetUicontrolRelief.h
scilab/modules/gui/includes/SetUicontrolSliderStep.h
scilab/modules/gui/includes/SetUicontrolString.h
scilab/modules/gui/includes/SetUicontrolTooltipString.h
scilab/modules/gui/includes/SetUicontrolUnits.h
scilab/modules/gui/includes/SetUicontrolValue.h
scilab/modules/gui/includes/SetUicontrolVerticalAlignment.h
scilab/modules/gui/includes/SetUimenuChecked.h
scilab/modules/gui/includes/SetUimenuLabel.h
scilab/modules/gui/includes/SetUiobjectEnable.h
scilab/modules/gui/includes/SetUiobjectForegroundColor.h
scilab/modules/gui/sci_gateway/c/sci_ClipBoard.c
scilab/modules/gui/sci_gateway/c/sci_delmenu.c
scilab/modules/gui/sci_gateway/c/sci_exportUI.c
scilab/modules/gui/sci_gateway/c/sci_getcallbackobject.c
scilab/modules/gui/sci_gateway/c/sci_helpbrowser.c
scilab/modules/gui/sci_gateway/c/sci_messagebox.c
scilab/modules/gui/sci_gateway/c/sci_progressionbar.c
scilab/modules/gui/sci_gateway/c/sci_setmenu.c
scilab/modules/gui/sci_gateway/c/sci_toolbar.c
scilab/modules/gui/sci_gateway/c/sci_uicontextmenu.c
scilab/modules/gui/sci_gateway/c/sci_uicontrol.c
scilab/modules/gui/sci_gateway/c/sci_uigetcolor.c
scilab/modules/gui/sci_gateway/c/sci_uigetdir.c [deleted file]
scilab/modules/gui/sci_gateway/c/sci_uigetfont.c
scilab/modules/gui/sci_gateway/c/sci_uimenu.c
scilab/modules/gui/sci_gateway/c/sci_uiwait.c
scilab/modules/gui/sci_gateway/c/sci_unsetmenu.c
scilab/modules/gui/sci_gateway/c/sci_waitbar.c
scilab/modules/gui/sci_gateway/c/sci_x_choice.c
scilab/modules/gui/sci_gateway/c/sci_x_choose.c
scilab/modules/gui/sci_gateway/c/sci_x_choose_modeless.c
scilab/modules/gui/sci_gateway/c/sci_x_dialog.c
scilab/modules/gui/sci_gateway/c/sci_x_mdialog.c
scilab/modules/gui/sci_gateway/cpp/sci_about.cpp
scilab/modules/gui/sci_gateway/cpp/sci_displaytree.cpp
scilab/modules/gui/sci_gateway/cpp/sci_fire_closing_finished.cpp
scilab/modules/gui/sci_gateway/cpp/sci_getinstalledlookandfeels.cpp
scilab/modules/gui/sci_gateway/cpp/sci_getlookandfeel.cpp
scilab/modules/gui/sci_gateway/cpp/sci_printfigure.cpp
scilab/modules/gui/sci_gateway/cpp/sci_printsetupbox.cpp
scilab/modules/gui/sci_gateway/cpp/sci_raise_window.cpp
scilab/modules/gui/sci_gateway/cpp/sci_setlookandfeel.cpp
scilab/modules/gui/sci_gateway/cpp/sci_toprint.cpp
scilab/modules/gui/sci_gateway/cpp/sci_uigetdir.cpp
scilab/modules/gui/sci_gateway/cpp/sci_uigetfile.cpp
scilab/modules/gui/sci_gateway/cpp/sci_uiputfile.cpp
scilab/modules/gui/sci_gateway/cpp/sci_usecanvas.cpp
scilab/modules/gui/src/c/gui.rc
scilab/modules/gui/src/cpp/InitUIMenu.cpp
scilab/modules/gui/src/cpp/SetConsoleShowHiddenHandles.cpp
scilab/modules/gui/src/cpp/SetUicontrolBackgroundColor.cpp
scilab/modules/gui/src/cpp/SetUicontrolFontAngle.cpp
scilab/modules/gui/src/cpp/SetUicontrolFontName.cpp
scilab/modules/gui/src/cpp/SetUicontrolFontSize.cpp
scilab/modules/gui/src/cpp/SetUicontrolFontUnits.cpp
scilab/modules/gui/src/cpp/SetUicontrolFontWeight.cpp
scilab/modules/gui/src/cpp/SetUicontrolHorizontalAlignment.cpp
scilab/modules/gui/src/cpp/SetUicontrolListboxTop.cpp
scilab/modules/gui/src/cpp/SetUicontrolMax.cpp
scilab/modules/gui/src/cpp/SetUicontrolMin.cpp
scilab/modules/gui/src/cpp/SetUicontrolPosition.cpp
scilab/modules/gui/src/cpp/SetUicontrolRelief.cpp
scilab/modules/gui/src/cpp/SetUicontrolSliderStep.cpp
scilab/modules/gui/src/cpp/SetUicontrolString.cpp
scilab/modules/gui/src/cpp/SetUicontrolTooltipString.cpp
scilab/modules/gui/src/cpp/SetUicontrolUnits.cpp
scilab/modules/gui/src/cpp/SetUicontrolValue.cpp
scilab/modules/gui/src/cpp/SetUicontrolVerticalAlignment.cpp
scilab/modules/gui/src/cpp/SetUimenuChecked.cpp
scilab/modules/gui/src/cpp/SetUimenuLabel.cpp
scilab/modules/gui/src/cpp/SetUiobjectEnable.cpp
scilab/modules/gui/src/cpp/SetUiobjectForegroundColor.cpp
scilab/modules/gui/src/cpp/displaytree.cpp
scilab/modules/gui/src/cpp/displaytree.hxx
scilab/modules/gui/src/nogui/nogui.rc
scilab/modules/hdf5/src/c/hdf5.rc
scilab/modules/helptools/data/pages/homepage-en_US.html
scilab/modules/helptools/data/pages/homepage-fr_FR.html
scilab/modules/helptools/data/pages/homepage-ru_RU.html
scilab/modules/helptools/src/c/helptools.rc
scilab/modules/history_browser/src/c/history_browser.rc
scilab/modules/history_browser/src/nohistory_browser/nohistory_browser.rc
scilab/modules/history_manager/sci_gateway/c/sci_addhistory.c
scilab/modules/history_manager/sci_gateway/c/sci_displayhistory.c
scilab/modules/history_manager/src/c/history_manager.rc
scilab/modules/integer/src/c/integer.rc
scilab/modules/integer/src/fortran/integer_f.rc
scilab/modules/interpolation/src/c/interpolation.rc
scilab/modules/interpolation/src/fortran/interpolation_f.rc
scilab/modules/intersci/src/lib/intersci.rc
scilab/modules/io/sci_gateway/c/sci_host.c
scilab/modules/io/src/c/io.rc
scilab/modules/io/src/fortran/io_f.rc
scilab/modules/javasci/javasci.rc
scilab/modules/jvm/src/c/libjvm.rc
scilab/modules/jvm/src/nojvm/nojvm.rc
scilab/modules/linear_algebra/src/c/linear_algebra.rc
scilab/modules/linear_algebra/src/fortran/linear_algebra_f.rc
scilab/modules/linear_algebra/tests/unit_tests/norm.dia.ref
scilab/modules/linear_algebra/tests/unit_tests/norm.tst
scilab/modules/localization/src/localization.rc
scilab/modules/matio/src/c/matio.rc
scilab/modules/matio/src/nomatio/nomatio.rc
scilab/modules/mexlib/src/libmat/libmat.rc
scilab/modules/mexlib/src/libmex/libmex.rc
scilab/modules/mexlib/src/libmx/libmx.rc
scilab/modules/optimization/sci_gateway/c/sci_qld.c
scilab/modules/optimization/sci_gateway/c/sci_qp_solve.c
scilab/modules/optimization/src/c/optimization.rc
scilab/modules/optimization/src/fortran/optimization_f.rc
scilab/modules/output_stream/src/c/msgs.c
scilab/modules/output_stream/src/c/output_stream.rc
scilab/modules/output_stream/src/fortran/output_stream_f.rc
scilab/modules/overloading/macros/%r_p_s.sci
scilab/modules/parallel/src/c/parallel.rc
scilab/modules/parameters/src/c/parameters.rc
scilab/modules/polynomials/help/en_US/poly.xml
scilab/modules/polynomials/help/fr_FR/poly.xml
scilab/modules/polynomials/sci_gateway/fortran/polops.f
scilab/modules/polynomials/sci_gateway/fortran/sci_f_poly.f
scilab/modules/polynomials/src/c/polynomials.rc
scilab/modules/polynomials/src/fortran/output_stream_Import.def
scilab/modules/polynomials/src/fortran/polynomials_f.rc
scilab/modules/preferences/src/c/preferences.rc
scilab/modules/randlib/src/c/randlib.rc
scilab/modules/randlib/src/fortran/randlib_f.rc
scilab/modules/randlib/src/norandlib/norandlib.rc
scilab/modules/renderer/renderer.rc
scilab/modules/renderer/src/norenderer/norenderer.rc
scilab/modules/scicos/macros/scicos_scicos/do_compile_superblock42.sci
scilab/modules/scicos/src/c/noscicos/noscicos.rc
scilab/modules/scicos/src/c/scicos.rc
scilab/modules/scicos/src/fortran/scicos_f.rc
scilab/modules/scicos/src/scicos_sundials/scicos_sundials.rc
scilab/modules/scicos_blocks/src/c/scicos_blocks.rc
scilab/modules/scicos_blocks/src/fortran/scicos_blocks_f.rc
scilab/modules/scinotes/src/c/scinotes.rc
scilab/modules/signal_processing/src/c/signal_processing.rc
scilab/modules/signal_processing/src/fortran/signal_processing_f.rc
scilab/modules/sound/sci_gateway/c/sci_PlaySound.c
scilab/modules/sound/sci_gateway/c/sci_beep.c
scilab/modules/sound/src/c/sound.rc
scilab/modules/sound/src/nosound/nosound.rc
scilab/modules/sparse/sci_gateway/fortran/spops.f
scilab/modules/sparse/src/c/sparse.rc
scilab/modules/sparse/src/fortran/Output_stream_Import.def
scilab/modules/sparse/src/fortran/sparse_f.rc
scilab/modules/special_functions/Makefile.am
scilab/modules/special_functions/Makefile.in
scilab/modules/special_functions/sci_gateway/c/sci_besselh.c
scilab/modules/special_functions/sci_gateway/c/sci_besseli.c
scilab/modules/special_functions/sci_gateway/c/sci_besselj.c
scilab/modules/special_functions/sci_gateway/c/sci_besselk.c
scilab/modules/special_functions/sci_gateway/c/sci_bessely.c
scilab/modules/special_functions/sci_gateway/c/sci_beta.c
scilab/modules/special_functions/sci_gateway/c/sci_calerf.c
scilab/modules/special_functions/sci_gateway/c/sci_dlgamma.c
scilab/modules/special_functions/sci_gateway/c/sci_gamma.c
scilab/modules/special_functions/sci_gateway/c/sci_legendre.c
scilab/modules/special_functions/sci_gateway/c/sci_lgamma.c
scilab/modules/special_functions/sci_gateway/fortran/sci_f_calerf.f [deleted file]
scilab/modules/special_functions/sci_gateway/fortran/sci_f_dlgamma.f [deleted file]
scilab/modules/special_functions/sci_gateway/fortran/sci_f_gamma.f [deleted file]
scilab/modules/special_functions/sci_gateway/fortran/sci_f_lgamma.f [deleted file]
scilab/modules/special_functions/src/c/elementary_functions_f_Import.def
scilab/modules/special_functions/src/c/special_functions.rc
scilab/modules/special_functions/src/fortran/elementary_functions_f_Import.def
scilab/modules/special_functions/src/fortran/special_functions_f.rc
scilab/modules/special_functions/src/fortran/special_functions_f.vfproj
scilab/modules/special_functions/src/fortran/special_functions_f2c.vcxproj
scilab/modules/special_functions/src/fortran/special_functions_f2c.vcxproj.filters
scilab/modules/spreadsheet/src/c/spreadsheet.rc
scilab/modules/spreadsheet/src/nospreadsheet/nospreadsheet.rc
scilab/modules/statistics/src/c/statistics.rc
scilab/modules/statistics/src/dcdflib/dcd_f/dcd_f.rc
scilab/modules/string/src/c/string.rc
scilab/modules/string/src/fortran/string_f.rc
scilab/modules/symbolic/src/c/symbolic.rc
scilab/modules/symbolic/src/fortran/symbolic_f.rc
scilab/modules/tclsci/src/c/tclsci.rc
scilab/modules/time/sci_gateway/c/sci_sleep.c
scilab/modules/time/src/c/time.rc
scilab/modules/ui_data/src/c/ui_data.rc
scilab/modules/ui_data/src/noui_data/noui_data.rc
scilab/modules/umfpack/sci_gateway/c/sci_res_with_prec.c
scilab/modules/umfpack/sci_gateway/c/sci_taucs_chdel.c
scilab/modules/umfpack/sci_gateway/c/sci_taucs_chfact.c
scilab/modules/umfpack/sci_gateway/c/sci_taucs_chget.c
scilab/modules/umfpack/sci_gateway/c/sci_taucs_chinfo.c
scilab/modules/umfpack/sci_gateway/c/sci_taucs_chsolve.c
scilab/modules/umfpack/sci_gateway/c/sci_umf_ludel.c
scilab/modules/umfpack/sci_gateway/c/sci_umf_lufact.c
scilab/modules/umfpack/sci_gateway/c/sci_umf_luget.c
scilab/modules/umfpack/sci_gateway/c/sci_umf_luinfo.c
scilab/modules/umfpack/sci_gateway/c/sci_umf_lusolve.c
scilab/modules/umfpack/sci_gateway/c/sci_umfpack.c
scilab/modules/umfpack/src/c/common_umfpack.c
scilab/modules/umfpack/src/c/common_umfpack.h
scilab/modules/umfpack/src/c/sciumfpack.h
scilab/modules/umfpack/src/c/umfpack.rc
scilab/modules/umfpack/src/noumfpack/noumfpack.rc
scilab/modules/windows_tools/src/c/CScilex/CScilex.rc
scilab/modules/windows_tools/src/c/WScilex/WScilex.rc
scilab/modules/windows_tools/src/c/scilab_windows/scilab_windows.rc
scilab/modules/windows_tools/src/c/windows_tools.rc
scilab/modules/windows_tools/src/nowindows_tools/nowindows_tools.rc
scilab/modules/xcos/src/c/xcos.rc
scilab/modules/xml/src/c/xml.rc
scilab/tools/api_scilab_trad/Bool_Matrix_Alloc.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Bool_Matrix_Create.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Bool_Matrix_Get.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/DoubleComplex_Matrix_Alloc.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/DoubleComplex_Matrix_AllocAsInteger.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/DoubleComplex_Matrix_Create.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/DoubleComplex_Matrix_CreateAsInteger.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/DoubleComplex_Matrix_Get.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/DoubleComplex_Matrix_GetAsInteger.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Double_Matrix_Alloc.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Double_Matrix_AllocAsInteger.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Double_Matrix_Create.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Double_Matrix_CreateAsInteger.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Double_Matrix_Get.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Double_Matrix_GetAsInteger.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Handle_Matrix_Alloc.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Handle_Matrix_Create.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Handle_Matrix_Get.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Pointer_Alloc.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Pointer_Create.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Pointer_Get.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/String_Matrix_Create.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/String_Matrix_Get.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/String_Single_Alloc.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/String_Single_Create.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/String_Single_Get.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_Column.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_DimProp.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_Dims.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_Length.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_OneDim.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_Row.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_SameDims.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_Scalar.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_Square.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/Tools_Check_Vector.txt [new file with mode: 0644]
scilab/tools/api_scilab_trad/trad.sce [new file with mode: 0644]

index dd7cf33..a6e6e07 100644 (file)
@@ -1,6 +1,8 @@
                     Changes between version 5.4.0 and 5.4.1
                     =======================================
 
+Syntax changes
+===============
 
 Improvements
 =============
@@ -124,7 +126,7 @@ Xcos
 
 * Bug #12014 fixed - dep_ut help was wrongly detailed.
 
-* Bug #12031 fixed - Changes in context of superblock did not always have 
+* Bug #12031 fixed - Changes in context of superblock did not always have
                      effect.
 
 * Bug #12162 fixed - tbx_build_blocks did not report errors.
diff --git a/scilab/CHANGES_5.5.X b/scilab/CHANGES_5.5.X
new file mode 100644 (file)
index 0000000..f8e7dc1
--- /dev/null
@@ -0,0 +1,19 @@
+                    Changes between version 5.4.X and 5.5.0
+                    =======================================
+
+
+Syntax changes
+===============
+
+* Vector ^ scalar syntax declared obsolete. See bug #11524
+
+
+Obsolete
+=========
+
+* The third argument of poly function will be more strict.
+    Only the following string will be allowed : "roots", "coeff", "c", "r".
+
+* Arguments option and direction of gsort will be more strict in all case.
+  Only the following string will be allowed : option : "r" "c" "g" "lr" "lc"
+                                              direction : "d" "i"
index f3df1e5..b2a416e 100644 (file)
@@ -28,7 +28,7 @@ AM_CXXFLAGS = $(SCI_CXXFLAGS)
 AM_FFLAGS   = $(SCI_FFLAGS)
 AM_LDFLAGS  = $(SCI_LDFLAGS)
 
-changelogs = CHANGES CHANGES_5.1.X CHANGES_5.2.X CHANGES_5.3.X CHANGES_5.4.X
+changelogs = CHANGES CHANGES_5.1.X CHANGES_5.2.X CHANGES_5.3.X CHANGES_5.4.X  CHANGES_5.5.X
 
 bin_PROGRAMS           = scilab-bin scilab-cli-bin
 
index 7a55290..0dd2166 100644 (file)
@@ -629,7 +629,7 @@ AM_CFLAGS = $(SCI_CFLAGS)
 AM_CXXFLAGS = $(SCI_CXXFLAGS)
 AM_FFLAGS = $(SCI_FFLAGS)
 AM_LDFLAGS = $(SCI_LDFLAGS)
-changelogs = CHANGES CHANGES_5.1.X CHANGES_5.2.X CHANGES_5.3.X CHANGES_5.4.X
+changelogs = CHANGES CHANGES_5.1.X CHANGES_5.2.X CHANGES_5.3.X CHANGES_5.4.X  CHANGES_5.5.X
 bin_SCRIPTS = bin/scilab bin/scilab-adv-cli bin/scilab-cli \
        $(am__append_1)
 scilab_bin_LDFLAGS = $(AM_LDFLAGS) $(am__append_2)
index be24aaf..d66dd00 100644 (file)
@@ -1 +1 @@
-SCIVERSION=Scilab-Branch-5.4-GIT
+SCIVERSION=Scilab-Branch-master-GIT
index aba0bb2..2d448aa 100755 (executable)
@@ -3066,8 +3066,8 @@ SCI_SRCDIR="$srcdir"
 SCI_SRCDIR_FULL="`cd $SCI_SRCDIR && pwd`"
 
 SCILAB_VERSION_MAJOR=5
-SCILAB_VERSION_MINOR=4
-SCILAB_VERSION_MAINTENANCE=1
+SCILAB_VERSION_MINOR=5
+SCILAB_VERSION_MAINTENANCE=0
 
 
 
@@ -13622,7 +13622,7 @@ $as_echo "$as_me: WARNING: Could not find or use the Java package/jar jogl2 used
                    # Provide known paths where distribs/OS can store JNI libs
                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
-                   LDFLAGS="$LDFLAGS -L/usr/lib/jogl2 -L/usr/lib64/jogl2"               # RedHat
+                   LDFLAGS="$LDFLAGS -L/usr/lib/jogl -L/usr/lib64/jogl"                 # RedHat
                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glTexParameterf in -ljogl_desktop" >&5
 $as_echo_n "checking for glTexParameterf in -ljogl_desktop... " >&6; }
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jogl_desktop_glTexParameterf" >&5
 $as_echo "$ac_cv_lib_jogl_desktop_glTexParameterf" >&6; }
 if test "x$ac_cv_lib_jogl_desktop_glTexParameterf" = xyes; then :
-  JOGL2_LIBS="-ljogl_desktop"
+  JOGL2_LIBS="-ljogl"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link against -ljogl_desktop. Will try against -ljogl_desktop -lGL" >&5
-$as_echo "$as_me: WARNING: Could not link against -ljogl_desktop. Will try against -ljogl_desktop -lGL" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not link against -ljogl_desktop. Will try against -ljogl2 -lGL" >&5
+$as_echo "$as_me: WARNING: Could not link against -ljogl_desktop. Will try against -ljogl2 -lGL" >&2;}
 fi
 
                    if test -z "$JOGL2_LIBS"; then # The previous test failed add more options to the LDFLAGS
@@ -13845,7 +13845,7 @@ $as_echo "$as_me: WARNING: Could not find or use the Java package/jar gluegen2-r
                    # Provide known paths where distribs/OS can store JNI libs
                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
-                   LDFLAGS="$LDFLAGS -L/usr/lib/gluegen2 -L/usr/lib64/gluegen2"         # RedHat
+                   LDFLAGS="$LDFLAGS -L/usr/lib/gluegen -L/usr/lib64/gluegen"           # RedHat
                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
                    symbol="Java_jogamp_common_jvm_JVMUtil_initialize"
                    as_ac_Lib=`$as_echo "ac_cv_lib_gluegen2-rt_$symbol" | $as_tr_sh`
@@ -13887,7 +13887,7 @@ eval ac_res=\$$as_ac_Lib
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  GLUEGEN2_RT_LIBS="-lgluegen2-rt"
+  GLUEGEN_RT_LIBS="-lgluegen-rt"
 else
   as_fn_error $? "libgluegen2-rt: Library missing (Cannot find symbol $symbol). Check if libgluegen-rt - C/Java (JNI) interface for GLUEGEN2 - is installed and if the version is correct. Note that you might have to update etc/librarypath.xml to provide the actual path the the JNI libraries." "$LINENO" 5
 fi
index bdf1cea..372e375 100644 (file)
@@ -24,8 +24,8 @@ SCI_SRCDIR="$srcdir"
 SCI_SRCDIR_FULL="`cd $SCI_SRCDIR && pwd`"
 
 SCILAB_VERSION_MAJOR=5
-SCILAB_VERSION_MINOR=4
-SCILAB_VERSION_MAINTENANCE=1
+SCILAB_VERSION_MINOR=5
+SCILAB_VERSION_MAINTENANCE=0
 AC_SUBST(SCILAB_VERSION_MAJOR)
 AC_SUBST(SCILAB_VERSION_MINOR)
 AC_SUBST(SCILAB_VERSION_MAINTENANCE)
@@ -896,9 +896,9 @@ if test "$with_javasci" != no -o "$with_gui" != no -o "$enable_build_help" != no
                    # Provide known paths where distribs/OS can store JNI libs
                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
-                   LDFLAGS="$LDFLAGS -L/usr/lib/jogl2 -L/usr/lib64/jogl2"               # RedHat
+                   LDFLAGS="$LDFLAGS -L/usr/lib/jogl -L/usr/lib64/jogl"                 # RedHat
                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
-                   AC_CHECK_LIB([jogl_desktop], [glTexParameterf], [JOGL2_LIBS="-ljogl_desktop"],[AC_MSG_WARN([Could not link against -ljogl_desktop. Will try against -ljogl_desktop -lGL])])
+                   AC_CHECK_LIB([jogl_desktop], [glTexParameterf], [JOGL2_LIBS="-ljogl"],[AC_MSG_WARN([Could not link against -ljogl_desktop. Will try against -ljogl2 -lGL])])
                    if test -z "$JOGL2_LIBS"; then # The previous test failed add more options to the LDFLAGS
                        # the space after "jogl" in the following line is on
                        # purpose to disable the cache
@@ -925,10 +925,10 @@ interface for JOGL2 - or libGL (OpenGL library) are installed and if the version
                    # Provide known paths where distribs/OS can store JNI libs
                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
-                   LDFLAGS="$LDFLAGS -L/usr/lib/gluegen2 -L/usr/lib64/gluegen2"         # RedHat
+                   LDFLAGS="$LDFLAGS -L/usr/lib/gluegen -L/usr/lib64/gluegen"           # RedHat
                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
                    symbol="Java_jogamp_common_jvm_JVMUtil_initialize"
-                   AC_CHECK_LIB([gluegen2-rt], [$symbol], [GLUEGEN2_RT_LIBS="-lgluegen2-rt"],
+                   AC_CHECK_LIB([gluegen2-rt], [$symbol], [GLUEGEN_RT_LIBS="-lgluegen-rt"],
                    [AC_MSG_ERROR([libgluegen2-rt: Library missing (Cannot find symbol $symbol). Check if libgluegen-rt - C/Java (JNI) interface for GLUEGEN2 - is installed and if the version is correct. Note that you might have to update etc/librarypath.xml to provide the actual path the the JNI libraries.])],
                    [-ldl])
                    LDFLAGS=$LDFLAGS_save
index 365bc88..200883c 100644 (file)
@@ -48,8 +48,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,4,1,0
- PRODUCTVERSION 5,4,1,0
+ FILEVERSION 5,5,0,0
+ PRODUCTVERSION 5,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -65,12 +65,12 @@ BEGIN
         BLOCK "040c04b0"
         BEGIN
             VALUE "FileDescription", "GetWindowsVersion library for Scilab 5.x"
-            VALUE "FileVersion", "5, 4, 1, 0"
+            VALUE "FileVersion", "5, 5, 0, 0"
             VALUE "InternalName", "GetWindowsVersion library for Scilab 5.x"
             VALUE "LegalCopyright", "Copyright (C) 2013"
             VALUE "OriginalFilename", "GetWindowsVersion.dll"
             VALUE "ProductName", "GetWindowsVersion library for Scilab 5.x"
-            VALUE "ProductVersion", "5, 4, 1, 0"
+            VALUE "ProductVersion", "5, 5, 0, 0"
         END
     END
     BLOCK "VarFileInfo"
index a0b372b..42408c9 100644 (file)
@@ -48,8 +48,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,4,1,0
- PRODUCTVERSION 5,4,1,0
+ FILEVERSION 5,5,0,0
+ PRODUCTVERSION 5,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -65,12 +65,12 @@ BEGIN
         BLOCK "040c04b0"
         BEGIN
             VALUE "FileDescription", "MALLOC library for Scilab 5.x"
-            VALUE "FileVersion", "5, 4, 1, 0"
+            VALUE "FileVersion", "5, 5, 0, 0"
             VALUE "InternalName", "MALLOC library for Scilab 5.x"
             VALUE "LegalCopyright", "Copyright (C) 2013"
             VALUE "OriginalFilename", "MALLOC.dll"
             VALUE "ProductName", "MALLOC library for Scilab 5.x"
-            VALUE "ProductVersion", "5, 4, 1, 0"
+            VALUE "ProductVersion", "5, 5, 0, 0"
         END
     END
     BLOCK "VarFileInfo"
index efd8b89..f4b762b 100644 (file)
@@ -48,8 +48,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,4,1,0
- PRODUCTVERSION 5,4,1,0
+ FILEVERSION 5,5,0,0
+ PRODUCTVERSION 5,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -65,12 +65,12 @@ BEGIN
         BLOCK "040c04b0"
         BEGIN
             VALUE "FileDescription", "doublylinkedlist library for Scilab 5.x"
-            VALUE "FileVersion", "5, 4, 1, 0"
+            VALUE "FileVersion", "5, 5, 0, 0"
             VALUE "InternalName", "doublylinkedlist library for Scilab 5.x"
             VALUE "LegalCopyright", "Copyright (C) 2013"
             VALUE "OriginalFilename", "doublylinkedlist.dll"
             VALUE "ProductName", "doublylinkedlist library for Scilab 5.x"
-            VALUE "ProductVersion", "5, 4, 1, 0"
+            VALUE "ProductVersion", "5, 5, 0, 0"
         END
     END
     BLOCK "VarFileInfo"
index 0bd20ae..0db1c75 100644 (file)
@@ -48,8 +48,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,4,1,0
- PRODUCTVERSION 5,4,1,0
+ FILEVERSION 5,5,0,0
+ PRODUCTVERSION 5,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -65,12 +65,12 @@ BEGIN
         BLOCK "040c04b0"
         BEGIN
             VALUE "FileDescription", "dynamiclibrary library for Scilab 5.x"
-            VALUE "FileVersion", "5, 4, 1, 0"
+            VALUE "FileVersion", "5, 5, 0, 0"
             VALUE "InternalName", "dynamiclibrary library for Scilab 5.x"
             VALUE "LegalCopyright", "Copyright (C) 2013"
             VALUE "OriginalFilename", "dynamiclibrary.dll"
             VALUE "ProductName", "dynamiclibrary library for Scilab 5.x"
-            VALUE "ProductVersion", "5, 4, 1, 0"
+            VALUE "ProductVersion", "5, 5, 0, 0"
         END
     END
     BLOCK "VarFileInfo"
index f4fb0ee..6bb91d1 100644 (file)
@@ -48,8 +48,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,4,1,0
- PRODUCTVERSION 5,4,1,0
+ FILEVERSION 5,5,0,0
+ PRODUCTVERSION 5,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -65,12 +65,12 @@ BEGIN
         BLOCK "040c04b0"
         BEGIN
             VALUE "FileDescription", "hashtable library for Scilab 5.x"
-            VALUE "FileVersion", "5, 4, 1, 0"
+            VALUE "FileVersion", "5, 5, 0, 0"
             VALUE "InternalName", "hashtable library for Scilab 5.x"
             VALUE "LegalCopyright", "Copyright (C) 2013"
             VALUE "OriginalFilename", "hashtable.dll"
             VALUE "ProductName", "hashtable library for Scilab 5.x"
-            VALUE "ProductVersion", "5, 4, 1, 0"
+            VALUE "ProductVersion", "5, 5, 0, 0"
         END
     END
     BLOCK "VarFileInfo"
index 872d742..5d30a78 100644 (file)
@@ -48,8 +48,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,4,1,0
- PRODUCTVERSION 5,4,1,0
+ FILEVERSION 5,5,0,0
+ PRODUCTVERSION 5,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -65,12 +65,12 @@ BEGIN
         BLOCK "040c04b0"
         BEGIN
             VALUE "FileDescription", "libst library for Scilab 5.x"
-            VALUE "FileVersion", "5, 4, 1, 0"
+            VALUE "FileVersion", "5, 5, 0, 0"
             VALUE "InternalName", "libst library for Scilab 5.x"
             VALUE "LegalCopyright", "Copyright (C) 2013"
             VALUE "OriginalFilename", "libst.dll"
             VALUE "ProductName", "libst library for Scilab 5.x"
-            VALUE "ProductVersion", "5, 4, 1, 0"
+            VALUE "ProductVersion", "5, 5, 0, 0"
         END
     END
     BLOCK "VarFileInfo"
index 2692bd8..de03c3d 100644 (file)
@@ -49,8 +49,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,4,1,0
- PRODUCTVERSION 5,4,1,0
+ FILEVERSION 5,5,0,0
+ PRODUCTVERSION 5,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -66,12 +66,12 @@ BEGIN
         BLOCK "040c04b0"
         BEGIN
             VALUE "FileDescription", "action_binding module"
-            VALUE "FileVersion", "5, 4, 1, 0"
+            VALUE "FileVersion", "5, 5, 0, 0"
             VALUE "InternalName", "action_binding module"
             VALUE "LegalCopyright", "Copyright (C) 2013"
             VALUE "OriginalFilename", "action_binding.dll"
             VALUE "ProductName", " action_binding"
-            VALUE "ProductVersion", "5, 4, 1, 0"
+            VALUE "ProductVersion", "5, 5, 0, 0"
         END
     END
     BLOCK "VarFileInfo"
index 00404c2..0e089e9 100644 (file)
@@ -49,8 +49,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,4,1,0
- PRODUCTVERSION 5,4,1,0
+ FILEVERSION 5,5,0,0
+ PRODUCTVERSION 5,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -66,12 +66,12 @@ BEGIN
         BLOCK "040c04b0"
         BEGIN
             VALUE "FileDescription", "noaction_binding module"
-            VALUE "FileVersion", "5, 4, 1, 0"
+            VALUE "FileVersion", "5, 5, 0, 0"
             VALUE "InternalName", "noaction_binding module"
             VALUE "LegalCopyright", "Copyright (C) 2013"
             VALUE "OriginalFilename", "noaction_binding.dll"
             VALUE "ProductName", " noaction_binding"
-            VALUE "ProductVersion", "5, 4, 1, 0"
+            VALUE "ProductVersion", "5, 5, 0, 0"
         END
     END
     BLOCK "VarFileInfo"
index 55bb20f..91b17ab 100644 (file)
@@ -16,7 +16,9 @@ src/cpp/api_poly.cpp \
 src/cpp/api_sparse.cpp \
 src/cpp/api_string.cpp \
 src/cpp/api_pointer.cpp \
-src/cpp/api_error.cpp
+src/cpp/api_handle.cpp \
+src/cpp/api_error.cpp \
+src/cpp/api_optional.cpp
 
 
 libsciapi_scilab_la_CPPFLAGS=-I$(srcdir)/includes/ \
@@ -42,9 +44,9 @@ libsciapi_scilab_la_SOURCES = $(API_SCILAB_C_SOURCES) $(API_SCILAB_CXX_SOURCES)
 
 # For the code check (splint)
 CHECK_SRC= $(libsciapi_scilab_la_SOURCES)
-INCLUDE_FLAGS = $(libsciapi_scilab_la_CPPFLAGS) 
+INCLUDE_FLAGS = $(libsciapi_scilab_la_CPPFLAGS)
 
-libsciapi_scilab_la_LIBADD =  
+libsciapi_scilab_la_LIBADD =
 #
 
 
@@ -54,7 +56,7 @@ modulename=api_scilab
 
 #### api_scilab : Conf files ####
 libsciapi_scilab_la_rootdir = $(mydatadir)
-libsciapi_scilab_la_root_DATA =  license.txt 
+libsciapi_scilab_la_root_DATA =  license.txt
 
 
 #### api_scilab : init scripts ####
@@ -75,6 +77,8 @@ includes/api_pointer.h \
 includes/api_poly.h \
 includes/api_sparse.h \
 includes/api_string.h \
+includes/api_handle.h \
+includes/api_optional.h \
 includes/api_scilab.h
 
 include $(top_srcdir)/Makefile.incl.am
index 8cd9154..0811f5c 100644 (file)
@@ -146,7 +146,9 @@ am__objects_1 = libsciapi_scilab_la-api_boolean.lo \
        libsciapi_scilab_la-api_sparse.lo \
        libsciapi_scilab_la-api_string.lo \
        libsciapi_scilab_la-api_pointer.lo \
-       libsciapi_scilab_la-api_error.lo
+       libsciapi_scilab_la-api_handle.lo \
+       libsciapi_scilab_la-api_error.lo \
+       libsciapi_scilab_la-api_optional.lo
 am_libsciapi_scilab_la_OBJECTS = $(am__objects_1)
 libsciapi_scilab_la_OBJECTS = $(am_libsciapi_scilab_la_OBJECTS)
 @MAINTAINER_MODE_FALSE@am_libsciapi_scilab_la_rpath =
@@ -441,7 +443,9 @@ src/cpp/api_poly.cpp \
 src/cpp/api_sparse.cpp \
 src/cpp/api_string.cpp \
 src/cpp/api_pointer.cpp \
-src/cpp/api_error.cpp
+src/cpp/api_handle.cpp \
+src/cpp/api_error.cpp \
+src/cpp/api_optional.cpp
 
 libsciapi_scilab_la_CPPFLAGS = -I$(srcdir)/includes/ \
 -I$(srcdir)/src/cpp/ \
@@ -459,7 +463,7 @@ libsciapi_scilab_la_SOURCES = $(API_SCILAB_C_SOURCES) $(API_SCILAB_CXX_SOURCES)
 
 # For the code check (splint)
 CHECK_SRC = $(libsciapi_scilab_la_SOURCES)
-INCLUDE_FLAGS = $(libsciapi_scilab_la_CPPFLAGS) 
+INCLUDE_FLAGS = $(libsciapi_scilab_la_CPPFLAGS)
 libsciapi_scilab_la_LIBADD = 
 #
 
@@ -468,7 +472,7 @@ modulename = api_scilab
 
 #### api_scilab : Conf files ####
 libsciapi_scilab_la_rootdir = $(mydatadir)
-libsciapi_scilab_la_root_DATA = license.txt 
+libsciapi_scilab_la_root_DATA = license.txt
 
 #### api_scilab : init scripts ####
 libsciapi_scilab_la_etcdir = $(mydatadir)/etc
@@ -487,6 +491,8 @@ includes/api_pointer.h \
 includes/api_poly.h \
 includes/api_sparse.h \
 includes/api_string.h \
+includes/api_handle.h \
+includes/api_optional.h \
 includes/api_scilab.h
 
 
@@ -652,8 +658,10 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_common.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_double.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_error.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_handle.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_int.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_list.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_optional.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_pointer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_poly.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsciapi_scilab_la-api_sparse.Plo@am__quote@
@@ -750,6 +758,13 @@ libsciapi_scilab_la-api_pointer.lo: src/cpp/api_pointer.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsciapi_scilab_la-api_pointer.lo `test -f 'src/cpp/api_pointer.cpp' || echo '$(srcdir)/'`src/cpp/api_pointer.cpp
 
+libsciapi_scilab_la-api_handle.lo: src/cpp/api_handle.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsciapi_scilab_la-api_handle.lo -MD -MP -MF $(DEPDIR)/libsciapi_scilab_la-api_handle.Tpo -c -o libsciapi_scilab_la-api_handle.lo `test -f 'src/cpp/api_handle.cpp' || echo '$(srcdir)/'`src/cpp/api_handle.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libsciapi_scilab_la-api_handle.Tpo $(DEPDIR)/libsciapi_scilab_la-api_handle.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/api_handle.cpp' object='libsciapi_scilab_la-api_handle.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsciapi_scilab_la-api_handle.lo `test -f 'src/cpp/api_handle.cpp' || echo '$(srcdir)/'`src/cpp/api_handle.cpp
+
 libsciapi_scilab_la-api_error.lo: src/cpp/api_error.cpp
 @am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsciapi_scilab_la-api_error.lo -MD -MP -MF $(DEPDIR)/libsciapi_scilab_la-api_error.Tpo -c -o libsciapi_scilab_la-api_error.lo `test -f 'src/cpp/api_error.cpp' || echo '$(srcdir)/'`src/cpp/api_error.cpp
 @am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libsciapi_scilab_la-api_error.Tpo $(DEPDIR)/libsciapi_scilab_la-api_error.Plo
@@ -757,6 +772,13 @@ libsciapi_scilab_la-api_error.lo: src/cpp/api_error.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsciapi_scilab_la-api_error.lo `test -f 'src/cpp/api_error.cpp' || echo '$(srcdir)/'`src/cpp/api_error.cpp
 
+libsciapi_scilab_la-api_optional.lo: src/cpp/api_optional.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libsciapi_scilab_la-api_optional.lo -MD -MP -MF $(DEPDIR)/libsciapi_scilab_la-api_optional.Tpo -c -o libsciapi_scilab_la-api_optional.lo `test -f 'src/cpp/api_optional.cpp' || echo '$(srcdir)/'`src/cpp/api_optional.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libsciapi_scilab_la-api_optional.Tpo $(DEPDIR)/libsciapi_scilab_la-api_optional.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/api_optional.cpp' object='libsciapi_scilab_la-api_optional.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libsciapi_scilab_la-api_optional.lo `test -f 'src/cpp/api_optional.cpp' || echo '$(srcdir)/'`src/cpp/api_optional.cpp
+
 mostlyclean-libtool:
        -rm -f *.lo
 
index f8c7940..4460772 100644 (file)
@@ -245,8 +245,10 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClCompile Include="src\cpp\api_common.cpp" />
     <ClCompile Include="src\cpp\api_double.cpp" />
     <ClCompile Include="src\cpp\api_error.cpp" />
+    <ClCompile Include="src\cpp\api_handle.cpp" />
     <ClCompile Include="src\cpp\api_int.cpp" />
     <ClCompile Include="src\cpp\api_list.cpp" />
+    <ClCompile Include="src\cpp\api_optional.cpp" />
     <ClCompile Include="src\cpp\api_pointer.cpp" />
     <ClCompile Include="src\cpp\api_poly.cpp" />
     <ClCompile Include="src\cpp\api_sparse.cpp" />
@@ -259,7 +261,10 @@ lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClInclude Include="includes\api_common.h" />
     <ClInclude Include="includes\api_double.h" />
     <ClInclude Include="includes\api_error.h" />
+    <ClInclude Include="includes\api_handle.h" />
     <ClInclude Include="includes\api_int.h" />
+    <ClInclude Include="includes\api_internal_handle.h" />
+    <ClInclude Include="includes\api_optional.h" />
     <ClInclude Include="src\cpp\api_internal_boolean.h" />
     <ClInclude Include="src\cpp\api_internal_boolean_sparse.h" />
     <ClInclude Include="src\cpp\api_internal_common.h" />
index c94f9b6..26fc34c 100644 (file)
     <ClCompile Include="src\c\DllmainApi_scilab.c">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="src\cpp\api_handle.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\api_optional.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="includes\api_boolean.h">
     <ClInclude Include="includes\dynlib_api_scilab.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="includes\api_handle.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_internal_handle.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_optional.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="src\c\api_scilab.rc">
index 8341efd..ccc00ac 100644 (file)
@@ -49,7 +49,8 @@
         <para>Usually, this API is used to extend Scilab capabilities but can be used in other contexts</para>
         <itemizedlist>
             <listitem>
-                <para>Libraires or C/C++ functions: Many librairies have been developed on the free/Open source or proprietary markets. This library can be loaded and used in a high level language like Scilab. API Scilab provides the capabilities to interact with such libraries.
+                <para>
+                    Libraires or C/C++ functions: Many librairies have been developed on the free/Open source or proprietary markets. This library can be loaded and used in a high level language like Scilab. API Scilab provides the capabilities to interact with such libraries.
                 </para>
             </listitem>
             <listitem>
         <revhistory>
             <revision>
                 <revnumber>5.4.0</revnumber>
-                <revdescription>Add some functions/macros in replacement of stack functions/macros
+                <revdescription>
+                    Add some functions/macros in replacement of stack functions/macros
                     <itemizedlist>
-                        <listitem>nbInputArgument
+                        <listitem>
+                            nbInputArgument
                             <para>
                                 Replaces <literal>Rhs</literal>
                             </para>
                         </listitem>
-                        <listitem>nbOutputArgument
+                        <listitem>
+                            nbOutputArgument
                             <para>
                                 Replaces <literal>Lhs</literal>
                             </para>
                         </listitem>
-                        <listitem>AssignOutputVariable
+                        <listitem>
+                            AssignOutputVariable
                             <para>
                                 Replaces <literal>LhsVar</literal>
                             </para>
                         </listitem>
-                        <listitem>ReturnArguments
+                        <listitem>
+                            ReturnArguments
                             <para>
                                 Replaces <literal>PutLhsVar</literal>
                             </para>
                         </listitem>
-                        <listitem>CheckInputArgument
+                        <listitem>
+                            CheckInputArgument
                             <para>
                                 Replaces <literal>CheckRhs</literal>
                             </para>
                         </listitem>
-                        <listitem>CheckOutputArgument
+                        <listitem>
+                            CheckOutputArgument
                             <para>
                                 Replaces <literal>CheckLhs</literal>
                             </para>
                     </para>
                 </revdescription>
             </revision>
+            <revision>
+                <revnumber>5.5.0</revnumber>
+                <revdescription>
+                    Add functions to manage handles
+                    <itemizedlist>
+                        <listitem>getMatrixOfHandle</listitem>
+                        <listitem>allocMatrixOfHandle</listitem>
+                        <listitem>createMatrixOfHandle</listitem>
+                        <listitem>isHandleType</listitem>
+                        <listitem>getScalarHandle</listitem>
+                        <listitem>createScalarHandle</listitem>
+                    </itemizedlist>
+                </revdescription>
+            </revision>
         </revhistory>
     </refsection>
     <refsection>
             <member>
                 <link linkend="String_management_writing_API">String management writing API</link>
             </member>
+            <member>
+                <link linkend="handle_reading_API">handle reading API</link>,
+            </member>
+            <member>
+                <link linkend="handle_writing_API">handle writing API</link>,
+            </member>
         </simplelist>
     </refsection>
     <refsection>
diff --git a/scilab/modules/api_scilab/help/en_US/handle/A_isHandleType.xml b/scilab/modules/api_scilab/help/en_US/handle/A_isHandleType.xml
new file mode 100644 (file)
index 0000000..f05e875
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009  - DIGITEO - Antoine ELIAS
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="isHandleType" xml:lang="en">
+    <refnamediv>
+        <refname>isHandleType</refname>
+        <refpurpose>
+            Check if it is a handle variable.
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Calling Sequence</title>
+        <synopsis>int isHandleType(void* _pvCtx, int* _piAddress)</synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>_pvCtx</term>
+                <listitem>
+                    <para>
+                        Scilab environment pointer, pass in "pvApiCtx" provided by api_scilab.h.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_piAddress</term>
+                <listitem>
+                    <para>
+                        Position in the Scilab memory where you want to put the variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Return value</title>
+        <para>1 if variable is a handle type, otherwise 0</para>
+    </refsection>
+    <title>History</title>
+    <revhistory>
+        <revision>
+            <revnumber>5.5.0</revnumber>
+            <revremark>This function added in Scilab 5.5.0</revremark>
+        </revision>
+    </revhistory>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/handle/B_getScalarHandle.xml b/scilab/modules/api_scilab/help/en_US/handle/B_getScalarHandle.xml
new file mode 100644 (file)
index 0000000..1338d4a
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009  - DIGITEO - Antoine ELIAS
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="getScalarHandle" xml:lang="en">
+    <refnamediv>
+        <refname>getScalarHandle</refname>
+        <refpurpose>
+            Read scalar handle data from a gateway argument.
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Calling Sequence</title>
+        <synopsis>int getScalarHandle(void* _pvCtx, int* _piAddress, long long* _pllHandle)</synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>_pvCtx</term>
+                <listitem>
+                    <para>
+                        Scilab environment pointer, pass in "pvApiCtx" provided by api_scilab.h.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_piAddress</term>
+                <listitem>
+                    <para>
+                        Address of the Scilab variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_pllHandle</term>
+                <listitem>
+                    <para>
+                        Return handle value.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Return value</title>
+        <para>if successful 0, otherwise print error(s) message(s) in the Scilab console and returns first error number.</para>
+    </refsection>
+    <title>History</title>
+    <revhistory>
+        <revision>
+            <revnumber>5.5.0</revnumber>
+            <revremark>This function added in Scilab 5.5.0</revremark>
+        </revision>
+    </revhistory>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/handle/C_createScalarHandle.xml b/scilab/modules/api_scilab/help/en_US/handle/C_createScalarHandle.xml
new file mode 100644 (file)
index 0000000..7258883
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009  - DIGITEO - Antoine ELIAS
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="createScalarHandle" xml:lang="en">
+    <refnamediv>
+        <refname>createScalarHandle</refname>
+        <refpurpose>
+            Create scalar handle variable in Scilab memory.
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Calling Sequence</title>
+        <synopsis>int createScalarHandle(void* _pvCtx, int _iVar, long long _llHandle)</synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>_pvCtx</term>
+                <listitem>
+                    <para>
+                        Scilab environment pointer, pass in "pvApiCtx" provided by api_scilab.h.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_iVar</term>
+                <listitem>
+                    <para>
+                        Position in the Scilab memory where you want to put the variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_llHandle</term>
+                <listitem>
+                    <para>
+                        Handle value.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Return value</title>
+        <para>if successful 0, otherwise print error(s) message(s) in the Scilab console and returns first error number.</para>
+    </refsection>
+    <title>History</title>
+    <revhistory>
+        <revision>
+            <revnumber>5.5.0</revnumber>
+            <revremark>This function added in Scilab 5.5.0</revremark>
+        </revision>
+    </revhistory>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/handle/D_handleExample.xml b/scilab/modules/api_scilab/help/en_US/handle/D_handleExample.xml
new file mode 100644 (file)
index 0000000..045dc06
--- /dev/null
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009  - DIGITEO - Antoine ELIAS
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="handleExample" xml:lang="en">
+    <refnamediv>
+        <refname>handle example</refname>
+        <refpurpose>
+            Handle use case.
+        </refpurpose>
+    </refnamediv>
+    <refsection>
+        <title>Description</title>
+        <para>This example shows how to get a handle variable and return it to Scilab.</para>
+    </refsection>
+    <refsection>
+        <!--File_gateway: SCI/modules/api_scilab/tests/unit_tests/handleExample.c-->
+        <!--File_scilab: SCI/modules/api_scilab/tests/unit_tests/handleExample.tst-->
+        <!--Lib_name: handleExample-->
+        <!--Func_list: handleExample-->
+        <title>Gateway Source</title>
+        <programlisting role="code_gateway">
+            <![CDATA[ 
+#include "api_scilab.h"
+
+int handleExample(char *fname,unsigned long fname_len)
+{
+    SciErr sciErr;
+    int* piAddr = NULL;
+    int iType   = 0;
+    int iRet    = 0;
+
+    CheckInputArgument(pvApiCtx, 1, 1);
+    CheckOutputArgument(pvApiCtx, 0, 1);
+
+    sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
+    if(sciErr.iErr)
+    {
+        printError(&sciErr, 0);
+        return 0;
+    }
+    if(isHandleType(pvApiCtx, piAddr))
+    {
+        if(isScalar(pvApiCtx, piAddr))
+        {
+            long long llHandle = 0;
+            iRet = getScalarHandle(pvApiCtx, piAddr, &llHandle);
+            if(iRet)
+            {
+                return 0;
+            }
+            iRet = createScalarHandle(pvApiCtx, nbInputArgument(pvApiCtx) + 1, llHandle);
+            if(iRet)
+            {
+                return 0;
+            }
+        }
+        else
+        {
+            int iRows  = 0;
+            int iCols  = 0;
+            long long *pllHandle = NULL;
+
+            sciErr = getMatrixOfHandle(pvApiCtx, piAddr, &iRows, &iCols, &pllHandle);
+            if(sciErr.iErr)
+            {
+                printError(&sciErr, 0);
+                return 0;
+            }
+
+            sciErr = createMatrixOfHandle(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, pllHandle);
+            if(sciErr.iErr)
+            {
+                printError(&sciErr, 0);
+                return 0;
+            }
+        }
+        AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+    }
+    else
+    {
+        AssignOutputVariable(pvApiCtx, 1) = 0;
+    }
+    return 0;
+}
+ ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab"><![CDATA[ 
+a = %t;
+b = %f;
+c = [a,b;b,a;a,b;b,a];
+d = c';
+
+handleExample(a) == a
+handleExample(b) == b
+handleExample(c) == c
+handleExample(d) == d
+ ]]></programlisting>
+    </refsection>
+    <title>History</title>
+    <revhistory>
+        <revision>
+            <revnumber>5.5.0</revnumber>
+            <revremark>This function added in Scilab 5.5.0</revremark>
+        </revision>
+    </revhistory>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/low_level_functions/handle_reading_api.xml b/scilab/modules/api_scilab/help/en_US/low_level_functions/handle_reading_api.xml
new file mode 100644 (file)
index 0000000..9b53f12
--- /dev/null
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009  - DIGITEO - Antoine ELIAS
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="handle_reading_API" xml:lang="en">
+    <refnamediv>
+        <refname>Handle reading (Scilab gateway)</refname>
+        <refpurpose>
+            How to read matrix of handle.
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Calling Sequence</title>
+        <para>Input argument profile:</para>
+        <synopsis>SciErr getMatrixOfHandle(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, long long** _pllHandle)</synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>_pvCtx</term>
+                <listitem>
+                    <para>
+                        Scilab environment pointer, pass in "pvApiCtx" provided by api_scilab.h.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_piAddress</term>
+                <listitem>
+                    <para>
+                        Address of the Scilab variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_piRows</term>
+                <listitem>
+                    <para>
+                        Return number of rows of the variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_piCols</term>
+                <listitem>
+                    <para>
+                        Return number of columns of the variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_pllHandle</term>
+                <listitem>
+                    <para>
+                        Return address of data array (size: _iRows * _iCols).
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>SciErr</term>
+                <listitem>
+                    <para>
+                        Error structure where is stored errors messages history and first error number.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Description</title>
+        <para>This help describes how to read matrix of handle.</para>
+    </refsection>
+    <refsection>
+        <!--File_gateway: SCI/modules/api_scilab/tests/unit_tests/read_write_handle_api.c-->
+        <!--File_scilab: SCI/modules/api_scilab/tests/unit_tests/read_write_handle_api.tst-->
+        <!--Lib_name: read_write_handle-->
+        <!--Func_list: read_write_handle-->
+        <title>Gateway Source</title>
+        <programlisting role="code_gateway">
+            <![CDATA[ 
+#include "api_scilab.h"
+int read_write_handle(char *fname,unsigned long fname_len)
+{
+    SciErr sciErr;
+    int i;
+    //first variable info : real matrix of double
+    int iRows       = 0;
+    int iCols       = 0;
+    int *piAddr     = NULL;
+    long long* pllHandle   = NULL;
+
+    //check input and output arguments
+    CheckInputArgument(pvApiCtx, 1,1);
+    CheckOutputArgument(pvApiCtx, 1,1);
+
+    //get variable address of the first input argument
+    sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
+    if(sciErr.iErr)
+    {
+        printError(&sciErr, 0);
+        return 0;
+    }
+
+    //get size and data from Scilab memory
+    sciErr = getMatrixOfHandle(pvApiCtx, piAddr, &iRows, &iCols, &pllHandle);
+    if(sciErr.iErr)
+    {
+        printError(&sciErr, 0);
+        return 0;
+    }
+
+    sciErr = createMatrixOfHandle(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, pllHandle);
+    if(sciErr.iErr)
+    {
+        printError(&sciErr, 0);
+        return 0;
+    }
+
+    AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+    return 0;
+}
+ ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[ 
+f1 = scf(1);
+f2 = scf(2);
+a_ref = [f1, f2];
+b = read_write_handle(a_ref);
+
+if or(b <> a_ref) then error("failed"), end
+ ]]>
+        </programlisting>
+    </refsection>
+    <title>History</title>
+    <revhistory>
+        <revision>
+            <revnumber>5.5.0</revnumber>
+            <revremark>This function added in Scilab 5.5.0</revremark>
+        </revision>
+    </revhistory>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/low_level_functions/handle_writing_api.xml b/scilab/modules/api_scilab/help/en_US/low_level_functions/handle_writing_api.xml
new file mode 100644 (file)
index 0000000..734c8de
--- /dev/null
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009  - DIGITEO - Antoine ELIAS
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="handle_writing_API" xml:lang="en">
+    <refnamediv>
+        <refname>Handle writing (Scilab gateway)</refname>
+        <refpurpose>
+            How to write matrices of handle.
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Calling Sequence</title>
+        <para>Input argument profile:</para>
+        <synopsis>SciErr createMatrixOfHandle(void* _pvCtx, int _iVar, int _iRows, int _iCols, const long long* _pllHandle)</synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>_pvCtx</term>
+                <listitem>
+                    <para>
+                        Scilab environment pointer, pass in "pvApiCtx" provided by api_scilab.h.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_iVar</term>
+                <listitem>
+                    <para>
+                        Position in the Scilab memory where you want to put the variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_piRows</term>
+                <listitem>
+                    <para>
+                        Return number of rows of the variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_piCols</term>
+                <listitem>
+                    <para>
+                        Return number of columns of the variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_pllHandle</term>
+                <listitem>
+                    <para>
+                        Return address of data array (size: _iRows * _iCols).
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>SciErr</term>
+                <listitem>
+                    <para>
+                        Error structure where is stored errors messages history and first error number.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsynopsisdiv>
+        <refsection>
+            Write directly in Scilab memory.
+        </refsection>
+        <title>Calling Sequence</title>
+        <para>Input argument profile:</para>
+        <synopsis>SciErr allocMatrixOfHandle(void* _pvCtx, int _iVar, int _iRows, int _iCols, long long** _pllHandle)</synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>_pvCtx</term>
+                <listitem>
+                    <para>
+                        Scilab environment pointer, pass in "pvApiCtx" provided by api_scilab.h.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_iVar</term>
+                <listitem>
+                    <para>
+                        Position in the Scilab memory where you want to put the variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_iRows</term>
+                <listitem>
+                    <para>
+                        Number of rows of the new variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_iCols</term>
+                <listitem>
+                    <para>
+                        Numbers of columns of the new variable.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>_pllHandle</term>
+                <listitem>
+                    <para>
+                        Returns address of real data array (size: _iCols * _iRows).
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>SciErr</term>
+                <listitem>
+                    <para>
+                        Error structure where is stored errors messages history and first error number.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Description</title>
+        <para>This help describes how to write matrix of handle.</para>
+    </refsection>
+    <refsection>
+        <!--File_gateway: SCI/modules/api_scilab/tests/unit_tests/read_write_handle_api.c-->
+        <!--File_scilab: SCI/modules/api_scilab/tests/unit_tests/read_write_handle_api.tst-->
+        <!--Lib_name: read_write_handle-->
+        <!--Func_list: read_write_handle-->
+        <title>Gateway Source</title>
+        <programlisting role="code_gateway">
+            <![CDATA[ 
+#include "api_scilab.h"
+int read_write_handle(char *fname,unsigned long fname_len)
+{
+    SciErr sciErr;
+    int i;
+    //first variable info : real matrix of double
+    int iRows       = 0;
+    int iCols       = 0;
+    int *piAddr     = NULL;
+    long long* pllHandle   = NULL;
+
+    //check input and output arguments
+    CheckInputArgument(pvApiCtx, 1,1);
+    CheckOutputArgument(pvApiCtx, 1,1);
+
+    //get variable address of the first input argument
+    sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
+    if(sciErr.iErr)
+    {
+        printError(&sciErr, 0);
+        return 0;
+    }
+
+    //get size and data from Scilab memory
+    sciErr = getMatrixOfHandle(pvApiCtx, piAddr, &iRows, &iCols, &pllHandle);
+    if(sciErr.iErr)
+    {
+        printError(&sciErr, 0);
+        return 0;
+    }
+
+    sciErr = createMatrixOfHandle(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, pllHandle);
+    if(sciErr.iErr)
+    {
+        printError(&sciErr, 0);
+        return 0;
+    }
+
+    AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+    return 0;
+}
+ ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[ 
+f1 = scf(1);
+f2 = scf(2);
+a_ref = [f1, f2];
+b = read_write_handle(a_ref);
+
+if or(b <> a_ref) then error("failed"), end
+ ]]>
+        </programlisting>
+    </refsection>
+    <title>History</title>
+    <revhistory>
+        <revision>
+            <revnumber>5.5.0</revnumber>
+            <revremark>This function added in Scilab 5.5.0</revremark>
+        </revision>
+    </revhistory>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/optionals/getOptionals.xml b/scilab/modules/api_scilab/help/en_US/optionals/getOptionals.xml
new file mode 100644 (file)
index 0000000..cf92704
--- /dev/null
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="getOptionals" xml:lang="en">
+    <refnamediv>
+        <refname>get optional argument (Scilab gateway)</refname>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Calling Sequence</title>
+        <synopsis>int getOptionals(void* _pvCtx, char* fname, rhs_opts opts[])</synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>_pvCtx</term>
+                <listitem>
+                    <para>
+                        Scilab environment pointer, pass in "pvApiCtx" provided by api_scilab.h
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>fname</term>
+                <listitem>
+                    <para>
+                        Name of the calling function.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>opts</term>
+                <listitem>
+                    <para>structure array of optional argument</para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Description</title>
+        <para>
+            A C gateway functions which use optional arguments.
+        </para>
+    </refsection>
+    <refsection>
+        <title>Examples</title>
+        <para>
+            In this example, the C interface function can take several optional
+            arguments and prints theirs dimensions if exists.
+        </para>
+        <programlisting role="example">
+            <![CDATA[ 
+#include "api_scilab.h"
+#include "sciprint.h"
+#include "sciprint.h"
+#include "sciprint.h"
+
+int sci_use_optional(char * fname)
+{
+    SciErr sciErr;
+
+    char* pstName = NULL;
+    int iAge = 0;
+    int iDL = 0;
+
+    static rhs_opts opts[] =
+    {
+        { -1, "age", -1, 0, 0, NULL},
+        { -1, "drivinglicense", -1, 0, 0, NULL},
+        { -1, "name", -1, 0, 0, NULL},
+        { -1, NULL, -1, 0, 0, NULL}
+    };
+
+    int nopt = NumOpt();
+
+    CheckInputArgument(pvApiCtx, 0, nopt);
+    CheckOutputArgument(pvApiCtx, 0, 1);
+
+    if (getOptionals(pvApiCtx, fname, opts) == 0)
+    {
+        //Error
+        return 1;
+    }
+
+    if (opts[0].iPos != -1)
+    {//age
+        double dblAge = 0;
+        getScalarDouble(pvApiCtx, opts[0].piAddr, &dblAge);
+        iAge = (int)dblAge;
+    }
+    else
+    {
+        iAge = 77;
+    }
+
+    if (opts[1].iPos != -1)
+    {//drivinglicense
+        getScalarBoolean(pvApiCtx, opts[1].piAddr, &iDL);
+    }
+    else
+    {
+        iDL = 0;
+    }
+
+    if (opts[2].iPos != -1)
+    {//Name
+        getAllocatedSingleString(pvApiCtx, opts[2].piAddr, &pstName);
+    }
+    else
+    {
+        pstName = strdup("John Doe");
+    }
+
+
+
+
+    sciprint("Read information: \n");
+    sciprint("\tName: \t\t\t%s\n", pstName);
+    sciprint("\tAge: \t\t\t%d\n", iAge);
+    sciprint("\tDriving licence: \t%s\n", iDL ? "Yes" : "No");
+    //no return value
+    AssignOutputVariable(pvApiCtx, 0) = 1;
+    return 0;
+}
+ ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[ 
+use_optional();
+use_optional(name = "M. Puffin");
+use_optional(age = 25, name = "M. Puffin");
+use_optional(drivinglicense = %t, age = 25, name = "M. Puffin");
+ ]]>
+        </programlisting>
+    </refsection>
+    <title>History</title>
+    <revhistory>
+        <revision>
+            <revnumber>5.5.0</revnumber>
+            <revremark>This function added in Scilab 5.5.0</revremark>
+        </revision>
+    </revhistory>
+</refentry>
index e516f4d..6d34bae 100644 (file)
@@ -20,9 +20,9 @@
 extern "C" {
 #endif
 
- /*api list error*/
+    /*api list error*/
 
- /*common error 1 - 99*/
+    /*common error 1 - 99*/
 #define API_ERROR_INVALID_POINTER                           1
 #define API_ERROR_INVALID_TYPE                              2
 #define API_ERROR_NOT_MATRIX_TYPE                           3
@@ -52,7 +52,7 @@ extern "C" {
 #define API_ERROR_IS_NAMED_SQUARE                           71
 #define API_ERROR_CHECK_NAMED_VAR_DIMENSION                 72
 
- /*double errors 101 - 199*/
+    /*double errors 101 - 199*/
 #define API_ERROR_GET_DOUBLE                                101
 #define API_ERROR_GET_ZDOUBLE                               102
 #define API_ERROR_ALLOC_DOUBLE                              103
@@ -66,7 +66,7 @@ extern "C" {
 #define API_ERROR_CREATE_NAMED_SCALAR                       111
 #define API_ERROR_GET_NAMED_SCALAR_DOUBLE                   112
 
- /*poly errors 201 - 299*/
+    /*poly errors 201 - 299*/
 #define API_ERROR_GET_POLY_VARNAME                          201
 #define API_ERROR_GET_POLY                                  202
 #define API_ERROR_CREATE_POLY                               203
@@ -78,7 +78,7 @@ extern "C" {
 #define API_ERROR_GET_ALLOC_MATRIX_POLY                     211
 #define API_ERROR_GET_ALLOC_NAMED_MATRIX_POLY               212
 
- /*boolean errors 401 - 499*/
+    /*boolean errors 401 - 499*/
 #define API_ERROR_GET_BOOLEAN                               401
 #define API_ERROR_CREATE_BOOLEAN                            402
 #define API_ERROR_CREATE_NAMED_BOOLEAN                      403
@@ -86,7 +86,7 @@ extern "C" {
 #define API_ERROR_CREATE_SCALAR_BOOLEAN                     405
 #define API_ERROR_CREATE_NAMED_SCALAR_BOOLEAN               406
 
- /*sparse errors 501 - 599*/
+    /*sparse errors 501 - 599*/
 #define API_ERROR_GET_SPARSE                                501
 #define API_ERROR_ALLOC_SPARSE                              502
 #define API_ERROR_CREATE_SPARSE                             504
@@ -95,7 +95,7 @@ extern "C" {
 #define API_ERROR_GET_ALLOC_SPARSE                          507
 #define API_ERROR_GET_NAMED_ALLOC_SPARSE                    508
 
- /*boolean sparse errors 601 - 699*/
+    /*boolean sparse errors 601 - 699*/
 #define API_ERROR_GET_BOOLEAN_SPARSE                        601
 #define API_ERROR_ALLOC_BOOLEAN_SPARSE                      602
 #define API_ERROR_FILL_BOOLEAN_SPARSE                       603
@@ -107,9 +107,9 @@ extern "C" {
 #define API_ERROR_GET_ALLOC_BOOLEAN_SPARSE                  611
 #define API_ERROR_GET_NAMED_ALLOC_BOOLEAN_SPARSE            612
 
- /*matlab sparse errors 701 - 799*/
+    /*matlab sparse errors 701 - 799*/
 
- /*ints errors 801 - 899*/
+    /*ints errors 801 - 899*/
 #define API_ERROR_GET_INT                                   802
 #define API_ERROR_CREATE_INT                                803
 #define API_ERROR_ALLOC_INT                                 804
@@ -120,7 +120,13 @@ extern "C" {
 #define API_ERROR_CREATE_SCALAR_INT                         809
 #define API_ERROR_CREATE_NAMED_SCALAR_INT                   810
 
- /*strings errors 1001 - 1099*/
+    /*handles errors 901 - 999*/
+#define API_ERROR_GET_HANDLE                                902
+#define API_ERROR_CREATE_HANDLE                             903
+#define API_ERROR_GET_SCALAR_HANDLE                         907
+#define API_ERROR_CREATE_SCALAR_HANDLE                      909
+
+    /*strings errors 1001 - 1099*/
 #define API_ERROR_GET_STRING                                1001
 #define API_ERROR_INVALID_SUBSTRING_POINTER                 1002
 #define API_ERROR_CREATE_STRING                             1003
@@ -142,8 +148,8 @@ extern "C" {
 #define API_ERROR_CREATE_SINGLE_WIDE_STRING                 1020
 #define API_ERROR_CREATE_NAMED_SINGLE_STRING                1021
 #define API_ERROR_CREATE_NAMED_SINGLE_WIDE_STRING           1022
- /*list errors 1501 - 1599*/
+
+    /*list errors 1501 - 1599*/
 #define API_ERROR_LIST_ITEM_NUMBER                          1501
 #define API_ERROR_INVALID_LIST_TYPE                         1502
 #define API_ERROR_GET_ITEM_ADDRESS                          1503
@@ -158,7 +164,7 @@ extern "C" {
 #define API_ERROR_NON_ORDERED_INSERTION                     1512
 #define API_ERROR_ALLOC_IN_LIST                             1513
 #define API_ERROR_CREATE_VOID_IN_LIST                       1514
- /*double in list*/
+    /*double in list*/
 #define API_ERROR_GET_DOUBLE_IN_LIST                        1520
 #define API_ERROR_ALLOC_DOUBLE_IN_LIST                      1521
 #define API_ERROR_CREATE_ZDOUBLE_IN_LIST                    1523
@@ -167,14 +173,14 @@ extern "C" {
 #define API_ERROR_CREATE_DOUBLE_IN_NAMED_LIST               1526
 #define API_ERROR_READ_DOUBLE_IN_NAMED_LIST                 1527
 
- /*string in list*/
+    /*string in list*/
 #define API_ERROR_GET_STRING_IN_LIST                        1530
 #define API_ERROR_FILL_STRING_IN_LIST                       1531
 #define API_ERROR_CREATE_STRING_IN_LIST                     1532
 #define API_ERROR_CREATE_STRING_IN_NAMED_LIST               1534
 #define API_ERROR_READ_STRING_IN_NAMED_LIST                 1535
 
- /*boolean in list*/
+    /*boolean in list*/
 #define API_ERROR_GET_BOOLEAN_IN_LIST                       1540
 #define API_ERROR_CREATE_BOOLEAN_IN_LIST                    1541
 #define API_ERROR_ALLOC_BOOLEAN_IN_LIST                     1542
@@ -182,14 +188,14 @@ extern "C" {
 #define API_ERROR_CREATE_BOOLEAN_IN_NAMED_LIST              1544
 #define API_ERROR_READ_BOOLEAN_IN_NAMED_LIST                1545
 
- /*poly in list*/
+    /*poly in list*/
 #define API_ERROR_GET_POLY_IN_LIST                          1550
 #define API_ERROR_CREATE_POLY_IN_LIST                       1551
 #define API_ERROR_FILL_POLY_IN_LIST                         1552
 #define API_ERROR_CREATE_POLY_IN_NAMED_LIST                 1553
 #define API_ERROR_READ_POLY_IN_NAMED_LIST                   1554
 
- /*int in list*/
+    /*int in list*/
 #define API_ERROR_FILL_INT_IN_LIST                          1560
 #define API_ERROR_ALLOC_INT_IN_LIST                         1561
 #define API_ERROR_CREATE_INT_IN_LIST                        1562
@@ -197,38 +203,38 @@ extern "C" {
 #define API_ERROR_CREATE_INT_IN_NAMED_LIST                  1564
 #define API_ERROR_READ_INT_IN_NAMED_LIST                    1565
 
- /*sparse in list*/
+    /*sparse in list*/
 #define API_ERROR_FILL_SPARSE_IN_LIST                       1570
 #define API_ERROR_CREATE_SPARSE_IN_LIST                     1571
 #define API_ERROR_CREATE_SPARSE_IN_NAMED_LIST               1572
 #define API_ERROR_GET_SPARSE_IN_LIST                        1573
 #define API_ERROR_READ_SPARSE_IN_NAMED_LIST                 1574
 
- /*boolean sparse in list*/
+    /*boolean sparse in list*/
 #define API_ERROR_FILL_BOOLEAN_SPARSE_IN_LIST               1580
 #define API_ERROR_CREATE_BOOLEAN_SPARSE_IN_LIST             1581
 #define API_ERROR_CREATE_BOOLEAN_SPARSE_IN_NAMED_LIST       1582
 #define API_ERROR_GET_BOOLEAN_SPARSE_IN_LIST                1583
 #define API_ERROR_READ_BOOLEAN_SPARSE_IN_NAMED_LIST         1584
 
- /*pointer in list*/
+    /*pointer in list*/
 #define API_ERROR_GET_POINTER_IN_LIST                       1590
 #define API_ERROR_CREATE_POINTER_IN_NAMED_LIST              1591
 #define API_ERROR_READ_POINTER_IN_NAMED_LIST                1592
 #define API_ERROR_CREATE_POINTER_IN_LIST                    1593
 
-/*pointer errors 12801 - 12899*/
+    /*pointer errors 12801 - 12899*/
 #define API_ERROR_GET_POINTER                               12801
 #define API_ERROR_ALLOC_POINTER                             12803
 #define API_ERROR_CREATE_POINTER                            12804
 #define API_ERROR_CREATE_NAMED_POINTER                      12805
 #define API_ERROR_READ_POINTER                              12806
 
-/* error functions*/
-int addStackSizeError(SciErr* _psciErr, char* _pstCaller, int iNeeded);
-int addErrorMessage(SciErr* _psciErr, int _iErr, const char* _pstMsg, ...);
-int printError(SciErr* _psciErr, int _iLastMsg);
-char* getErrorMessage(SciErr _sciErr);
+    /* error functions*/
+    int addStackSizeError(SciErr* _psciErr, char* _pstCaller, int iNeeded);
+    int addErrorMessage(SciErr* _psciErr, int _iErr, const char* _pstMsg, ...);
+    int printError(SciErr* _psciErr, int _iLastMsg);
+    char* getErrorMessage(SciErr _sciErr);
 
 #ifdef __cplusplus
 }
diff --git a/scilab/modules/api_scilab/includes/api_handle.h b/scilab/modules/api_scilab/includes/api_handle.h
new file mode 100644 (file)
index 0000000..2a111a2
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ * Please note that piece of code will be rewrited for the Scilab 6 family
+ * However, the API (profile of the functions in the header files) will be
+ * still available and supported in Scilab 6.
+ */
+
+#ifndef __HANDLE_API__
+#define __HANDLE_API__
+
+#if !defined(__INTERNAL_API_SCILAB__)
+#error Do not include api_handle.h. Include api_scilab.h instead.
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /**
+     * Get handle variable
+     * @param[in] _piAddress variable address
+     * @param[out] _piRows return number of rows
+     * @param[out] _piCols return number of columns
+     * @param[out] _pllHandle return pointer to data
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    SciErr getMatrixOfHandle(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, long long** _pllHandle);
+
+    /**
+     * Allocate handle variable
+     * @param[in] _iVar variable number
+     * @param[in] _iRows number of rows
+     * @param[in] _iCols number of columns
+     * @param[out] _pllHandle return pointer to data
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    SciErr allocMatrixOfHandle(void* _pvCtx, int _iVar, int _iRows, int _iCols, long long** _pllHandle);
+
+    /**
+     * Create handle variable
+     * @param[in] _iVar variable number
+     * @param[in] _iRows number of rows
+     * @param[in] _iCols number of columns
+     * @param[in] _pllHandle pointer to data
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    SciErr createMatrixOfHandle(void* _pvCtx, int _iVar, int _iRows, int _iCols, long long* _pllHandle);
+
+    /*shortcut functions*/
+
+    /**
+     * Check if the variable type is handle
+     * @param[in] _piAddress variable address
+     * @return 1 for true and 0 for false
+     */
+    int isHandleType(void* _pvCtx, int* _piAddress);
+
+    /**
+     * Get scalar handle variable data
+     * @param[in] _piAddress variable address
+     * @param[out] _pllHandle return handle value
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int getScalarHandle(void* _pvCtx, int* _piAddress, long long* _pllHandle);
+
+    /**
+     * Create scalar handle
+     * @param[in] _iVar variable number
+     * @param[in] _llHandle value
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int createScalarHandle(void* _pvCtx, int _iVar, long long _llHandle);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !__HANDLE_API__ */
\ No newline at end of file
diff --git a/scilab/modules/api_scilab/includes/api_internal_handle.h b/scilab/modules/api_scilab/includes/api_internal_handle.h
new file mode 100644 (file)
index 0000000..f35616c
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ * Please note that piece of code will be rewrited for the Scilab 6 family
+ * However, the API (profile of the functions in the header files) will be
+ * still available and supported in Scilab 6.
+ */
+
+#ifndef __INTERNAL_HANDLE_API__
+#define __INTERNAL_HANDLE_API__
+
+//internal functions
+SciErr fillMatrixOfHandle(void* _pvCtx, int* _piAddress, int _iRows, int _iCols, long long** _pllHandle);
+
+#endif /* __INTERNAL_HANDLE_API__ */
diff --git a/scilab/modules/api_scilab/includes/api_optional.h b/scilab/modules/api_scilab/includes/api_optional.h
new file mode 100644 (file)
index 0000000..9e8daad
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ */
+
+#ifndef __OPTINAL_API__
+#define __OPTINAL_API__
+
+#if !defined(__INTERNAL_API_SCILAB__)
+#error Do not include api_optinal.h. Include api_scilab.h instead.
+#endif
+
+#include "stack-c.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /**
+     * Get optional variable
+     * @param[in] name of function caller
+     * @param[in/out] opts structure of optional arguments
+     * @return if the operation succeeded ( 0 ) or not ( !0 )
+     */
+    int getOptionals(void* _pvCtx, char* fname, rhs_opts opts[]);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __OPTINAL_API__ */
index 775edf4..1af6a54 100644 (file)
@@ -45,6 +45,8 @@
 #include "api_pointer.h"
 #include "api_list.h"
 #include "api_error.h"
+#include "api_handle.h"
+#include "api_optional.h"
 #undef __INTERNAL_API_SCILAB__
 
 #include "core_math.h"
index 05260be..7f0d5d8 100644 (file)
 extern "C" {
 #endif
 
-/*******************************/
-/*   string matrix functions   */
-/*******************************/
-
-/**
- * Get strings variable data
- * @param[in] _piAddress variable address
- * @param[out] _piRows return number of rows
- * @param[out] _piCols return number of columns
- * @param[out] _piLength return strings lengths
- * @param[out] _pstStrings return array of char
- * @return if the operation succeeded (0) or not ( !0 )
- */
-SciErr getMatrixOfString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, int* _piLength, char** _pstStrings);
-
-/**
- * Get wide strings variable data
- * @param[in] _piAddress variable address
- * @param[out] _piRows return number of rows
- * @param[out] _piCols return number of columns
- * @param[out] _piwLength return strings length
- * @param[out] _pwstStrings return array of wide char
- * @return if the operation succeeded (0) or not ( !0 )
- */
-SciErr getMatrixOfWideString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, int* _piwLength, wchar_t** _pwstStrings);
-
-/**
- * Create strings variable data
- * @param[in] _iVar variable number
- * @param[in] _iRows number of rows
- * @param[in] _iCols number of columns
- * @param[in] _pstStrings array of strings ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-SciErr createMatrixOfString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const char* const* _pstStrings);
-
-/**
-* Create wide strings variable data
-* @param[in] _iVar variable number
-* @param[in] _iRows Number of rows
-* @param[in] _iCols Number of columns
-* @param[in] _pwstStrings array of strings ( null terminated )
-* @return if the operation succeeded (0) or not ( !0 )
-*/
-SciErr createMatrixOfWideString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const wchar_t* const* _pwstStrings);
-
-/**
- * Create strings variable data
- * @param[in] _pstName variable name
- * @param[in] _iRows Number of row
- * @param[in] _iCols Number of column
- * @param[in] _pstStrings array of strings ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-SciErr createNamedMatrixOfString(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const char* const* _pstStrings);
-
-/**
-* Create wide strings variable data
-* @param[in] _pstName variable name
-* @param[in] _iRows number of rows
-* @param[in] _iCols number of columns
-* @param[in] _pwstStrings array of wide strings ( null terminated )
-* @return if the operation succeeded (0) or not ( !0 )
-*/
-SciErr createNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const wchar_t* const* _pwstStrings);
-
-/**
- * Get strings variable data
- * @param[in] _pstName variable name
- * @param[out] _piRows number of rows
- * @param[out] _piCols number of columns
- * @param[out] _piLength return strings lengths
- * @param[in] _pstStrings array of strings ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-SciErr readNamedMatrixOfString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, int* _piLength, char** _pstStrings);
-
-/**
-* Get wide strings variable data
-* @param[in] _pstName variable name
-* @param[out] _piRows number of rows
-* @param[out] _piCols number of columns
-* @param[out] _piwLength return strings length
-* @param[in] _pstwStrings array of strings ( null terminated )
-* @return if the operation succeeded (0) or not ( !0 )
-*/
-SciErr readNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, int* _piwLength, wchar_t** _pwstStrings);
-
-/*shortcut functions*/
-
-/**
- * check if the variable type is string
- * @param[in] _piAddress variable address
- * @return 1 for true and 0 for false
- */
-int isStringType(void* _pvCtx, int* _piAddress);
-
-/**
- * check if the variable type is string
- * @param[in] _pstName variable name
- * @return 1 for true and 0 for false
- */
-int isNamedStringType(void* _pvCtx, const char* _pstName);
-
-/**
- * Get single string variable data
- * @param[in] _piAddress variable address
- * @param[out] _pstData return allocated string pointer ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int getAllocatedSingleString(void* _pvCtx, int* _piAddress, char** _pstData);
-
-/**
- * Get single wide string variable data
- * @param[in] _piAddress variable address
- * @param[out] _pwstData return allocated wide string pointer ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int getAllocatedSingleWideString(void* _pvCtx, int* _piAddress, wchar_t** _pwstData);
-
-/**
- * Get strings variable data
- * @param[in] _piAddress variable address
- * @param[out] _piRows return number of rows
- * @param[out] _piCols return number of columns
- * @param[out] _pstData return allocated array of string pointer ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int getAllocatedMatrixOfString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, char*** _pstData);
-
-/**
- * Get wide strings variable data
- * @param[in] _piAddress variable address
- * @param[out] _piRows return number of rows
- * @param[out] _piCols return number of columns
- * @param[out] _pwstData return allocated array of wide string pointer ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int getAllocatedMatrixOfWideString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, wchar_t*** _pwstData);
-
-
-/**
- * Get single named string variable data
- * @param[in] _pstName variable name
- * @param[out] _pstData return allocated string pointer ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int getAllocatedNamedSingleString(void* _pvCtx, const char* _pstName, char** _pstData);
-
-/**
- * Get single named string variable data
- * @param[in] _pstName variable name
- * @param[out] _pwstData return allocated string pointer ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int getAllocatedNamedSingleWideString(void* _pvCtx, const char* _pstName, wchar_t** _pwstData);
-
-/**
- * Get named strings variable data
- * @param[in] _pstName variable name
- * @param[out] _piRows number of rows
- * @param[out] _piCols number of columns
- * @param[out] _pstData return allocated array of string pointer ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int getAllocatedNamedMatrixOfString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, char*** _pstData);
-
-/**
- * Get named wide strings variable data
- * @param[in] _pstName variable name
- * @param[out] _piRows number of rows
- * @param[out] _piCols number of columns
- * @param[out] _pwstData return allocated array of wide string pointer ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int getAllocatedNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, wchar_t*** _pwstData);
-
-/**
- * Create single string variable data
- * @param[in] _iVar variable number
- * @param[in] _pstStrings string ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int createSingleString(void* _pvCtx, int _iVar, const char* _pstStrings);
-
-/**
- * Create single wide string variable data
- * @param[in] _iVar variable number
- * @param[in] _pwstStrings wide string ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int createSingleWideString(void* _pvCtx, int _iVar, const wchar_t* _pwstStrings);
-
-/**
- * Create named single string variable data
- * @param[in] _pstName variable name
- * @param[in] _pstStrings string ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int createNamedSingleString(void* _pvCtx, const char* _pstName, const char* _pstStrings);
-
-/**
- * Create named single wide string variable data
- * @param[in] _pstName variable name
- * @param[in] _pwstStrings wide string ( null terminated )
- * @return if the operation succeeded (0) or not ( !0 )
- */
-int createNamedSingleWideString(void* _pvCtx, const char* _pstName, const wchar_t* _pwstStrings);
-
-/**
- * free data allocated by shortcut functions ( named or not )
- * @param[in] _pstData string data
- */
-void freeAllocatedSingleString(char* _pstData);
-
-/**
- * free data allocated by shortcut functions ( named or not )
- * @param[in] _pwstData wide string data
- */
-void freeAllocatedSingleWideString(wchar_t* _pwstData);
-
-/**
- * free data allocated by shortcut functions ( named or not )
- * @param[in] _iRows number of rows
- * @param[in] _iCols number of columns
- * @param[in] _pstData matrix of string data
- */
-void freeAllocatedMatrixOfString(int _iRows, int _iCols, char** _pstData);
-
-/**
- * free data allocated by shortcut functions ( named or not )
- * @param[in] _iRows number of rows
- * @param[in] _iCols number of columns
- * @param[in] _pwstData matrix of wide string data
- */
-void freeAllocatedMatrixOfWideString(int _iRows, int _iCols, wchar_t** _pwstData);
+    /*******************************/
+    /*   string matrix functions   */
+    /*******************************/
+
+    /**
+     * Get strings variable data
+     * @param[in] _piAddress variable address
+     * @param[out] _piRows return number of rows
+     * @param[out] _piCols return number of columns
+     * @param[out] _piLength return strings lengths
+     * @param[out] _pstStrings return array of char
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    SciErr getMatrixOfString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, int* _piLength, char** _pstStrings);
+
+    /**
+     * Get wide strings variable data
+     * @param[in] _piAddress variable address
+     * @param[out] _piRows return number of rows
+     * @param[out] _piCols return number of columns
+     * @param[out] _piwLength return strings length
+     * @param[out] _pwstStrings return array of wide char
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    SciErr getMatrixOfWideString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, int* _piwLength, wchar_t** _pwstStrings);
+
+    /**
+     * Create strings variable data
+     * @param[in] _iVar variable number
+     * @param[in] _iRows number of rows
+     * @param[in] _iCols number of columns
+     * @param[in] _pstStrings array of strings ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    SciErr createMatrixOfString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const char* const* _pstStrings);
+
+    /**
+    * Create wide strings variable data
+    * @param[in] _iVar variable number
+    * @param[in] _iRows Number of rows
+    * @param[in] _iCols Number of columns
+    * @param[in] _pwstStrings array of strings ( null terminated )
+    * @return if the operation succeeded (0) or not ( !0 )
+    */
+    SciErr createMatrixOfWideString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const wchar_t* const* _pwstStrings);
+
+    /**
+     * Create strings variable data
+     * @param[in] _pstName variable name
+     * @param[in] _iRows Number of row
+     * @param[in] _iCols Number of column
+     * @param[in] _pstStrings array of strings ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    SciErr createNamedMatrixOfString(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const char* const* _pstStrings);
+
+    /**
+    * Create wide strings variable data
+    * @param[in] _pstName variable name
+    * @param[in] _iRows number of rows
+    * @param[in] _iCols number of columns
+    * @param[in] _pwstStrings array of wide strings ( null terminated )
+    * @return if the operation succeeded (0) or not ( !0 )
+    */
+    SciErr createNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const wchar_t* const* _pwstStrings);
+
+    /**
+     * Get strings variable data
+     * @param[in] _pstName variable name
+     * @param[out] _piRows number of rows
+     * @param[out] _piCols number of columns
+     * @param[out] _piLength return strings lengths
+     * @param[in] _pstStrings array of strings ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    SciErr readNamedMatrixOfString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, int* _piLength, char** _pstStrings);
+
+    /**
+    * Get wide strings variable data
+    * @param[in] _pstName variable name
+    * @param[out] _piRows number of rows
+    * @param[out] _piCols number of columns
+    * @param[out] _piwLength return strings length
+    * @param[in] _pstwStrings array of strings ( null terminated )
+    * @return if the operation succeeded (0) or not ( !0 )
+    */
+    SciErr readNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, int* _piwLength, wchar_t** _pwstStrings);
+
+    /*shortcut functions*/
+
+    /**
+     * check if the variable type is string
+     * @param[in] _piAddress variable address
+     * @return 1 for true and 0 for false
+     */
+    int isStringType(void* _pvCtx, int* _piAddress);
+
+    /**
+     * check if the variable type is string
+     * @param[in] _pstName variable name
+     * @return 1 for true and 0 for false
+     */
+    int isNamedStringType(void* _pvCtx, const char* _pstName);
+
+    /**
+     * Get single string variable data
+     * @param[in] _piAddress variable address
+     * @param[out] _pstData return allocated string pointer ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int getAllocatedSingleString(void* _pvCtx, int* _piAddress, char** _pstData);
+
+    /**
+     * Get single wide string variable data
+     * @param[in] _piAddress variable address
+     * @param[out] _pwstData return allocated wide string pointer ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int getAllocatedSingleWideString(void* _pvCtx, int* _piAddress, wchar_t** _pwstData);
+
+    /**
+     * Get strings variable data
+     * @param[in] _piAddress variable address
+     * @param[out] _piRows return number of rows
+     * @param[out] _piCols return number of columns
+     * @param[out] _pstData return allocated array of string pointer ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int getAllocatedMatrixOfString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, char*** _pstData);
+
+    /**
+     * Get wide strings variable data
+     * @param[in] _piAddress variable address
+     * @param[out] _piRows return number of rows
+     * @param[out] _piCols return number of columns
+     * @param[out] _pwstData return allocated array of wide string pointer ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int getAllocatedMatrixOfWideString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, wchar_t*** _pwstData);
+
+
+    /**
+     * Get single named string variable data
+     * @param[in] _pstName variable name
+     * @param[out] _pstData return allocated string pointer ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int getAllocatedNamedSingleString(void* _pvCtx, const char* _pstName, char** _pstData);
+
+    /**
+     * Get single named string variable data
+     * @param[in] _pstName variable name
+     * @param[out] _pwstData return allocated string pointer ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int getAllocatedNamedSingleWideString(void* _pvCtx, const char* _pstName, wchar_t** _pwstData);
+
+    /**
+     * Get named strings variable data
+     * @param[in] _pstName variable name
+     * @param[out] _piRows number of rows
+     * @param[out] _piCols number of columns
+     * @param[out] _pstData return allocated array of string pointer ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int getAllocatedNamedMatrixOfString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, char*** _pstData);
+
+    /**
+     * Get named wide strings variable data
+     * @param[in] _pstName variable name
+     * @param[out] _piRows number of rows
+     * @param[out] _piCols number of columns
+     * @param[out] _pwstData return allocated array of wide string pointer ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int getAllocatedNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, wchar_t*** _pwstData);
+
+    /**
+     * Create single string variable data
+     * @param[in] _iVar variable number
+     * @param[in] _pstStrings string ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int createSingleString(void* _pvCtx, int _iVar, const char* _pstStrings);
+
+    /**
+     * Create single string variable data
+     * @param[in] _iVar variable number
+     * @param[in] _iLen string length to reserve space in stack
+     * @param[out] pointer on the new single string
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int allocSingleString(void* _pvCtx, int _iVar, int _iLen, const char** _pstStrings);
+
+    /**
+     * Create single wide string variable data
+     * @param[in] _iVar variable number
+     * @param[in] _pwstStrings wide string ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int createSingleWideString(void* _pvCtx, int _iVar, const wchar_t* _pwstStrings);
+
+    /**
+     * Create named single string variable data
+     * @param[in] _pstName variable name
+     * @param[in] _pstStrings string ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int createNamedSingleString(void* _pvCtx, const char* _pstName, const char* _pstStrings);
+
+    /**
+     * Create named single wide string variable data
+     * @param[in] _pstName variable name
+     * @param[in] _pwstStrings wide string ( null terminated )
+     * @return if the operation succeeded (0) or not ( !0 )
+     */
+    int createNamedSingleWideString(void* _pvCtx, const char* _pstName, const wchar_t* _pwstStrings);
+
+    /**
+     * free data allocated by shortcut functions ( named or not )
+     * @param[in] _pstData string data
+     */
+    void freeAllocatedSingleString(char* _pstData);
+
+    /**
+     * free data allocated by shortcut functions ( named or not )
+     * @param[in] _pwstData wide string data
+     */
+    void freeAllocatedSingleWideString(wchar_t* _pwstData);
+
+    /**
+     * free data allocated by shortcut functions ( named or not )
+     * @param[in] _iRows number of rows
+     * @param[in] _iCols number of columns
+     * @param[in] _pstData matrix of string data
+     */
+    void freeAllocatedMatrixOfString(int _iRows, int _iCols, char** _pstData);
+
+    /**
+     * free data allocated by shortcut functions ( named or not )
+     * @param[in] _iRows number of rows
+     * @param[in] _iCols number of columns
+     * @param[in] _pwstData matrix of wide string data
+     */
+    void freeAllocatedMatrixOfWideString(int _iRows, int _iCols, wchar_t** _pwstData);
 
 #ifdef __cplusplus
 }
index c983bb4..a28ced0 100644 (file)
@@ -48,8 +48,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,4,1,0
- PRODUCTVERSION 5,4,1,0
+ FILEVERSION 5,5,0,0
+ PRODUCTVERSION 5,5,0,0
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -65,12 +65,12 @@ BEGIN
         BLOCK "040c04b0"
         BEGIN
             VALUE "FileDescription", "api_scilab module"
-            VALUE "FileVersion", "5, 4, 1, 0"
+            VALUE "FileVersion", "5, 5, 0, 0"
             VALUE "InternalName", "api_scilab module"
             VALUE "LegalCopyright", "Copyright (C) 2013"
             VALUE "OriginalFilename", "api_scilab.dll"
             VALUE "ProductName", "api_scilab module"
-            VALUE "ProductVersion", "5, 4, 1, 0"
+            VALUE "ProductVersion", "5, 5, 0, 0"
         END
     END
     BLOCK "VarFileInfo"
diff --git a/scilab/modules/api_scilab/src/cpp/api_handle.cpp b/scilab/modules/api_scilab/src/cpp/api_handle.cpp
new file mode 100644 (file)
index 0000000..5a8171c
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ * Please note that piece of code will be rewrited for the Scilab 6 family
+ * However, the API (profile of the functions in the header files) will be
+ * still available and supported in Scilab 6.
+ */
+
+#include "api_scilab.h"
+#include "api_internal_common.h"
+#include "api_internal_handle.h"
+#include "localization.h"
+
+#include "Scierror.h"
+#include "call_scilab.h"
+
+
+
+SciErr getMatrixOfHandle(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, long long** _pllHandle)
+{
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int iType = 0;
+
+    if (       _piAddress == NULL)
+    {
+        addErrorMessage(&sciErr, API_ERROR_INVALID_POINTER, _("%s: Invalid argument address"), "getMatrixOfHandle");
+        return sciErr;
+    }
+
+    sciErr = getVarType(_pvCtx, _piAddress, &iType);
+    if (sciErr.iErr || iType != sci_handles)
+    {
+        addErrorMessage(&sciErr, API_ERROR_INVALID_TYPE, _("%s: Invalid argument type, %s excepted"), "getMatrixOfHandle", _("handle matrix"));
+        return sciErr;
+    }
+
+    sciErr = getVarDimension(_pvCtx, _piAddress, _piRows, _piCols);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_HANDLE, _("%s: Unable to get argument #%d"), "getMatrixOfHandle", getRhsFromAddress(_pvCtx, _piAddress));
+        return sciErr;
+    }
+
+    if (_pllHandle)
+    {
+        *_pllHandle = (long long*)(_piAddress + 4);
+    }
+    return sciErr;
+}
+/*--------------------------------------------------------------------------*/
+SciErr allocMatrixOfHandle(void* _pvCtx, int _iVar, int _iRows, int _iCols, long long** _pllHandle)
+{
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int iNewPos = Top - Rhs + _iVar;
+    int iAddr = *Lstk(iNewPos);
+    int* piAddr = NULL;
+
+    int iMemSize = _iRows * _iCols + 2;
+    int iFreeSpace = iadr(*Lstk(Bot)) - (iadr(iAddr));
+    if (iMemSize > iFreeSpace)
+    {
+        addStackSizeError(&sciErr, ((StrCtx*)_pvCtx)->pstName, iMemSize);
+        return sciErr;
+    }
+
+    getNewVarAddressFromPosition(_pvCtx, iNewPos, &piAddr);
+    fillMatrixOfHandle(_pvCtx, piAddr, _iRows, _iCols, _pllHandle);
+
+    int iSCIAddress = sadr(iadr(iAddr) + 4);
+    updateInterSCI(_iVar, '$', iAddr, iSCIAddress);
+    updateLstk(iNewPos, sadr(iadr(iAddr) + 4), _iRows * _iCols);
+    return sciErr;
+}
+/*--------------------------------------------------------------------------*/
+SciErr createMatrixOfHandle(void* _pvCtx, int _iVar, int _iRows, int _iCols, long long* _pllHandle)
+{
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    long long* pllHandle = NULL;
+
+    if (_iRows == 0 && _iCols == 0)
+    {
+        double dblReal = 0;
+        sciErr = createMatrixOfDouble(_pvCtx, _iVar, 0, 0, &dblReal);
+        if (sciErr.iErr)
+        {
+            addErrorMessage(&sciErr, API_ERROR_CREATE_EMPTY_MATRIX, _("%s: Unable to create variable in Scilab memory"), "createEmptyMatrix");
+        }
+        return sciErr;
+    }
+
+    sciErr = allocMatrixOfHandle(_pvCtx, _iVar, _iRows, _iCols, &pllHandle);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_CREATE_HANDLE, _("%s: Unable to create variable in Scilab memory"), "createMatrixOfHandle");
+        return sciErr;
+    }
+
+    memcpy(pllHandle, _pllHandle, sizeof(long long) * _iRows * _iCols);
+    return sciErr;
+}
+/*--------------------------------------------------------------------------*/
+SciErr fillMatrixOfHandle(void* _pvCtx, int* _piAddress, int _iRows, int _iCols, long long** _pllHandle)
+{
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    _piAddress[0]      = sci_handles;
+    _piAddress[1] = Min(_iRows, _iRows * _iCols);
+    _piAddress[2] = Min(_iCols, _iRows * _iCols);
+
+    *_pllHandle = (long long*)(_piAddress + 4);
+    return sciErr;
+}
+/*--------------------------------------------------------------------------*/
+int isHandleType(void* _pvCtx, int* _piAddress)
+{
+    return checkVarType(_pvCtx, _piAddress, sci_handles);
+}
+/*--------------------------------------------------------------------------*/
+int getScalarHandle(void* _pvCtx, int* _piAddress, long long* _pllHandle)
+{
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int iRows  = 0;
+    int iCols  = 0;
+
+    long long* pllHandle = NULL;
+
+    sciErr = getMatrixOfHandle(_pvCtx, _piAddress, &iRows, &iCols, &pllHandle);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_SCALAR_HANDLE, _("%s: Unable to get argument #%d"), "getScalarHandle", getRhsFromAddress(_pvCtx, _piAddress));
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    if (isScalar(_pvCtx, _piAddress) == 0)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_SCALAR_HANDLE, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), "getScalarHandle", getRhsFromAddress(_pvCtx, _piAddress));
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    if (_pllHandle != NULL)
+    {
+        *_pllHandle    = pllHandle[0];
+    }
+
+    return 0;
+}
+/*--------------------------------------------------------------------------*/
+int createScalarHandle(void* _pvCtx, int _iVar, long long _llHandle)
+{
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    long long* pllHandle = NULL;
+
+    sciErr = allocMatrixOfHandle(_pvCtx, _iVar, 1, 1, &pllHandle);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_CREATE_SCALAR_HANDLE, _("%s: Unable to create variable in Scilab memory"), "createScalarHandle");
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    pllHandle[0] = _llHandle;
+    return 0;
+}
diff --git a/scilab/modules/api_scilab/src/cpp/api_optional.cpp b/scilab/modules/api_scilab/src/cpp/api_optional.cpp
new file mode 100644 (file)
index 0000000..e9b8a97
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ */
+
+#include "api_scilab.h"
+#include "localization.h"
+#include "Scierror.h"
+#include "call_scilab.h"
+#include "sciprint.h"
+
+static int findOptional(void* _pvCtx, char *fname, rhs_opts opts[]);
+static void printOptionalNames(void* _pvCtx, rhs_opts opts[]);
+
+/**************************/
+/*   optional functions   */
+/**************************/
+int getOptionals(void* _pvCtx, char* fname, rhs_opts opts[])
+{
+    int k, i = 0;
+    char name[nlgh + 1];
+    int nopt = NumOpt();        /* optional arguments on the stack */
+
+    /* reset first field since opts is declared static in calling function */
+    /* this could be avoided with ansi compilers by removing static in the
+     * opts declaration */
+
+    while (opts[i].pstName != NULL)
+    {
+        opts[i].iPos = -1;
+        i++;
+    }
+
+    /* Walking through last arguments */
+
+    for (k = Rhs - nopt + 1; k <= Rhs; k++)
+    {
+        if (IsOpt(k, name) == 0)
+        {
+            Scierror(999, _("%s: Optional arguments name=val must be at the end.\n"), fname);
+            return 0;
+        }
+        else
+        {
+            int isopt = findOptional(_pvCtx, name, opts);
+
+            if (isopt >= 0)
+            {
+                rhs_opts *ro = &opts[isopt];
+                ro->iPos = k;
+                getVarAddressFromPosition(_pvCtx, k, &ro->piAddr);
+                getVarType(_pvCtx, ro->piAddr, &ro->iType);
+                getVarDimension(_pvCtx, ro->piAddr, &ro->iRows, &ro->iCols);
+            }
+            else
+            {
+                sciprint(_("%s: Unrecognized optional arguments %s.\n"), fname, name);
+                printOptionalNames(_pvCtx, opts);
+                SciError(999);
+                return 0;
+            }
+        }
+    }
+    return 1;
+}
+
+static int findOptional(void* _pvCtx, char *fname, rhs_opts opts[])
+{
+    int rep = -1, i = 0;
+
+    while (opts[i].pstName != NULL)
+    {
+        int cmp;
+
+        /* name is terminated by white space and we want to ignore them */
+        if ((cmp = strcmp(fname, opts[i].pstName)) == 0)
+        {
+            rep = i;
+            break;
+        }
+        else if (cmp < 0)
+        {
+            break;
+        }
+        else
+        {
+            i++;
+        }
+    }
+    return rep;
+}
+
+void printOptionalNames(void* _pvCtx, rhs_opts opts[])
+/* array of optinal names (in alphabetical order)
+* the array is null terminated */
+{
+    int i = 0;
+
+    if (opts[i].pstName == NULL)
+    {
+        sciprint(_("Optional argument list is empty.\n"));
+        return;
+    }
+    sciprint(_("Optional arguments list: \n"));
+    while (opts[i + 1].pstName != NULL)
+    {
+        sciprint("%s, ", opts[i].pstName);
+        i++;
+    }
+    sciprint(_("and %s.\n"), opts[i].pstName);
+}
index 36f14a2..a676930 100644 (file)
@@ -38,82 +38,86 @@ extern "C"
 
 SciErr getMatrixOfString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, int* _piLength, char** _pstStrings)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int *piOffset = NULL;
-       int *piData             = NULL;
-       int iType                       = 0;
-
-       if(     _piAddress == NULL)
-       {
-               addErrorMessage(&sciErr, API_ERROR_INVALID_POINTER, _("%s: Invalid argument address"), "getMatrixOfString");
-               return sciErr;
-       }
-
-       sciErr = getVarType(_pvCtx, _piAddress, &iType);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfString", getRhsFromAddress(_pvCtx, _piAddress));
-               return sciErr;
-       }
-
-       if(iType != sci_strings)
-       {
-               addErrorMessage(&sciErr, API_ERROR_INVALID_TYPE, _("%s: Invalid argument type, %s excepted"), "getMatrixOfString", _("string matrix"));
-               return sciErr;
-       }
-
-       sciErr = getVarDimension(_pvCtx, _piAddress, _piRows, _piCols);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfString", getRhsFromAddress(_pvCtx, _piAddress));
-               return sciErr;
-       }
-
-       if(_piLength == NULL)
-       {
-               return sciErr;
-       }
-
-       piOffset = _piAddress + 4;
-
-       //non cummulative length
-       for(int i = 0 ; i < *_piRows * *_piCols ; i++)
-       {
-               _piLength[i] = piOffset[i + 1] - piOffset[i];
-       }
-
-       if(_pstStrings == NULL || *_pstStrings == NULL)
-       {
-               return sciErr;
-       }
-
-       piData = piOffset + *_piRows * *_piCols + 1;
-
-       int sum = 0;
-       for(int i = 0 ; i < *_piRows * *_piCols ; i++)
-       {
-               if(_pstStrings[i] == NULL)
-               {
-                       addErrorMessage(&sciErr, API_ERROR_INVALID_SUBSTRING_POINTER, _("%s: Invalid argument address"), "getMatrixOfString");
-                       return sciErr;
-               }
-               code2str(&_pstStrings[i], piData + sum, _piLength[i]);
-               sum += _piLength[i];
-               _pstStrings[i][_piLength[i]] = 0;
-       }
-       return sciErr;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int *piOffset = NULL;
+    int *piData                = NULL;
+    int iType                  = 0;
+
+    if (       _piAddress == NULL)
+    {
+        addErrorMessage(&sciErr, API_ERROR_INVALID_POINTER, _("%s: Invalid argument address"), "getMatrixOfString");
+        return sciErr;
+    }
+
+    sciErr = getVarType(_pvCtx, _piAddress, &iType);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfString", getRhsFromAddress(_pvCtx, _piAddress));
+        return sciErr;
+    }
+
+    if (iType != sci_strings)
+    {
+        addErrorMessage(&sciErr, API_ERROR_INVALID_TYPE, _("%s: Invalid argument type, %s excepted"), "getMatrixOfString", _("string matrix"));
+        return sciErr;
+    }
+
+    sciErr = getVarDimension(_pvCtx, _piAddress, _piRows, _piCols);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfString", getRhsFromAddress(_pvCtx, _piAddress));
+        return sciErr;
+    }
+
+    if (_piLength == NULL)
+    {
+        return sciErr;
+    }
+
+    piOffset = _piAddress + 4;
+
+    //non cummulative length
+    for (int i = 0 ; i < *_piRows * *_piCols ; i++)
+    {
+        _piLength[i] = piOffset[i + 1] - piOffset[i];
+    }
+
+    if (_pstStrings == NULL || *_pstStrings == NULL)
+    {
+        return sciErr;
+    }
+
+    piData = piOffset + *_piRows * *_piCols + 1;
+
+    int sum = 0;
+    for (int i = 0 ; i < *_piRows * *_piCols ; i++)
+    {
+        if (_pstStrings[i] == NULL)
+        {
+            addErrorMessage(&sciErr, API_ERROR_INVALID_SUBSTRING_POINTER, _("%s: Invalid argument address"), "getMatrixOfString");
+            return sciErr;
+        }
+        code2str(&_pstStrings[i], piData + sum, _piLength[i]);
+        sum += _piLength[i];
+        _pstStrings[i][_piLength[i]] = 0;
+    }
+    return sciErr;
 }
 /*--------------------------------------------------------------------------*/
 SciErr createMatrixOfString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const char* const * _pstStrings)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int iNewPos                     = Top - Rhs + _iVar;
-       int iAddr                               = *Lstk(iNewPos);
-       int iTotalLen           = 0;
-       int *piAddr                     = NULL;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int iNewPos                        = Top - Rhs + _iVar;
+    int iAddr                          = *Lstk(iNewPos);
+    int iTotalLen              = 0;
+    int *piAddr                        = NULL;
 
     //return empty matrix
-    if(_iRows == 0 && _iCols == 0)
+    if (_iRows == 0 && _iCols == 0)
     {
         double dblReal = 0;
         sciErr = createMatrixOfDouble(_pvCtx, _iVar, 0, 0, &dblReal);
@@ -124,23 +128,25 @@ SciErr createMatrixOfString(void* _pvCtx, int _iVar, int _iRows, int _iCols, con
         return sciErr;
     }
 
-       getNewVarAddressFromPosition(_pvCtx, iNewPos, &piAddr);
+    getNewVarAddressFromPosition(_pvCtx, iNewPos, &piAddr);
 
-       sciErr = fillMatrixOfString(_pvCtx, piAddr, _iRows, _iCols, _pstStrings, &iTotalLen);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_CREATE_STRING, _("%s: Unable to create variable in Scilab memory"), "createMatrixOfString");
-               return sciErr;
-       }
+    sciErr = fillMatrixOfString(_pvCtx, piAddr, _iRows, _iCols, _pstStrings, &iTotalLen);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_CREATE_STRING, _("%s: Unable to create variable in Scilab memory"), "createMatrixOfString");
+        return sciErr;
+    }
 
-       updateInterSCI(_iVar, '$', iAddr, sadr(iadr(iAddr) + 5 + _iRows * _iCols));
-       updateLstk(iNewPos, sadr(iadr(iAddr) + 5 + _iRows * _iCols + !((_iRows * _iCols) % 2)), (iTotalLen + 1) / (sizeof(double) / sizeof(int)));
-       return sciErr;
+    updateInterSCI(_iVar, '$', iAddr, sadr(iadr(iAddr) + 5 + _iRows * _iCols));
+    updateLstk(iNewPos, sadr(iadr(iAddr) + 5 + _iRows * _iCols + !((_iRows * _iCols) % 2)), (iTotalLen + 1) / (sizeof(double) / sizeof(int)));
+    return sciErr;
 }
 /*--------------------------------------------------------------------------*/
 SciErr fillMatrixOfString(void* _pvCtx, int* _piAddress, int _iRows, int _iCols, const char* const* _pstStrings, int* _piTotalLen)
 {
-    SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
     int* piOffset = NULL;
     int* piData   = NULL;
     int iOffset   = 0;
@@ -170,15 +176,15 @@ SciErr fillMatrixOfString(void* _pvCtx, int* _piAddress, int _iRows, int _iCols,
     piOffset[0] = 1; //Always 1
     piData    = piOffset + _iRows * _iCols + 1;
 
-    if(_pstStrings == NULL)
+    if (_pstStrings == NULL)
     {
         addErrorMessage(&sciErr, API_ERROR_INVALID_POINTER, _("%s: Invalid argument address"), "fillMatrixOfString");
         return sciErr;
     }
 
-    for(int i = 0 ; i < _iRows * _iCols ; i++)
+    for (int i = 0 ; i < _iRows * _iCols ; i++)
     {
-        if(_pstStrings[i] == NULL)
+        if (_pstStrings[i] == NULL)
         {
             addErrorMessage(&sciErr, API_ERROR_INVALID_SUBSTRING_POINTER, _("%s: Invalid argument address"), "getMatrixOfString");
             return sciErr;
@@ -197,16 +203,18 @@ SciErr fillMatrixOfString(void* _pvCtx, int* _piAddress, int _iRows, int _iCols,
 /*--------------------------------------------------------------------------*/
 SciErr createNamedMatrixOfString(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const char* const* _pstStrings)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int iVarID[nsiz];
-       int iSaveRhs    = Rhs;
-       int iSaveTop    = Top;
-       int *piAddr     = NULL;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int iVarID[nsiz];
+    int iSaveRhs       = Rhs;
+    int iSaveTop       = Top;
+    int *piAddr        = NULL;
 
-       int iTotalLen   = 0;
+    int iTotalLen      = 0;
 
     //return named empty matrix
-    if(_iRows == 0 && _iCols == 0)
+    if (_iRows == 0 && _iCols == 0)
     {
         double dblReal = 0;
         sciErr = createNamedMatrixOfDouble(_pvCtx, _pstName, 0, 0, &dblReal);
@@ -217,206 +225,236 @@ SciErr createNamedMatrixOfString(void* _pvCtx, const char* _pstName, int _iRows,
         return sciErr;
     }
 
-    if(!checkNamedVarFormat(_pvCtx, _pstName))
+    if (!checkNamedVarFormat(_pvCtx, _pstName))
     {
         addErrorMessage(&sciErr, API_ERROR_INVALID_NAME, _("%s: Invalid variable name."), "createNamedMatrixOfString");
         return sciErr;
     }
 
     C2F(str2name)(_pstName, iVarID, (int)strlen(_pstName));
-       Top = Top + Nbvars + 1;
+    Top = Top + Nbvars + 1;
 
-       getNewVarAddressFromPosition(_pvCtx, Top, &piAddr);
+    getNewVarAddressFromPosition(_pvCtx, Top, &piAddr);
 
-       //write matrix information
-       sciErr = fillMatrixOfString(_pvCtx, piAddr, _iRows, _iCols, _pstStrings, &iTotalLen);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_CREATE_NAMED_STRING, _("%s: Unable to create %s named \"%s\""), "createNamedMatrixOfString", _("matrix of string"), _pstName);
-               return sciErr;
-       }
+    //write matrix information
+    sciErr = fillMatrixOfString(_pvCtx, piAddr, _iRows, _iCols, _pstStrings, &iTotalLen);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_CREATE_NAMED_STRING, _("%s: Unable to create %s named \"%s\""), "createNamedMatrixOfString", _("matrix of string"), _pstName);
+        return sciErr;
+    }
 
-       //update "variable index"
+    //update "variable index"
 
-       updateLstk(Top, sadr(iadr(*Lstk(Top)) + 5 + _iRows * _iCols), iTotalLen);
+    updateLstk(Top, sadr(iadr(*Lstk(Top)) + 5 + _iRows * _iCols), iTotalLen);
 
-       Rhs = 0;
-       //Add name in stack reference list
-       createNamedVariable(iVarID);
+    Rhs = 0;
+    //Add name in stack reference list
+    createNamedVariable(iVarID);
 
-       Top = iSaveTop;
-       Rhs = iSaveRhs;
-       return sciErr;
+    Top = iSaveTop;
+    Rhs = iSaveRhs;
+    return sciErr;
 }
 /*--------------------------------------------------------------------------*/
 SciErr readNamedMatrixOfString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, int* _piLength, char** _pstStrings)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int* piAddr                             = NULL;
-
-       sciErr = getVarAddressFromName(_pvCtx, _pstName, &piAddr);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_READ_NAMED_STRING, _("%s: Unable to get variable \"%s\""), "readNamedMatrixOfString", _pstName);
-               return sciErr;
-       }
-
-       sciErr = getMatrixOfString(_pvCtx, piAddr, _piRows, _piCols, _piLength, _pstStrings);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_READ_NAMED_STRING, _("%s: Unable to get variable \"%s\""), "readNamedMatrixOfString", _pstName);
-               return sciErr;
-       }
-
-       return sciErr;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int* piAddr                                = NULL;
+
+    sciErr = getVarAddressFromName(_pvCtx, _pstName, &piAddr);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_READ_NAMED_STRING, _("%s: Unable to get variable \"%s\""), "readNamedMatrixOfString", _pstName);
+        return sciErr;
+    }
+
+    sciErr = getMatrixOfString(_pvCtx, piAddr, _piRows, _piCols, _piLength, _pstStrings);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_READ_NAMED_STRING, _("%s: Unable to get variable \"%s\""), "readNamedMatrixOfString", _pstName);
+        return sciErr;
+    }
+
+    return sciErr;
 }
 /*--------------------------------------------------------------------------*/
 SciErr getMatrixOfWideString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, int* _piwLength, wchar_t** _pwstStrings)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int iType                                       = 0;
-       char **pstStrings = NULL;
-       int *piLenStrings = NULL;
-       int strSize = 0;
-
-       if(     _piAddress == NULL)
-       {
-               addErrorMessage(&sciErr, API_ERROR_INVALID_POINTER, _("%s: Invalid argument address"), "getMatrixOfWideString");
-               return sciErr;
-       }
-
-       sciErr = getVarType(_pvCtx, _piAddress, &iType);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
-               return sciErr;
-       }
-
-       if(iType != sci_strings)
-       {
-               addErrorMessage(&sciErr, API_ERROR_INVALID_TYPE, _("%s: Invalid argument type, %s excepted"), "getMatrixOfWideString", _("string matrix"));
-               return sciErr;
-       }
-
-       sciErr = getVarDimension(_pvCtx, _piAddress, _piRows, _piCols);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
-               return sciErr;
-       }
-
-       if (_piwLength == NULL)
-       {
-               return sciErr;
-       }
-
-       strSize = (*_piRows * *_piCols);
-       piLenStrings    = (int*)MALLOC(sizeof(int) * strSize);
-
-       // get length UTF size
-       sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLenStrings, pstStrings);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
-               if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
-               return sciErr;
-       }
-
-       pstStrings = (char**)MALLOC(sizeof(char*) * strSize);
-
-       for(int i = 0; i < strSize; i++)
-       {
-               pstStrings[i] = (char*)MALLOC(sizeof(char)*(piLenStrings[i] + 1));
-       }
-
-       // get strings UTF format
-       sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLenStrings, pstStrings);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
-               if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
-               freeArrayOfString(pstStrings,strSize);
-               return sciErr;
-       }
-
-       for(int i = 0; i < (*_piRows * *_piCols); i++)
-       {
-               wchar_t* wString = to_wide_string(pstStrings[i]);
-               if (wString)
-               {
-                       _piwLength[i] = (int)wcslen(wString);
-                       FREE(wString);
-                       wString = NULL;
-               }
-               else
-               {
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int iType                                  = 0;
+    char **pstStrings = NULL;
+    int *piLenStrings = NULL;
+    int strSize = 0;
+
+    if (       _piAddress == NULL)
+    {
+        addErrorMessage(&sciErr, API_ERROR_INVALID_POINTER, _("%s: Invalid argument address"), "getMatrixOfWideString");
+        return sciErr;
+    }
+
+    sciErr = getVarType(_pvCtx, _piAddress, &iType);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
+        return sciErr;
+    }
+
+    if (iType != sci_strings)
+    {
+        addErrorMessage(&sciErr, API_ERROR_INVALID_TYPE, _("%s: Invalid argument type, %s excepted"), "getMatrixOfWideString", _("string matrix"));
+        return sciErr;
+    }
+
+    sciErr = getVarDimension(_pvCtx, _piAddress, _piRows, _piCols);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
+        return sciErr;
+    }
+
+    if (_piwLength == NULL)
+    {
+        return sciErr;
+    }
+
+    strSize = (*_piRows * *_piCols);
+    piLenStrings       = (int*)MALLOC(sizeof(int) * strSize);
+
+    // get length UTF size
+    sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLenStrings, pstStrings);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
+        if (piLenStrings)
+        {
+            FREE(piLenStrings);
+            piLenStrings = NULL;
+        }
+        return sciErr;
+    }
+
+    pstStrings = (char**)MALLOC(sizeof(char*) * strSize);
+
+    for (int i = 0; i < strSize; i++)
+    {
+        pstStrings[i] = (char*)MALLOC(sizeof(char) * (piLenStrings[i] + 1));
+    }
+
+    // get strings UTF format
+    sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLenStrings, pstStrings);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
+        if (piLenStrings)
+        {
+            FREE(piLenStrings);
+            piLenStrings = NULL;
+        }
+        freeArrayOfString(pstStrings, strSize);
+        return sciErr;
+    }
+
+    for (int i = 0; i < (*_piRows * *_piCols); i++)
+    {
+        wchar_t* wString = to_wide_string(pstStrings[i]);
+        if (wString)
+        {
+            _piwLength[i] = (int)wcslen(wString);
+            FREE(wString);
+            wString = NULL;
+        }
+        else
+        {
             _piwLength[i] = 0;
             addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to convert to wide string #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
-            if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
-            freeArrayOfString(pstStrings,strSize);
+            if (piLenStrings)
+            {
+                FREE(piLenStrings);
+                piLenStrings = NULL;
+            }
+            freeArrayOfString(pstStrings, strSize);
             return sciErr;
-               }
-       }
-
-       if ( (_pwstStrings == NULL) || (*_pwstStrings == NULL) )
-       {
-               if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
-               freeArrayOfString(pstStrings,strSize);
-               return sciErr;
-       }
-       
-       for (int i = 0; i < (*_piRows * *_piCols); i++)
-       {
-               if (pstStrings[i])
-               {
-                       wchar_t *wcstring = to_wide_string(pstStrings[i]);
-                       if (wcstring)
-                       {
-                               if (_pwstStrings[i])
-                               {
-                                       wcscpy(_pwstStrings[i], wcstring);
-                                       _piwLength[i] = (int)wcslen(_pwstStrings[i]);
-                               }
-                               else
-                               {
-                                       _pwstStrings[i] = NULL;
-                                       _piwLength[i] = 0;
-                               }
-                               FREE(wcstring);
-                               wcstring = NULL;
-                       }
-                       else
-                       {
-                               // case to_wide_string fails
-                               _pwstStrings[i] = NULL;
-                               _piwLength[i] = 0;
+        }
+    }
+
+    if ( (_pwstStrings == NULL) || (*_pwstStrings == NULL) )
+    {
+        if (piLenStrings)
+        {
+            FREE(piLenStrings);
+            piLenStrings = NULL;
+        }
+        freeArrayOfString(pstStrings, strSize);
+        return sciErr;
+    }
+
+    for (int i = 0; i < (*_piRows * *_piCols); i++)
+    {
+        if (pstStrings[i])
+        {
+            wchar_t *wcstring = to_wide_string(pstStrings[i]);
+            if (wcstring)
+            {
+                if (_pwstStrings[i])
+                {
+                    wcscpy(_pwstStrings[i], wcstring);
+                    _piwLength[i] = (int)wcslen(_pwstStrings[i]);
+                }
+                else
+                {
+                    _pwstStrings[i] = NULL;
+                    _piwLength[i] = 0;
+                }
+                FREE(wcstring);
+                wcstring = NULL;
+            }
+            else
+            {
+                // case to_wide_string fails
+                _pwstStrings[i] = NULL;
+                _piwLength[i] = 0;
                 addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to convert to wide string #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
-                if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
-                freeArrayOfString(pstStrings,strSize);
+                if (piLenStrings)
+                {
+                    FREE(piLenStrings);
+                    piLenStrings = NULL;
+                }
+                freeArrayOfString(pstStrings, strSize);
                 return sciErr;
-                       }
-               }
-               else
-               {
-                       // case to_wide_string fails
-                       _pwstStrings[i] = NULL;
-                       _piwLength[i] = 0;
-               }
-       }
-
-       freeArrayOfString(pstStrings, strSize);
-       if (piLenStrings) {FREE(piLenStrings); piLenStrings = NULL;}
-
-       return sciErr;
+            }
+        }
+        else
+        {
+            // case to_wide_string fails
+            _pwstStrings[i] = NULL;
+            _piwLength[i] = 0;
+        }
+    }
+
+    freeArrayOfString(pstStrings, strSize);
+    if (piLenStrings)
+    {
+        FREE(piLenStrings);
+        piLenStrings = NULL;
+    }
+
+    return sciErr;
 }
 /*--------------------------------------------------------------------------*/
 SciErr createMatrixOfWideString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const wchar_t* const* _pstwStrings)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       char **pStrings = NULL;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    char **pStrings = NULL;
 
     //return empty matrix
-    if(_iRows == 0 && _iCols == 0)
+    if (_iRows == 0 && _iCols == 0)
     {
         double dblReal = 0;
         sciErr = createMatrixOfDouble(_pvCtx, _iVar, 0, 0, &dblReal);
@@ -427,31 +465,33 @@ SciErr createMatrixOfWideString(void* _pvCtx, int _iVar, int _iRows, int _iCols,
         return sciErr;
     }
 
-       pStrings = (char**)MALLOC( sizeof(char*) * (_iRows * _iCols) );
+    pStrings = (char**)MALLOC( sizeof(char*) * (_iRows * _iCols) );
 
-       for (int i = 0; i < (_iRows * _iCols) ; i++)
-       {
-               pStrings[i] = wide_string_to_UTF8(_pstwStrings[i]);
-       }
+    for (int i = 0; i < (_iRows * _iCols) ; i++)
+    {
+        pStrings[i] = wide_string_to_UTF8(_pstwStrings[i]);
+    }
 
-       sciErr = createMatrixOfString(_pvCtx, _iVar, _iRows, _iCols, pStrings);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_CREATE_WIDE_STRING, _("%s: Unable to create variable in Scilab memory"), "createMatrixOfWideString");
-       }
+    sciErr = createMatrixOfString(_pvCtx, _iVar, _iRows, _iCols, pStrings);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_CREATE_WIDE_STRING, _("%s: Unable to create variable in Scilab memory"), "createMatrixOfWideString");
+    }
 
-       freeArrayOfString(pStrings, _iRows * _iCols);
+    freeArrayOfString(pStrings, _iRows * _iCols);
 
-       return sciErr;
+    return sciErr;
 }
 /*--------------------------------------------------------------------------*/
 SciErr createNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const wchar_t* const* _pwstStrings)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       char **pStrings = NULL;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    char **pStrings = NULL;
 
     //return named empty matrix
-    if(_iRows == 0 && _iCols == 0)
+    if (_iRows == 0 && _iCols == 0)
     {
         double dblReal = 0;
         sciErr = createNamedMatrixOfDouble(_pvCtx, _pstName, 0, 0, &dblReal);
@@ -461,461 +501,561 @@ SciErr createNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int _iR
         }
         return sciErr;
     }
+
     pStrings = (char**)MALLOC( sizeof(char*) * (_iRows * _iCols) );
 
-       for (int i = 0; i < (_iRows * _iCols) ; i++)
-       {
-               pStrings[i] = wide_string_to_UTF8(_pwstStrings[i]);
-       }
+    for (int i = 0; i < (_iRows * _iCols) ; i++)
+    {
+        pStrings[i] = wide_string_to_UTF8(_pwstStrings[i]);
+    }
 
-       sciErr = createNamedMatrixOfString(_pvCtx, _pstName, _iRows, _iCols, pStrings);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_CREATE_NAMED_WIDE_STRING, _("%s: Unable to create %s named \"%s\""), "createNamedMatrixOfWideString", _("matrix of wide string"), _pstName);
-               return sciErr;
-       }
+    sciErr = createNamedMatrixOfString(_pvCtx, _pstName, _iRows, _iCols, pStrings);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_CREATE_NAMED_WIDE_STRING, _("%s: Unable to create %s named \"%s\""), "createNamedMatrixOfWideString", _("matrix of wide string"), _pstName);
+        return sciErr;
+    }
 
-       freeArrayOfString(pStrings, _iRows * _iCols);
+    freeArrayOfString(pStrings, _iRows * _iCols);
 
-       return sciErr;
+    return sciErr;
 }
 /*--------------------------------------------------------------------------*/
 SciErr readNamedMatrixOfWideString(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, int* _piwLength, wchar_t** _pwstStrings)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int* piAddr                             = NULL;
-
-       sciErr = getVarAddressFromName(_pvCtx, _pstName, &piAddr);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_READ_NAMED_WIDE_STRING, _("%s: Unable to get variable \"%s\""), "readNamedMatrixOfWideString", _pstName);
-               return sciErr;
-       }
-
-       sciErr = getMatrixOfWideString(_pvCtx, piAddr, _piRows, _piCols, _piwLength, _pwstStrings);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_READ_NAMED_WIDE_STRING, _("%s: Unable to get variable \"%s\""), "readNamedMatrixOfWideString", _pstName);
-               return sciErr;
-       }
-
-       return sciErr;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int* piAddr                                = NULL;
+
+    sciErr = getVarAddressFromName(_pvCtx, _pstName, &piAddr);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_READ_NAMED_WIDE_STRING, _("%s: Unable to get variable \"%s\""), "readNamedMatrixOfWideString", _pstName);
+        return sciErr;
+    }
+
+    sciErr = getMatrixOfWideString(_pvCtx, piAddr, _piRows, _piCols, _piwLength, _pwstStrings);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_READ_NAMED_WIDE_STRING, _("%s: Unable to get variable \"%s\""), "readNamedMatrixOfWideString", _pstName);
+        return sciErr;
+    }
+
+    return sciErr;
 }
 
 /*shortcut functions*/
 /*--------------------------------------------------------------------------*/
 int isStringType(void* _pvCtx, int* _piAddress)
 {
-       return checkVarType(_pvCtx, _piAddress, sci_strings);
+    return checkVarType(_pvCtx, _piAddress, sci_strings);
 }
 /*--------------------------------------------------------------------------*/
 int isNamedStringType(void* _pvCtx, const char* _pstName)
 {
-       return checkNamedVarType(_pvCtx, _pstName, sci_strings);
+    return checkNamedVarType(_pvCtx, _pstName, sci_strings);
 }
 /*--------------------------------------------------------------------------*/
 int getAllocatedSingleString(void* _pvCtx, int* _piAddress, char** _pstData)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int iRows = 0;
-       int iCols = 0;
-       int iLen = 0;
-
-       if(isScalar(_pvCtx, _piAddress) == 0 || isStringType(_pvCtx, _piAddress) == 0)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_STRING, _("%s: Wrong type for input argument #%d: A single string expected.\n"), "getAllocatedSingleString", getRhsFromAddress(_pvCtx, _piAddress));
-               printError(&sciErr, 0);
-               return sciErr.iErr;
-       }
-
-       sciErr = getMatrixOfString(_pvCtx, _piAddress, &iRows, &iCols, &iLen, NULL);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_STRING, _("%s: Unable to get argument data"), "getAllocatedSingleString");
-               printError(&sciErr, 0);
-               return sciErr.iErr;
-       }
-
-       *_pstData = (char*)MALLOC(sizeof(char) * (iLen + 1)); //+1 for null termination
-
-       sciErr = getMatrixOfString(_pvCtx, _piAddress, &iRows, &iCols, &iLen, _pstData);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_STRING, _("%s: Unable to get argument data"), "getAllocatedSingleString");
-               printError(&sciErr, 0);
-               return sciErr.iErr;
-       }
-
-       return 0;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int iRows = 0;
+    int iCols = 0;
+    int iLen = 0;
+
+    if (isScalar(_pvCtx, _piAddress) == 0 || isStringType(_pvCtx, _piAddress) == 0)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_STRING, _("%s: Wrong type for input argument #%d: A single string expected.\n"), "getAllocatedSingleString", getRhsFromAddress(_pvCtx, _piAddress));
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    sciErr = getMatrixOfString(_pvCtx, _piAddress, &iRows, &iCols, &iLen, NULL);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_STRING, _("%s: Unable to get argument data"), "getAllocatedSingleString");
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    *_pstData = (char*)MALLOC(sizeof(char) * (iLen + 1)); //+1 for null termination
+
+    sciErr = getMatrixOfString(_pvCtx, _piAddress, &iRows, &iCols, &iLen, _pstData);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_STRING, _("%s: Unable to get argument data"), "getAllocatedSingleString");
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    return 0;
 }
 
 /*--------------------------------------------------------------------------*/
 int getAllocatedSingleWideString(void* _pvCtx, int* _piAddress, wchar_t** _pwstData)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int iRows = 0;
-       int iCols = 0;
-       int iLen = 0;
-
-       if(isScalar(_pvCtx, _piAddress) == 0 || isStringType(_pvCtx, _piAddress) == 0)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_WIDE_STRING, _("%s: Wrong type for input argument #%d: A single string expected.\n"), "getAllocatedSingleWideString", getRhsFromAddress(_pvCtx, _piAddress));
-               printError(&sciErr, 0);
-               return sciErr.iErr;
-       }
-
-       sciErr = getMatrixOfWideString(_pvCtx, _piAddress, &iRows, &iCols, &iLen, NULL);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_WIDE_STRING, _("%s: Unable to get argument data"), "getAllocatedSingleWideString");
-               printError(&sciErr, 0);
-               return sciErr.iErr;
-       }
-
-       *_pwstData = (wchar_t*)MALLOC(sizeof(wchar_t) * (iLen + 1)); //+1 for null termination
-
-       sciErr = getMatrixOfWideString(_pvCtx, _piAddress, &iRows, &iCols, &iLen, _pwstData);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_WIDE_STRING, _("%s: Unable to get argument data"), "getAllocatedSingleWideString");
-               printError(&sciErr, 0);
-               return sciErr.iErr;
-       }
-
-       return 0;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int iRows = 0;
+    int iCols = 0;
+    int iLen = 0;
+
+    if (isScalar(_pvCtx, _piAddress) == 0 || isStringType(_pvCtx, _piAddress) == 0)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_WIDE_STRING, _("%s: Wrong type for input argument #%d: A single string expected.\n"), "getAllocatedSingleWideString", getRhsFromAddress(_pvCtx, _piAddress));
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    sciErr = getMatrixOfWideString(_pvCtx, _piAddress, &iRows, &iCols, &iLen, NULL);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_WIDE_STRING, _("%s: Unable to get argument data"), "getAllocatedSingleWideString");
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    *_pwstData = (wchar_t*)MALLOC(sizeof(wchar_t) * (iLen + 1)); //+1 for null termination
+
+    sciErr = getMatrixOfWideString(_pvCtx, _piAddress, &iRows, &iCols, &iLen, _pwstData);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_SINGLE_WIDE_STRING, _("%s: Unable to get argument data"), "getAllocatedSingleWideString");
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    return 0;
 }
 /*--------------------------------------------------------------------------*/
 int getAllocatedMatrixOfString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, char*** _pstData)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int i;
-       int* piLen = 0;
-
-       sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, NULL, NULL);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_STRING_MATRIX, _("%s: Unable to get argument data"), "getAllocatedMatrixOfString");
-               printError(&sciErr, 0);
-               return sciErr.iErr;
-       }
-
-       piLen = (int*)MALLOC(sizeof(int) * *_piRows * *_piCols);
-       *_pstData = (char**)MALLOC(sizeof(char*) * *_piRows * *_piCols);
-
-       sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLen, NULL);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_STRING_MATRIX, _("%s: Unable to get argument data"), "getAllocatedMatrixOfString");
-               printError(&sciErr, 0);
-        if (piLen) {FREE(piLen); piLen = NULL;}
-               return sciErr.iErr;
-       }
-
-       for(i = 0 ; i < *_piRows * *_piCols ; i++)
-       {
-               (*_pstData)[i] = (char*)MALLOC(sizeof(char) * (piLen[i] + 1));//+1 for null termination
-       }
-
-       sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLen, *_pstData);
-    if (piLen) {FREE(piLen); piLen = NULL;}
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_STRING_MATRIX, _("%s: Unable to get argument data"), "getAllocatedMatrixOfString");
-               printError(&sciErr, 0);
-               return sciErr.iErr;
-       }
-
-       return 0;
+    SciErr sciErr;
+    sciErr.iErr = 0;
+    sciErr.iMsgCount = 0;
+    int i;
+    int* piLen = 0;
+
+    sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, NULL, NULL);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_STRING_MATRIX, _("%s: Unable to get argument data"), "getAllocatedMatrixOfString");
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    piLen = (int*)MALLOC(sizeof(int) * *_piRows * *_piCols);
+    *_pstData = (char**)MALLOC(sizeof(char*) * *_piRows * *_piCols);
+
+    sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLen, NULL);
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_STRING_MATRIX, _("%s: Unable to get argument data"), "getAllocatedMatrixOfString");
+        printError(&sciErr, 0);
+        if (piLen)
+        {
+            FREE(piLen);
+            piLen = NULL;
+        }
+        return sciErr.iErr;
+    }
+
+    for (i = 0 ; i < *_piRows * *_piCols ; i++)
+    {
+        (*_pstData)[i] = (char*)MALLOC(sizeof(char) * (piLen[i] + 1));//+1 for null termination
+    }
+
+    sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLen, *_pstData);
+    if (piLen)
+    {
+        FREE(piLen);
+        piLen = NULL;
+    }
+    if (sciErr.iErr)
+    {
+        addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_STRING_MATRIX, _("%s: Unable to get argument data"), "getAllocatedMatrixOfString");
+        printError(&sciErr, 0);
+        return sciErr.iErr;
+    }
+
+    return 0;
 }
 /*--------------------------------------------------------------------------*/
 int getAllocatedMatrixOfWideString(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, wchar_t*** _pwstData)
 {
-       SciErr sciErr; sciErr.iErr = 0; sciErr.iMsgCount = 0;
-       int i;
-       int* piLen = 0;
-
-       sciErr = getMatrixOfWideString(_pvCtx, _piAddress, _piRows, _piCols, NULL, NULL);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_WIDE_STRING_MATRIX, _("%s: Unable to get argument data"), "getAllocatedMatrixOfWideString");
-               printError(&sciErr, 0);
-               return sciErr.iErr;
-       }
-
-       piLen = (int*)MALLOC(sizeof(int) * *_piRows * *_piCols);
-       *_pwstData = (wchar_t**)MALLOC(sizeof(wchar_t*) * *_piRows * *_piCols);
-
-       sciErr = getMatrixOfWideString(_pvCtx, _piAddress, _piRows, _piCols, piLen, NULL);
-       if(sciErr.iErr)
-       {
-               addErrorMessage(&sciErr, API_ERROR_GET_ALLOC_WIDE_STRING_MATRIX, _("%s: Unable to get argument data"), "getAllocatedMatrixOfWideString");
-        if (piLen) {FREE(piLen); piLen = NULL;}
-               printError(&sciErr, 0);
-               return sciErr.