Merging with Master
Bruno JOFRET [Fri, 24 Oct 2008 13:16:18 +0000 (15:16 +0200)]
153 files changed:
SEP/SEP_9_scipad_create_help_from_sci.odt
scilab/.gitignore
scilab/CHANGES
scilab/CHANGES_5.1
scilab/Makefile.am
scilab/Makefile.in
scilab/Version.incl
scilab/configure
scilab/configure.ac
scilab/contrib/toolbox_skeleton/.gitignore [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/tests/unit_tests/c_sum.dia.ref [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/tests/unit_tests/c_sum.tst
scilab/contrib/toolbox_skeleton/tests/unit_tests/fortran_sum.dia.ref [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/tests/unit_tests/fortran_sum.tst
scilab/contrib/toolbox_skeleton/tests/unit_tests/scilab_sum.dia.ref [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/tests/unit_tests/scilab_sum.tst
scilab/modules/console/src/cpp/ConsolePrintf.cpp
scilab/modules/core/help/en_US/getversion.xml
scilab/modules/core/includes/fromjava.h
scilab/modules/core/includes/inffic.h
scilab/modules/core/includes/realmain.h
scilab/modules/core/includes/version.h
scilab/modules/core/sci_gateway/c/sci_getversion.c
scilab/modules/core/src/c/TerminateCore.c
scilab/modules/core/src/c/fromjava.c
scilab/modules/core/src/c/inffic.c
scilab/modules/core/src/c/realmain.c
scilab/modules/core/src/c/sciquit.c
scilab/modules/core/src/c/version.c
scilab/modules/development_tools/help/en_US/test_run.xml
scilab/modules/development_tools/macros/test_run.sci
scilab/modules/fileio/Localization_Import.def [new file with mode: 0644]
scilab/modules/fileio/fileio.vcproj
scilab/modules/fileio/help/en_US/mfscanf.xml
scilab/modules/fileio/help/en_US/mget.xml
scilab/modules/fileio/help/en_US/mopen.xml
scilab/modules/fileio/help/en_US/scanf_conversion.xml
scilab/modules/fileio/src/c/do_xxprintf.c
scilab/modules/fileio/src/c/readline.c
scilab/modules/fileio/src/c/set_xxprintf.c
scilab/modules/fileio/tests/nonreg_tests/bug_3679.dia.ref [new file with mode: 0644]
scilab/modules/fileio/tests/nonreg_tests/bug_3679.tst [new file with mode: 0644]
scilab/modules/fileio/tests/nonreg_tests/bug_3679.txt [new file with mode: 0644]
scilab/modules/fileio/tests/nonreg_tests/bug_3684.dia.ref [new file with mode: 0644]
scilab/modules/fileio/tests/nonreg_tests/bug_3684.tst [new file with mode: 0644]
scilab/modules/fileio/tests/nonreg_tests/bug_3684.txt [new file with mode: 0644]
scilab/modules/graphics/includes/DrawObjects.h
scilab/modules/graphics/macros/%h_p.sci
scilab/modules/graphics/src/c/DrawObjects.c
scilab/modules/graphics/tests/nonreg_tests/bug_3590.dia.ref [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_3590.tst [new file with mode: 0644]
scilab/modules/gui/help/en_US/findobj.xml
scilab/modules/gui/macros/findobj.sci
scilab/modules/gui/src/cpp/InitUIMenu.cpp
scilab/modules/gui/src/cpp/SetUiobjectTag.cpp
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/CallScilabBridge.java
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/ScilabBridge.java
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/canvas/ScrolledSwingScilabCanvas.java
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/tab/SwingScilabTab.java
scilab/modules/gui/src/java/org/scilab/modules/gui/graphicWindow/ScilabGraphicWindow.java
scilab/modules/gui/src/java/org/scilab/modules/gui/graphicWindow/ScilabRendererProperties.java
scilab/modules/gui/src/java/org/scilab/modules/gui/helpbrowser/ScilabHelpBrowser.java
scilab/modules/gui/src/java/org/scilab/modules/gui/tab/ScilabTab.java
scilab/modules/gui/src/java/org/scilab/modules/gui/tab/ScilabTabBridge.java
scilab/modules/gui/src/java/org/scilab/modules/gui/tab/SimpleTab.java
scilab/modules/gui/src/java/org/scilab/modules/gui/tab/Tab.java
scilab/modules/gui/src/java/org/scilab/modules/gui/utils/PositionConverter.java
scilab/modules/gui/src/jni/CallScilabBridge.cpp
scilab/modules/gui/src/jni/CallScilabBridge.giws.xml
scilab/modules/gui/src/jni/CallScilabBridge.hxx
scilab/modules/gui/tests/nonreg_tests/bug_3554.dia.ref [new file with mode: 0644]
scilab/modules/gui/tests/nonreg_tests/bug_3554.tst [new file with mode: 0644]
scilab/modules/helptools/help/en_US/help_from_sci.xml [new file with mode: 0644]
scilab/modules/helptools/macros/clean_help.sci
scilab/modules/helptools/macros/help_from_sci.sci [new file with mode: 0644]
scilab/modules/helptools/macros/xmltoformat.sci
scilab/modules/helptools/src/perl/check_xml.pl
scilab/modules/helptools/tests/nonreg_tests/bug_3645.tst [new file with mode: 0644]
scilab/modules/io/src/c/setenvc.c
scilab/modules/javasci/src/c/javasci_SciAbstractArray.c
scilab/modules/javasci/src/c/javasci_SciStringArray.c
scilab/modules/javasci/src/c/javasci_Scilab.c
scilab/modules/javasci/src/c/javasci_Scilab2.c
scilab/modules/javasci/src/c/javasci_globals.c
scilab/modules/javasci/src/java/javasci/Scilab.java
scilab/modules/localization/Makefile.am
scilab/modules/localization/Makefile.in
scilab/modules/localization/includes/charEncoding.h [new file with mode: 0644]
scilab/modules/localization/includes/localetoutf.h
scilab/modules/localization/includes/localization.h
scilab/modules/localization/includes/setgetlanguage.h
scilab/modules/localization/sci_gateway/c/sci_gettext.c
scilab/modules/localization/sci_gateway/c/sci_setlanguage.c
scilab/modules/localization/src/LibScilab_Import.def
scilab/modules/localization/src/c/InitializeLocalization.c
scilab/modules/localization/src/c/charEncoding.c [new file with mode: 0644]
scilab/modules/localization/src/c/loadsavelanguage.c
scilab/modules/localization/src/c/setgetlanguage.c
scilab/modules/localization/src/localization.vcproj
scilab/modules/output_stream/src/c/Localization_Import.def [new file with mode: 0644]
scilab/modules/output_stream/src/c/basout.c
scilab/modules/output_stream/src/c/output_stream.vcproj
scilab/modules/output_stream/src/c/sciprint.c
scilab/modules/output_stream/tests/nonreg_tests/bug_3070.dia.ref [new file with mode: 0644]
scilab/modules/output_stream/tests/nonreg_tests/bug_3070.tst [new file with mode: 0644]
scilab/modules/overloading/macros/%r_r_s.sci
scilab/modules/renderer/graphics_Import.def
scilab/modules/renderer/renderer_header.def
scilab/modules/renderer/src/cpp/figureDrawing/DrawableFigure.cpp
scilab/modules/renderer/src/cpp/figureDrawing/DrawableFigure.h
scilab/modules/renderer/src/cpp/figureDrawing/DrawableFigureBridge.h
scilab/modules/renderer/src/cpp/figureDrawing/DrawableFigureFactory.cpp
scilab/modules/renderer/src/cpp/figureDrawing/DrawableFigureJavaMapper.cpp
scilab/modules/renderer/src/cpp/figureDrawing/DrawableFigureJavaMapper.hxx
scilab/modules/renderer/src/cpp/figureDrawing/DrawableFigureJoGL.cpp
scilab/modules/renderer/src/cpp/figureDrawing/DrawableFigureJoGL.h
scilab/modules/renderer/src/java/org/scilab/modules/renderer/figureDrawing/DrawableFigureGL.java
scilab/modules/renderer/src/java/org/scilab/modules/renderer/figureDrawing/RendererProperties.java
scilab/modules/renderer/src/jni/DrawableFigureGL.cpp
scilab/modules/renderer/src/jni/DrawableFigureGL.giws.xml
scilab/modules/renderer/src/jni/DrawableFigureGL.hxx
scilab/modules/renderer/src/jni/ScilabGraphicWindow.cpp
scilab/modules/renderer/src/jni/ScilabGraphicWindow.giws.xml
scilab/modules/renderer/src/jni/ScilabGraphicWindow.hxx
scilab/modules/sci2c/locales/en_US/sci2c.pot [new file with mode: 0644]
scilab/modules/sci2c/version.xml [new file with mode: 0644]
scilab/modules/scicos/tests/nonreg_tests/bug_3484.tst [new file with mode: 0644]
scilab/modules/scipad/BUGS
scilab/modules/scipad/changelog.txt
scilab/modules/scipad/tcl/colorize.tcl
scilab/modules/scipad/tcl/infomessages.tcl
scilab/modules/scipad/tcl/menues.tcl
scilab/modules/scipad/tcl/msg_files/fr_fr.msg
scilab/modules/scipad/tcl/scilabexec.tcl
scilab/modules/scipad/tcl/undoredo.tcl
scilab/modules/scipad/version.xml
scilab/modules/shell/src/c/GetCommandLine.c
scilab/modules/shell/src/c/Localization_Import.def [new file with mode: 0644]
scilab/modules/shell/src/c/others/mainscic.c
scilab/modules/shell/src/c/shell.vcproj
scilab/modules/shell/src/c/windows/TermReadAndProcess.c
scilab/modules/shell/src/c/windows/readline_nw.c
scilab/modules/tclsci/LibScilab_Import.def
scilab/modules/tclsci/sci_gateway/c/sci_TCL_GetVar.c
scilab/modules/tclsci/src/c/InitTclTk.c
scilab/modules/tclsci/src/c/ScilabEval.c
scilab/modules/windows_tools/Makefile.am
scilab/modules/windows_tools/Makefile.in
scilab/modules/windows_tools/includes/MutexClosingScilab.h [new file with mode: 0644]
scilab/modules/windows_tools/src/c/scilab_windows/FilesAssociations.c
scilab/modules/windows_tools/src/c/scilab_windows/MutexClosingScilab.c [new file with mode: 0644]
scilab/modules/windows_tools/src/c/scilab_windows/scilab_windows.vcproj
scilab/modules/windows_tools/tests/nonreg_tests/bug_3672.tst [new file with mode: 0644]

index 1d6bc06..08d8d52 100644 (file)
Binary files a/SEP/SEP_9_scipad_create_help_from_sci.odt and b/SEP/SEP_9_scipad_create_help_from_sci.odt differ
index e82ef01..93791da 100644 (file)
@@ -31,6 +31,10 @@ jar
 names
 lib
 
+#
+# backup file (xxe)
+#
+*.xml~
 
 #
 # windows files
index 9f39c21..1186156 100644 (file)
@@ -4,6 +4,12 @@
 - The toolbox skeleton is now released into the public domain to facilitate
   the reuse of the code
 
+Bug fixes:
+==========
+
+* bug 3484 fixed - Scilab crashes when scicos is invoked from the command line.
+
+* bug 3621 fixed - Wrong setting of figure_position in the default figure.
 
                           Changes Scilab 5.0.1 -> 5.0.2
                           =============================
index 703f7a1..5e83193 100644 (file)
@@ -32,13 +32,19 @@ Enhancement:
 
 * Scilab uses Atlas 3.8.2 on Windows
 
-* License changed to Public Domain for most of the examples (especially the toolbox skeleton and the examples in the dynamic link module) 
+* License changed to Public Domain for most of the examples (especially the toolbox skeleton and the examples in the dynamic link module)
+
+* test_run() now accepts absolute paths as first input argument. It permits toolboxes to use this system.
 
 Bug fixes:
 ==========
 
 * rmdir & removedir had problems with the recursive delete under GNU/Linux
 
+* Side effect in the setenvc function.
+
+* -DLINUX option for the gcc removed (useless)
+
 * In the binary, the path to the fortran include directory was wrong.
 
 * bug 3500 fixed - [pcre] match position but no character = no match
@@ -51,6 +57,10 @@ Bug fixes:
 
 * bug 3322 fixed - trimmean primitive - rev 27627 - Added verbose option, added unit tests, updated doc.
 
+* bug 3411 fixed - eye on a sparse is not explicit
+
+* bug 3484 fixed - Scilab crashes when scicos is invoked from the command line.
+
 * bug 3512 fixed - regexp could return incorrect results
 
 * bug 3530 fixed - Check that X11/Xlib.h is available since the Tk header needs it
@@ -81,6 +91,8 @@ Bug fixes:
 
 * bug 3602 fixed - format("e",dd) was causing a bug in gettklib (format of the number)
 
+* bug 3621 fixed - Wrong setting of figure_position in the default figure.
+
 * bug 3628 fixed - Problem with cdouble type arguments in intersci.
 
 * bug 3607 fixed - Wrong values in Java configuration was causing the memory issues
@@ -100,3 +112,14 @@ Bug fixes:
 * bug 3624, 3640 fixed - Atlas 3.8.0 have a bug causing wrong answer for row-major gemm C=A*A' or A'A 
 
 * bug 3673 fixed - When using Scilab embedded in a Java application through javasci, the first call to javasci API reset the look and feel of the Java application.
+
+* bug 3605 fixed - Could not use javasci in the Linux binary
+
+* bug 3070 fixed - Could not use non-simple character like °, µ, ø ....
+
+* bug 3554 fixed - 'findobj' function does not find figures nor sub-menus and the help example does not work.
+
+* bug 3590 fixed - Error message when we want to see a figure which has as userdata a structure (struct).
+
+* bug 3645 fixed - SCI/contrib/toolbox_skeleton package does not work out of the box, and crashes on help
+
index 2c0a678..8be0113 100644 (file)
@@ -19,7 +19,7 @@ bin_PROGRAMS          = scilab-bin scilab6-bin
 
 bin_SCRIPTS                    = bin/scilab
 
-scilab_bin_SOURCES             = $(top_srcdir)/modules/core/src/c/main_linux.c
+scilab_bin_SOURCES             = $(top_srcdir)/modules/shell/src/c/others/mainscic.c
 
 scilab_bin_LDFLAGS             =
 scilab_bin_CFLAGS              =
@@ -30,8 +30,8 @@ scilab_bin_CFLAGS             =
 # (causing issues on some platform)
 scilab_bin_LDADD = $(top_builddir)/modules/libscilab.la \
 $(top_builddir)/modules/shell/libscishell.la \
-$(top_builddir)/modules/localization/libscilocalization.la \
-$(top_builddir)/modules/core/libscicore.la
+$(top_builddir)/modules/core/libscicore.la \
+$(top_builddir)/modules/localization/libscilocalization.la
 
 if NEED_JAVA
        scilab_bin_LDADD += $(JAVA_JNI_LIBS)
index e28e75e..44ceca2 100644 (file)
@@ -89,18 +89,18 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \
        "$(DESTDIR)$(profilingdir)" "$(DESTDIR)$(rootdir)"
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
-am_scilab_bin_OBJECTS = scilab_bin-main_linux.$(OBJEXT)
+am_scilab_bin_OBJECTS = scilab_bin-mainscic.$(OBJEXT)
 scilab_bin_OBJECTS = $(am_scilab_bin_OBJECTS)
 scilab_bin_DEPENDENCIES = $(top_builddir)/modules/libscilab.la \
        $(top_builddir)/modules/shell/libscishell.la \
-       $(top_builddir)/modules/localization/libscilocalization.la \
-       $(top_builddir)/modules/core/libscicore.la
+       $(top_builddir)/modules/core/libscicore.la \
+       $(top_builddir)/modules/localization/libscilocalization.la
 scilab_bin_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(scilab_bin_CFLAGS) \
        $(CFLAGS) $(scilab_bin_LDFLAGS) $(LDFLAGS) -o $@
 am__scilab_static_bin_SOURCES_DIST =  \
-       $(top_srcdir)/modules/core/src/c/main_linux.c
-am__objects_1 = scilab_static_bin-main_linux.$(OBJEXT)
+       $(top_srcdir)/modules/shell/src/c/others/mainscic.c
+am__objects_1 = scilab_static_bin-mainscic.$(OBJEXT)
 @ENABLE_STATIC_TRUE@am_scilab_static_bin_OBJECTS = $(am__objects_1)
 scilab_static_bin_OBJECTS = $(am_scilab_static_bin_OBJECTS)
 @ENABLE_STATIC_TRUE@scilab_static_bin_DEPENDENCIES =  \
@@ -380,7 +380,7 @@ SUBDIRS = libs \
 ACLOCAL_AMFLAGS = -I m4/
 changelogs = CHANGES
 bin_SCRIPTS = bin/scilab
-scilab_bin_SOURCES = $(top_srcdir)/modules/core/src/c/main_linux.c
+scilab_bin_SOURCES = $(top_srcdir)/modules/shell/src/c/others/mainscic.c
 scilab_bin_LDFLAGS = 
 scilab_bin_CFLAGS = 
 # --no-undefined --relax
@@ -390,8 +390,8 @@ scilab_bin_CFLAGS =
 # (causing issues on some platform)
 scilab_bin_LDADD = $(top_builddir)/modules/libscilab.la \
 $(top_builddir)/modules/shell/libscishell.la \
-$(top_builddir)/modules/localization/libscilocalization.la \
-$(top_builddir)/modules/core/libscicore.la
+$(top_builddir)/modules/core/libscicore.la \
+$(top_builddir)/modules/localization/libscilocalization.la
 
 #      $(X_EXTRA_LIBS) -lXt -lX11 -lSM -lGLU
 #else
@@ -571,8 +571,8 @@ distclean-compile:
        -rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scilab6_bin-scilab.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scilab_bin-main_linux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scilab_static_bin-main_linux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scilab_bin-mainscic.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scilab_static_bin-mainscic.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -595,33 +595,33 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-scilab_bin-main_linux.o: $(top_srcdir)/modules/core/src/c/main_linux.c
-@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_bin_CFLAGS) $(CFLAGS) -MT scilab_bin-main_linux.o -MD -MP -MF $(DEPDIR)/scilab_bin-main_linux.Tpo -c -o scilab_bin-main_linux.o `test -f '$(top_srcdir)/modules/core/src/c/main_linux.c' || echo '$(srcdir)/'`$(top_srcdir)/modules/core/src/c/main_linux.c
-@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/scilab_bin-main_linux.Tpo $(DEPDIR)/scilab_bin-main_linux.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/modules/core/src/c/main_linux.c' object='scilab_bin-main_linux.o' libtool=no @AMDEPBACKSLASH@
+scilab_bin-mainscic.o: $(top_srcdir)/modules/shell/src/c/others/mainscic.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_bin_CFLAGS) $(CFLAGS) -MT scilab_bin-mainscic.o -MD -MP -MF $(DEPDIR)/scilab_bin-mainscic.Tpo -c -o scilab_bin-mainscic.o `test -f '$(top_srcdir)/modules/shell/src/c/others/mainscic.c' || echo '$(srcdir)/'`$(top_srcdir)/modules/shell/src/c/others/mainscic.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/scilab_bin-mainscic.Tpo $(DEPDIR)/scilab_bin-mainscic.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/modules/shell/src/c/others/mainscic.c' object='scilab_bin-mainscic.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_bin_CFLAGS) $(CFLAGS) -c -o scilab_bin-main_linux.o `test -f '$(top_srcdir)/modules/core/src/c/main_linux.c' || echo '$(srcdir)/'`$(top_srcdir)/modules/core/src/c/main_linux.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_bin_CFLAGS) $(CFLAGS) -c -o scilab_bin-mainscic.o `test -f '$(top_srcdir)/modules/shell/src/c/others/mainscic.c' || echo '$(srcdir)/'`$(top_srcdir)/modules/shell/src/c/others/mainscic.c
 
-scilab_bin-main_linux.obj: $(top_srcdir)/modules/core/src/c/main_linux.c
-@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_bin_CFLAGS) $(CFLAGS) -MT scilab_bin-main_linux.obj -MD -MP -MF $(DEPDIR)/scilab_bin-main_linux.Tpo -c -o scilab_bin-main_linux.obj `if test -f '$(top_srcdir)/modules/core/src/c/main_linux.c'; then $(CYGPATH_W) '$(top_srcdir)/modules/core/src/c/main_linux.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/modules/core/src/c/main_linux.c'; fi`
-@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/scilab_bin-main_linux.Tpo $(DEPDIR)/scilab_bin-main_linux.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/modules/core/src/c/main_linux.c' object='scilab_bin-main_linux.obj' libtool=no @AMDEPBACKSLASH@
+scilab_bin-mainscic.obj: $(top_srcdir)/modules/shell/src/c/others/mainscic.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_bin_CFLAGS) $(CFLAGS) -MT scilab_bin-mainscic.obj -MD -MP -MF $(DEPDIR)/scilab_bin-mainscic.Tpo -c -o scilab_bin-mainscic.obj `if test -f '$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; then $(CYGPATH_W) '$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/scilab_bin-mainscic.Tpo $(DEPDIR)/scilab_bin-mainscic.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/modules/shell/src/c/others/mainscic.c' object='scilab_bin-mainscic.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_bin_CFLAGS) $(CFLAGS) -c -o scilab_bin-main_linux.obj `if test -f '$(top_srcdir)/modules/core/src/c/main_linux.c'; then $(CYGPATH_W) '$(top_srcdir)/modules/core/src/c/main_linux.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/modules/core/src/c/main_linux.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_bin_CFLAGS) $(CFLAGS) -c -o scilab_bin-mainscic.obj `if test -f '$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; then $(CYGPATH_W) '$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; fi`
 
-scilab_static_bin-main_linux.o: $(top_srcdir)/modules/core/src/c/main_linux.c
-@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_static_bin_CFLAGS) $(CFLAGS) -MT scilab_static_bin-main_linux.o -MD -MP -MF $(DEPDIR)/scilab_static_bin-main_linux.Tpo -c -o scilab_static_bin-main_linux.o `test -f '$(top_srcdir)/modules/core/src/c/main_linux.c' || echo '$(srcdir)/'`$(top_srcdir)/modules/core/src/c/main_linux.c
-@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/scilab_static_bin-main_linux.Tpo $(DEPDIR)/scilab_static_bin-main_linux.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/modules/core/src/c/main_linux.c' object='scilab_static_bin-main_linux.o' libtool=no @AMDEPBACKSLASH@
+scilab_static_bin-mainscic.o: $(top_srcdir)/modules/shell/src/c/others/mainscic.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_static_bin_CFLAGS) $(CFLAGS) -MT scilab_static_bin-mainscic.o -MD -MP -MF $(DEPDIR)/scilab_static_bin-mainscic.Tpo -c -o scilab_static_bin-mainscic.o `test -f '$(top_srcdir)/modules/shell/src/c/others/mainscic.c' || echo '$(srcdir)/'`$(top_srcdir)/modules/shell/src/c/others/mainscic.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/scilab_static_bin-mainscic.Tpo $(DEPDIR)/scilab_static_bin-mainscic.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/modules/shell/src/c/others/mainscic.c' object='scilab_static_bin-mainscic.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_static_bin_CFLAGS) $(CFLAGS) -c -o scilab_static_bin-main_linux.o `test -f '$(top_srcdir)/modules/core/src/c/main_linux.c' || echo '$(srcdir)/'`$(top_srcdir)/modules/core/src/c/main_linux.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_static_bin_CFLAGS) $(CFLAGS) -c -o scilab_static_bin-mainscic.o `test -f '$(top_srcdir)/modules/shell/src/c/others/mainscic.c' || echo '$(srcdir)/'`$(top_srcdir)/modules/shell/src/c/others/mainscic.c
 
-scilab_static_bin-main_linux.obj: $(top_srcdir)/modules/core/src/c/main_linux.c
-@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_static_bin_CFLAGS) $(CFLAGS) -MT scilab_static_bin-main_linux.obj -MD -MP -MF $(DEPDIR)/scilab_static_bin-main_linux.Tpo -c -o scilab_static_bin-main_linux.obj `if test -f '$(top_srcdir)/modules/core/src/c/main_linux.c'; then $(CYGPATH_W) '$(top_srcdir)/modules/core/src/c/main_linux.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/modules/core/src/c/main_linux.c'; fi`
-@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/scilab_static_bin-main_linux.Tpo $(DEPDIR)/scilab_static_bin-main_linux.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/modules/core/src/c/main_linux.c' object='scilab_static_bin-main_linux.obj' libtool=no @AMDEPBACKSLASH@
+scilab_static_bin-mainscic.obj: $(top_srcdir)/modules/shell/src/c/others/mainscic.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_static_bin_CFLAGS) $(CFLAGS) -MT scilab_static_bin-mainscic.obj -MD -MP -MF $(DEPDIR)/scilab_static_bin-mainscic.Tpo -c -o scilab_static_bin-mainscic.obj `if test -f '$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; then $(CYGPATH_W) '$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/scilab_static_bin-mainscic.Tpo $(DEPDIR)/scilab_static_bin-mainscic.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/modules/shell/src/c/others/mainscic.c' object='scilab_static_bin-mainscic.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_static_bin_CFLAGS) $(CFLAGS) -c -o scilab_static_bin-main_linux.obj `if test -f '$(top_srcdir)/modules/core/src/c/main_linux.c'; then $(CYGPATH_W) '$(top_srcdir)/modules/core/src/c/main_linux.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/modules/core/src/c/main_linux.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scilab_static_bin_CFLAGS) $(CFLAGS) -c -o scilab_static_bin-mainscic.obj `if test -f '$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; then $(CYGPATH_W) '$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/modules/shell/src/c/others/mainscic.c'; fi`
 
 .cpp.o:
 @am__fastdepCXX_TRUE@  $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
index 8cf58ce..394ea34 100644 (file)
@@ -1,2 +1,2 @@
-SCIVERSION=Scilab-trunk-SVN
+SCIVERSION=Scilab-master-GIT
 
index d73e2b3..385de5b 100755 (executable)
@@ -10564,7 +10564,8 @@ fi
 #LDFLAGS="$LIEEE $LDFLAGS"
 #F77_LDFLAGS="$F77_LDFLAGS $LIEEE"
 IS_64_BITS_CPU=false
-if test "$CC" = "gcc" -o "$CC" = "ccache gcc"; then
+case "$CC" in
+        gcc-* | gcc | cc | cc-* | ccache*gcc | ccache*gcc-* )
    ## With GNU Compiler
    if test "$enable_debug_C" = yes; then
          CFLAGS="$CFLAGS -pipe -Wformat -Wshadow -Wfloat-equal -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations  -Wstrict-prototypes  -Wmissing-noreturn -Wendif-labels -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wwrite-strings -Winline -Wredundant-decls -Wall -Wchar-subscripts -Wextra  -Wuninitialized -Wno-format-y2k -Wmissing-format-attribute -Wno-missing-field-initializers -Wno-strict-aliasing  -Wold-style-definition -g3"
@@ -10587,26 +10588,26 @@ if test "$CC" = "gcc" -o "$CC" = "ccache gcc"; then
    case "$host" in
    # Linux sparc | Linux, old binary format a.out (NO LONGER SUPPORTED)
         sparc-*-linux-gnu|*-pc-linux-gnuaout)
-           CFLAGS="$CFLAGS -Dlinux -fwritable-strings"
+           CFLAGS="$CFLAGS -fwritable-strings"
        ;;
-        x86_64-*-linux-gnu)
-               CFLAGS="$CFLAGS -Dlinux -DNARROWPROTO -m64"
+        x86_64-*-linux-gnu | x86_64-linux-gnu)
+               CFLAGS="$CFLAGS -DNARROWPROTO -m64"
                IS_64_BITS_CPU=true
     ;;
         i*86-*-linux-gnu | *-pc-linux-gnu | i*86-*-linux )
-               CFLAGS="$CFLAGS -Dlinux -DNARROWPROTO"
+               CFLAGS="$CFLAGS  -DNARROWPROTO"
        ;;
         ia64-*-linux-gnu )
-               CFLAGS="$CFLAGS -Dlinux -DNARROWPROTO"
+               CFLAGS="$CFLAGS -DNARROWPROTO"
                IS_64_BITS_CPU=true
     ;;
         alpha-*-linux-gnu)
-               CFLAGS="$CFLAGS  -mieee-with-inexact -Dlinux -fwritable-strings"
+               CFLAGS="$CFLAGS  -mieee-with-inexact -fwritable-strings"
                LDFLAGS="$LDFLAGS -mieee-with-inexact"
                IS_64_BITS_CPU=true
        ;;
         powerpc-*-linux-gnu)
-               CFLAGS="$CFLAGS -D_GNU_SOURCE -Dlinux -fwritable-strings"
+               CFLAGS="$CFLAGS -D_GNU_SOURCE -fwritable-strings"
        ;;
         *-*-solaris*)
         if test "$enable_debug_C" = yes; then
@@ -10632,8 +10633,8 @@ if test "$CC" = "gcc" -o "$CC" = "ccache gcc"; then
      LDFLAGS="$LDFLAGS -L/sw/lib"
        ;;
 esac
-
-else
+;; # end of the gcc case on the $CC
+   *)
 
                ## CC compiler (not GCC)
         if test "$enable_debug_C" = yes; then
@@ -10677,7 +10678,8 @@ case "$host" in
        LDFLAGS="$LDFLAGS  -L/usr/local/lib/"
   ;;
 esac
-fi
+;; # end of not a gcc compiler
+esac
 
 
 # flag for possible compilations in configure
@@ -11489,7 +11491,7 @@ echo "${ECHO_T}$ac_java_classpath" >&6; }
 echo $ECHO_N "checking to see if the java compiler works... $ECHO_C" >&6; }
 
     cat << \EOF > conftest.java
-// #line 11492 "configure"
+// #line 11494 "configure"
 
 
 public class conftest {
@@ -11539,7 +11541,7 @@ echo $ECHO_N "checking type of jvm... $ECHO_C" >&6; }
     if test "x$ac_java_jvm_name" = "x" ; then
 
     cat << \EOF > conftest.java
-// #line 11542 "configure"
+// #line 11544 "configure"
 import gnu.java.io.EncodingManager;
 
 public class conftest {
@@ -11587,7 +11589,7 @@ echo $ECHO_N "checking java API version... $ECHO_C" >&6; }
 
 
     cat << \EOF > conftest.java
-// #line 11590 "configure"
+// #line 11592 "configure"
 import java.nio.charset.Charset;
 
 public class conftest {
@@ -11614,7 +11616,7 @@ EOF
 
 
     cat << \EOF > conftest.java
-// #line 11617 "configure"
+// #line 11619 "configure"
 import java.lang.StringBuilder;
 
 public class conftest {
@@ -12893,7 +12895,7 @@ echo $ECHO_N "checking flexdock... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12896 "configure"
+// #line 12898 "configure"
 import org.flexdock.docking.DockingManager;
 
 public class conftest {
@@ -12961,7 +12963,7 @@ echo $ECHO_N "checking looks... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12964 "configure"
+// #line 12966 "configure"
 import com.jgoodies.looks.common.RenderingUtils;
 
 public class conftest {
@@ -13029,7 +13031,7 @@ echo $ECHO_N "checking skinlf... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13032 "configure"
+// #line 13034 "configure"
 import com.l2fprod.util.AccessUtils;
 
 public class conftest {
@@ -13097,7 +13099,7 @@ echo $ECHO_N "checking jogl... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13100 "configure"
+// #line 13102 "configure"
 import javax.media.opengl.glu.GLUnurbs;
 
 public class conftest {
@@ -13165,7 +13167,7 @@ echo $ECHO_N "checking jhall... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13168 "configure"
+// #line 13170 "configure"
 import javax.help.JHelp;
 
 public class conftest {
@@ -13233,7 +13235,7 @@ echo $ECHO_N "checking gluegen-rt... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13236 "configure"
+// #line 13238 "configure"
 import com.sun.gluegen.runtime.CPU;
 
 public class conftest {
@@ -13301,7 +13303,7 @@ echo $ECHO_N "checking jrosetta-API... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13304 "configure"
+// #line 13306 "configure"
 import com.artenum.rosetta.interfaces.core.ConsoleConfiguration;
 
 public class conftest {
@@ -13369,7 +13371,7 @@ echo $ECHO_N "checking jrosetta-engine... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13372 "configure"
+// #line 13374 "configure"
 import com.artenum.rosetta.core.action.AbstractConsoleAction;
 
 public class conftest {
@@ -13437,7 +13439,7 @@ echo $ECHO_N "checking commons-logging... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13440 "configure"
+// #line 13442 "configure"
 import org.apache.commons.logging.LogFactory;
 
 public class conftest {
@@ -25037,7 +25039,7 @@ CPPFLAGS="$CPPFLAGS -I$CHK_TCL_INCLUDE_PATH"
 { echo "$as_me:$LINENO: checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later" >&5
 echo $ECHO_N "checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later... $ECHO_C" >&6; }
 cat > conftest.$ac_ext <<EOF
-#line 25040 "configure"
+#line 25042 "configure"
 #include "confdefs.h"
 
 #include "$CHK_TCL_INCLUDE_PATH/$CHK_TCL_INC_NAME"
@@ -25571,7 +25573,7 @@ CPPFLAGS="$CPPFLAGS $TCL_INC_PATH -I$CHK_TK_INCLUDE_PATH $X_CFLAGS"
 echo $ECHO_N "checking if tk is version $CHK_TK_MAJOR.$CHK_TK_MINOR or later... $ECHO_C" >&6; }
 
 cat > conftest.$ac_ext <<EOF
-#line 25574 "configure"
+#line 25576 "configure"
 #include "confdefs.h"
 
 #include "$CHK_TK_INCLUDE_PATH/$CHK_TK_INC_NAME"
@@ -26395,7 +26397,7 @@ echo $ECHO_N "checking batik-all... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 26398 "configure"
+// #line 26400 "configure"
 import org.apache.batik.parser.Parser;
 
 public class conftest {
@@ -26463,7 +26465,7 @@ echo $ECHO_N "checking saxon... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 26466 "configure"
+// #line 26468 "configure"
 import com.icl.saxon.Loader;
 
 public class conftest {
@@ -26531,7 +26533,7 @@ echo $ECHO_N "checking fop... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 26534 "configure"
+// #line 26536 "configure"
 import org.apache.fop.pdf.PDFInfo;
 
 public class conftest {
@@ -26599,7 +26601,7 @@ echo $ECHO_N "checking jeuclid-core... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 26602 "configure"
+// #line 26604 "configure"
 import net.sourceforge.jeuclid.ant.MathMLConverter;
 
 public class conftest {
@@ -26667,7 +26669,7 @@ echo $ECHO_N "checking commons-io... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 26670 "configure"
+// #line 26672 "configure"
 import org.apache.commons.io.output.CountingOutputStream;
 
 public class conftest {
@@ -26735,7 +26737,7 @@ echo $ECHO_N "checking xmlgraphics-commons... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 26738 "configure"
+// #line 26740 "configure"
 import org.apache.xmlgraphics.util.Service;
 
 public class conftest {
@@ -26804,7 +26806,7 @@ echo $ECHO_N "checking avalon-framework... $ECHO_C" >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 26807 "configure"
+// #line 26809 "configure"
 import org.apache.avalon.framework.configuration.ConfigurationException;
 
 public class conftest {
@@ -27444,7 +27446,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 27447 "configure"' > conftest.$ac_ext
+  echo '#line 27449 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -29314,11 +29316,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:29317: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:29319: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:29321: \$? = $ac_status" >&5
+   echo "$as_me:29323: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -29604,11 +29606,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:29607: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:29609: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:29611: \$? = $ac_status" >&5
+   echo "$as_me:29613: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -29708,11 +29710,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:29711: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:29713: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:29715: \$? = $ac_status" >&5
+   echo "$as_me:29717: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -32157,7 +32159,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 32160 "configure"
+#line 32162 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -32257,7 +32259,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 32260 "configure"
+#line 32262 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -34678,11 +34680,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:34681: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:34683: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:34685: \$? = $ac_status" >&5
+   echo "$as_me:34687: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -34782,11 +34784,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:34785: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:34787: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:34789: \$? = $ac_status" >&5
+   echo "$as_me:34791: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -36380,11 +36382,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:36383: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:36385: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:36387: \$? = $ac_status" >&5
+   echo "$as_me:36389: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -36484,11 +36486,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:36487: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:36489: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:36491: \$? = $ac_status" >&5
+   echo "$as_me:36493: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -38708,11 +38710,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:38711: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:38713: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:38715: \$? = $ac_status" >&5
+   echo "$as_me:38717: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -38998,11 +39000,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:39001: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:39003: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:39005: \$? = $ac_status" >&5
+   echo "$as_me:39007: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -39102,11 +39104,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:39105: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:39107: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:39109: \$? = $ac_status" >&5
+   echo "$as_me:39111: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
index 12c0a98..bc06a67 100644 (file)
@@ -389,7 +389,8 @@ fi
 #LDFLAGS="$LIEEE $LDFLAGS"
 #F77_LDFLAGS="$F77_LDFLAGS $LIEEE"
 IS_64_BITS_CPU=false
-if test "$CC" = "gcc" -o "$CC" = "ccache gcc"; then
+case "$CC" in
+        gcc-* | gcc | cc | cc-* | ccache*gcc | ccache*gcc-* )
    ## With GNU Compiler
    if test "$enable_debug_C" = yes; then
          CFLAGS="$CFLAGS -pipe -Wformat -Wshadow -Wfloat-equal -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations  -Wstrict-prototypes  -Wmissing-noreturn -Wendif-labels -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wwrite-strings -Winline -Wredundant-decls -Wall -Wchar-subscripts -Wextra  -Wuninitialized -Wno-format-y2k -Wmissing-format-attribute -Wno-missing-field-initializers -Wno-strict-aliasing  -Wold-style-definition -g3"
@@ -412,26 +413,26 @@ if test "$CC" = "gcc" -o "$CC" = "ccache gcc"; then
    case "$host" in
    # Linux sparc | Linux, old binary format a.out (NO LONGER SUPPORTED)
         sparc-*-linux-gnu|*-pc-linux-gnuaout)
-           CFLAGS="$CFLAGS -Dlinux -fwritable-strings"
+           CFLAGS="$CFLAGS -fwritable-strings"
        ;;
-        x86_64-*-linux-gnu)
-               CFLAGS="$CFLAGS -Dlinux -DNARROWPROTO -m64"
+        x86_64-*-linux-gnu | x86_64-linux-gnu)
+               CFLAGS="$CFLAGS -DNARROWPROTO -m64"
                IS_64_BITS_CPU=true
     ;;
         i*86-*-linux-gnu | *-pc-linux-gnu | i*86-*-linux )
-               CFLAGS="$CFLAGS -Dlinux -DNARROWPROTO"
+               CFLAGS="$CFLAGS  -DNARROWPROTO"
        ;;
         ia64-*-linux-gnu )
-               CFLAGS="$CFLAGS -Dlinux -DNARROWPROTO"
+               CFLAGS="$CFLAGS -DNARROWPROTO"
                IS_64_BITS_CPU=true
     ;;
         alpha-*-linux-gnu)
-               CFLAGS="$CFLAGS  -mieee-with-inexact -Dlinux -fwritable-strings"
+               CFLAGS="$CFLAGS  -mieee-with-inexact -fwritable-strings"
                LDFLAGS="$LDFLAGS -mieee-with-inexact"
                IS_64_BITS_CPU=true
        ;;
         powerpc-*-linux-gnu)
-               CFLAGS="$CFLAGS -D_GNU_SOURCE -Dlinux -fwritable-strings"
+               CFLAGS="$CFLAGS -D_GNU_SOURCE -fwritable-strings"
        ;;
         *-*-solaris*)
         if test "$enable_debug_C" = yes; then
@@ -457,8 +458,8 @@ if test "$CC" = "gcc" -o "$CC" = "ccache gcc"; then
      LDFLAGS="$LDFLAGS -L/sw/lib"
        ;;
 esac
-
-else
+;; # end of the gcc case on the $CC
+   *)
 
                ## CC compiler (not GCC)
         if test "$enable_debug_C" = yes; then
@@ -502,7 +503,8 @@ case "$host" in
        LDFLAGS="$LDFLAGS  -L/usr/local/lib/"
   ;;
 esac
-fi
+;; # end of not a gcc compiler
+esac
 
 
 # flag for possible compilations in configure
diff --git a/scilab/contrib/toolbox_skeleton/.gitignore b/scilab/contrib/toolbox_skeleton/.gitignore
new file mode 100644 (file)
index 0000000..f091677
--- /dev/null
@@ -0,0 +1,12 @@
+#
+# Generated files
+#
+*.dll
+*.def
+*.obj
+Makelib.mak
+loader.sce
+master_help.xml
+loader_gateway.sce
+skeleton_*.c
+scilab_*_help
diff --git a/scilab/contrib/toolbox_skeleton/tests/unit_tests/c_sum.dia.ref b/scilab/contrib/toolbox_skeleton/tests/unit_tests/c_sum.dia.ref
new file mode 100644 (file)
index 0000000..ccadccc
--- /dev/null
@@ -0,0 +1,17 @@
+// This file is released into the public domain
+//=================================
+// load toolbox_skeleton
+if funptr('c_sum') == 0 then
+  root_tlbx_path = SCI+'\contrib\toolbox_skeleton\';
+ Start Toolbox skeleton   
+ Load macros   
+ Load gateways   
+ Load help   
+end
+//=================================
+if c_sum(3,5) <> 8 then bugmes();quit;end
+//=================================
index 1e7f79d..1b56efd 100644 (file)
@@ -1,4 +1,10 @@
 // This file is released into the public domain
 //=================================
+// load toolbox_skeleton
+if funptr('c_sum') == 0 then
+  root_tlbx_path = SCI+'\contrib\toolbox_skeleton\';
+  exec(root_tlbx_path + 'loader.sce',-1); 
+end
+//=================================
 if c_sum(3,5) <> 8 then pause,end
 //=================================
diff --git a/scilab/contrib/toolbox_skeleton/tests/unit_tests/fortran_sum.dia.ref b/scilab/contrib/toolbox_skeleton/tests/unit_tests/fortran_sum.dia.ref
new file mode 100644 (file)
index 0000000..02efcf4
--- /dev/null
@@ -0,0 +1,17 @@
+// This file is released into the public domain
+//=================================
+// load toolbox_skeleton
+if funptr('fortran_sum') == 0 then
+  root_tlbx_path = SCI+'\contrib\toolbox_skeleton\';
+ Start Toolbox skeleton   
+ Load macros   
+ Load gateways   
+ Load help   
+end
+//=================================
+if fortran_sum(3,5) <> 8 then bugmes();quit;end
+//=================================
index 65c6e3c..254ec14 100644 (file)
@@ -1,4 +1,10 @@
 // This file is released into the public domain
 //=================================
+// load toolbox_skeleton
+if funptr('fortran_sum') == 0 then
+  root_tlbx_path = SCI+'\contrib\toolbox_skeleton\';
+  exec(root_tlbx_path + 'loader.sce',-1); 
+end
+//=================================
 if fortran_sum(3,5) <> 8 then pause,end
 //=================================
diff --git a/scilab/contrib/toolbox_skeleton/tests/unit_tests/scilab_sum.dia.ref b/scilab/contrib/toolbox_skeleton/tests/unit_tests/scilab_sum.dia.ref
new file mode 100644 (file)
index 0000000..6857c74
--- /dev/null
@@ -0,0 +1,17 @@
+// This file is released into the public domain
+//=================================
+// load toolbox_skeleton
+if ~isdef('scilab_sum')  then
+  root_tlbx_path = SCI+'\contrib\toolbox_skeleton\';
+ Start Toolbox skeleton   
+ Load macros   
+ Load gateways   
+ Load help   
+end
+//=================================
+if scilab_sum(3,5) <> 8 then bugmes();quit;end
+//=================================
index b282292..bb270c3 100644 (file)
@@ -1,4 +1,10 @@
 // This file is released into the public domain
 //=================================
+// load toolbox_skeleton
+if ~isdef('scilab_sum')  then
+  root_tlbx_path = SCI+'\contrib\toolbox_skeleton\';
+  exec(root_tlbx_path + 'loader.sce',-1); 
+end
+//=================================
 if scilab_sum(3,5) <> 8 then pause,end
 //=================================
index 971e835..fe894fb 100644 (file)
 #include "CallScilabBridge.hxx"
 using namespace  org_scilab_modules_gui_bridge;
 
-extern "C" {
-#include "localetoutf.h"
-}
 
 int ConsolePrintf(char *line)
 {
-  localeToUTF(&line);
   CallScilabBridge::display(getScilabJavaVM(), line);
   return 0;
 }
index 14a1b79..58fe0af 100644 (file)
@@ -1,15 +1,25 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<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:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="getversion">
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry version="5.0-subset Scilab" xml:id="getversion" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook">
   <info>
-    <pubdate>$LastChangedDate: 2006-10-17 20:39:36 +0200 (mar., 17 oct. 2006)$</pubdate>
+    <pubdate>$LastChangedDate: 2006-10-17 20:39:36 +0200 (mar., 17 oct.
+    2006)$</pubdate>
   </info>
+
   <refnamediv>
     <refname>getversion</refname>
-    <refpurpose>get scilab and modules version
-  information</refpurpose>
+
+    <refpurpose>get scilab and modules version information</refpurpose>
   </refnamediv>
+
   <refsynopsisdiv>
     <title>Calling Sequence</title>
+
     <synopsis>version=getversion()
 [version,opts]=getversion()
 ver=getversion('scilab')
@@ -17,33 +27,46 @@ versioninfo=getversion('scilab','string_info')
 ver=getversion('&lt;module&gt;')
 versioninfo=getversion('&lt;module&gt;','string_info')</synopsis>
   </refsynopsisdiv>
+
   <refsection>
     <title>Parameters</title>
+
     <variablelist>
       <varlistentry>
         <term>version</term>
+
         <listitem>
           <para>a string</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>versioninfo</term>
+
         <listitem>
           <para>a string about version</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>ver</term>
+
         <listitem>
           <para>a integer vector</para>
+
           <para>ver(1) Major version</para>
+
           <para>ver(2) Minor version</para>
+
           <para>ver(3) Maintenance version</para>
-          <para>ver(4) SVN Revision version</para>
+
+          <para>ver(4) GIT timestamp</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>opts</term>
+
         <listitem>
           <para>a vector of string with four entries
           :<literal>[compiler,pvm,tk,modelicac]</literal></para>
@@ -51,28 +74,32 @@ versioninfo=getversion('&lt;module&gt;','string_info')</synopsis>
       </varlistentry>
     </variablelist>
   </refsection>
+
   <refsection>
     <title>Description</title>
+
     <para>return in <literal>version</literal> the Scilab version name and in
-    <literal>opts</literal> build options which can be used to determine if scilab
-    has been build with pvm, tk or modelicac.</para>
+    <literal>opts</literal> build options which can be used to determine if
+    scilab has been build with pvm, tk or modelicac.</para>
   </refsection>
+
   <refsection>
     <title>Examples</title>
-    <programlisting role="example"><![CDATA[getversion()
+
+    <programlisting role="example">getversion()
 [version,opts]=getversion()
 ver=getversion('scilab')
 verstr=getversion('scilab','string_info')
 ver=getversion('overloading')
 verstr=getversion('overloading','string_info')
-   ]]></programlisting>
+   </programlisting>
   </refsection>
+
   <refsection>
     <title>See Also</title>
+
     <simplelist type="inline">
-      <member>
-        <link linkend="getmodules">getmodules</link>
-      </member>
+      <member><link linkend="getmodules">getmodules</link></member>
     </simplelist>
   </refsection>
-</refentry>
+</refentry>
\ No newline at end of file
index e8f7c6a..d445433 100644 (file)
@@ -27,7 +27,7 @@ void SetFromJavaToON(void);
  * @param void  
  * @return <ReturnValue>
  */
-int IsFromJava(void);
+BOOL IsFromJava(void);
 
 #endif /*FROMJAVA*/
 /*--------------------------------------------------------------------------*/ 
index 17c22b7..108b5ce 100644 (file)
 * DEMOS_ID returns "scilab_demos();"
 * SAVE_ID returns "home/scilab.save"
 * QUIT_ID returns "exec('SCI/etc/scilab.quit',-1);quit;"
+* QUIT_ERRCATCH_ID returns "exec('SCI/etc/scilab.quit','errcatch',-1);quit;"
 */
 #define MANUAL_ID 0 
 #define STARTUP_ID 1
 #define DEMOS_ID 2
 #define SAVE_ID 3
 #define QUIT_ID 4
+#define QUIT_ERRCATCH_ID 5
 
 void C2F(inffic)(int *iopt, char *name, int *nc);
 
index 37f9f23..ee9799b 100644 (file)
@@ -39,8 +39,9 @@ typedef enum {
 * @param initial_script 
 * @param initial_script_type    
 * @param memory 
+* @return 0 is everything went fine. not 0 is everything went wrong. (@TODO: should be changed... returning only 0 here)
 */
-void realmain(int no_startup_flag_l,char *initial_script,InitScriptType initial_script_type,int memory);
+int realmain(int no_startup_flag_l,char *initial_script,InitScriptType initial_script_type,int memory);
 
 /**
  * @TODO add comment
index ff0dd81..1bd6433 100644 (file)
@@ -16,7 +16,9 @@
 #define SCI_VERSION_MINOR 0
 #define SCI_VERSION_MAINTENANCE 0
 #define SCI_VERSION_STRING "scilab-trunk-SVN"
+/* SCI_VERSION_REVISION --> hash key commit */
 #define SCI_VERSION_REVISION 0
+#define SCI_VERSION_TIMESTAMP 0
 
 void disp_scilab_version(void);
 
index 5b345ed..1677a1d 100644 (file)
@@ -198,7 +198,7 @@ static int getversion_one_rhs(void)
                        VERSIONMATRIX[0]=(int)SCI_VERSION_MAJOR;
                        VERSIONMATRIX[1]=(int)SCI_VERSION_MINOR;
                        VERSIONMATRIX[2]=(int)SCI_VERSION_MAINTENANCE;
-                       VERSIONMATRIX[3]=(int)SCI_VERSION_REVISION;
+                       VERSIONMATRIX[3]=(int)SCI_VERSION_TIMESTAMP;
                }
                else if (with_module(Param))
                {
index 934f647..6ca9b02 100644 (file)
 #include "tmpdir.h" /* tmpdirc */
 #include "hashtable_core.h" /* destroy_hashtable_scilab_functions */
 #include "filesmanagement.h"
+#include "scilabmode.h"
+#include "stack-c.h"
 /*--------------------------------------------------------------------------*/ 
 BOOL TerminateCorePart1(void)
 {
        if ( Get_no_startup_flag() == 0) 
        {
-               char *quit_script =  get_sci_data_strings(QUIT_ID);
+               char *quit_script = NULL;
+
+               /* bug 3672 */
+               if (getScilabMode() == SCILAB_STD) quit_script = get_sci_data_strings(QUIT_ERRCATCH_ID);
+               else quit_script = get_sci_data_strings(QUIT_ID);
+
+               /* launch scilab.quit script */
                C2F(scirun)(quit_script,(long int)strlen(quit_script));
        }
        return TRUE;
index e51095a..e913519 100644 (file)
@@ -18,7 +18,7 @@ void SetFromJavaToON(void)
        bFromJava=(int)(TRUE);
 }
 /*--------------------------------------------------------------------------*/ 
-int IsFromJava(void)
+BOOL IsFromJava(void)
 {
        return bFromJava;
 }
index 51fefce..5629c26 100644 (file)
 #include "core_math.h"
 #include "inffic.h"
 #include "scilabDefaults.h"
-#define MAXDATA 4 
+#define MAXDATA 5 
 
 
 
 static char *dataStrings[] = {
   "$MANCHAPTERS",
-  "exec('SCI/etc/scilab.start',-1);",         /* start_up instructions file   */
-  "scilab_demos();",    /* demos instructions file      */
-  "home/scilab.save",                   /* on crash save file          */
-  "exec('SCI/etc/scilab.quit',-1);quit;"        /* exit instructions file      */
+  /* start_up instructions file */
+  "exec('SCI/etc/scilab.start',-1);",
+  /* demos instructions file */
+  "scilab_demos();",    
+  /* on crash save file */
+  "home/scilab.save",
+  /* exit instructions file */
+  "exec('SCI/etc/scilab.quit',-1);quit;"        ,
+  /* on exit , we try to catch errors */
+  /* workaround to not have scilab "zombie" */
+  /* bug 3672 */
+  "exec('SCI/etc/scilab.quit','errcatch',-1);quit;"     
 };
 
 /******************************************
index 7a78be7..68040cd 100644 (file)
@@ -32,7 +32,7 @@ static int no_startup_flag=0;
 /*--------------------------------------------------------------------------*/
 #define BSIZE 128
 /*--------------------------------------------------------------------------*/
-void realmain(int no_startup_flag_l, char *initial_script, InitScriptType initial_script_type, int memory)
+int realmain(int no_startup_flag_l, char *initial_script, InitScriptType initial_script_type, int memory)
 {
   static int initialization=-1;
   int ierr=0;
@@ -148,6 +148,8 @@ void realmain(int no_startup_flag_l, char *initial_script, InitScriptType initia
   FREE(startup);
   /* cleaning */
   C2F(sciquit)();
+  /* Actually manage the return code */
+  return 0;
 }
 /*--------------------------------------------------------------------------*/
 void Set_no_startup_flag(int start)
index 554d7ec..a93932f 100644 (file)
@@ -24,6 +24,7 @@
 #include "../../../jvm/includes/TerminateJVM.h"
 #ifdef _MSC_VER
 #include "../../../windows_tools/includes/TerminateWindows_tools.h"
+#include "../../../windows_tools/includes/MutexClosingScilab.h"
 #include "../../../windows_tools/src/c/scilab_windows/killScilabProcess.h"
 #endif
 #include "../../../gui/includes/TerminateGui.h"
@@ -53,16 +54,29 @@ int ExitScilab(void)
 /*--------------------------------------------------------------------------*/ 
 void C2F(sciquit)(void)
 {
+       #ifdef _MSC_VER
+           /* bug 3672 */
+               /* Create a Mutex (closing scilab)
+                 used by files association 
+           */
+               createMutexClosingScilab();
+       #endif
+
        ExitScilab();
-#ifdef sun 
-#ifndef SYSV
-       
-       char **out;
-       ieee_flags("clearall","exeption","all", &out);
-       
-#endif 
-#endif 
+
+       #ifdef sun 
+               #ifndef SYSV
+                       char **out;
+                       ieee_flags("clearall","exception","all", &out);
+               #endif 
+       #endif 
+
        #ifdef _MSC_VER
+               /* close mutex (closing scilab)
+                  used by files association 
+        */
+               terminateMutexClosingScilab();
+               /* kill process and return 0 */
                killScilabProcess(0);
        #else
                exit(0);
index e20c35c..2fdf00a 100644 (file)
@@ -21,7 +21,7 @@ void disp_scilab_version(void)
 {
        if ( (getScilabMode() == SCILAB_NWNI) || (getScilabMode() == SCILAB_NW) || (getScilabMode() == SCILAB_API) )
        {
-               printf(_("Scilab version \"%d.%d.%d.%d\"\n"),SCI_VERSION_MAJOR,SCI_VERSION_MINOR,SCI_VERSION_MAINTENANCE,SCI_VERSION_REVISION);
+               printf(_("Scilab version \"%d.%d.%d.%d\"\n"),SCI_VERSION_MAJOR,SCI_VERSION_MINOR,SCI_VERSION_MAINTENANCE,SCI_VERSION_TIMESTAMP);
                printf("%s\n\n",SCI_VERSION_STRING);
        }
        else
@@ -29,11 +29,11 @@ void disp_scilab_version(void)
                #ifdef _MSC_VER
                {
                        char msg[1024];
-                       wsprintf(msg,_("Scilab version \"%d.%d.%d.%d\"\n%s\n"),SCI_VERSION_MAJOR,SCI_VERSION_MINOR,SCI_VERSION_MAINTENANCE,SCI_VERSION_REVISION,SCI_VERSION_STRING);
+                       wsprintf(msg,_("Scilab version \"%d.%d.%d.%d\"\n%s\n"),SCI_VERSION_MAJOR,SCI_VERSION_MINOR,SCI_VERSION_MAINTENANCE,SCI_VERSION_TIMESTAMP,SCI_VERSION_STRING);
                        MessageBox(NULL,msg,_("Scilab Version Info."),MB_ICONINFORMATION);
                }
                #else
-               printf(_("Scilab version \"%d.%d.%d.%d\"\n"),SCI_VERSION_MAJOR,SCI_VERSION_MINOR,SCI_VERSION_MAINTENANCE,SCI_VERSION_REVISION);
+               printf(_("Scilab version \"%d.%d.%d.%d\"\n"),SCI_VERSION_MAJOR,SCI_VERSION_MINOR,SCI_VERSION_MAINTENANCE,SCI_VERSION_TIMESTAMP);
                printf("%s\n\n",SCI_VERSION_STRING);
                #endif
        }
index e98862e..43b33e5 100644 (file)
@@ -2,11 +2,11 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- * 
+ *
  * 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    
+ * are also available at
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  -->
     <title>Calling Sequence</title>
     <synopsis>
       N = test_run()
-      N = test_run(module_name[,test_name[,options]])
+      N = test_run(module[,test_name[,options]])
     </synopsis>
   </refsynopsisdiv>
   <refsection>
     <title>Parameters</title>
     <variablelist>
       <varlistentry>
-        <term>module_name</term>
+        <term>module</term>
         <listitem>
-          <para>a vector of string</para>
+          <para>a vector of string. It can be the name of a module or the absolute path of a toolbox.</para>
         </listitem>
       </varlistentry>
       <varlistentry>
@@ -87,6 +87,7 @@ test_run([],[]);
 
 // Test one or several module
 test_run('core');
+test_run(SCI+'/modules/core');
 test_run('core',[]);
 test_run(['core','string']);
 
index 0878581..f457e80 100644 (file)
@@ -54,7 +54,7 @@
 //       'help' : display some examples about how to use this command
 //       "nonreg_tests" : runs only the non-regression tests, skipping unit tests
 //       "unit_tests" : runs only the unit tests, skipping non-regression tests
-//       
+//
 // =============================================================================
 // Launch tests
 // =============================================================================
 // test_run();
 // test_run([]);
 // test_run([],[]);
-// 
+//
 // Test one or several module
 // test_run('core');
 // test_run('core',[]);
 // test_run(['core','string']);
-// 
+//
 // Launch one or several test in a specified module
 // test_run('core',['trycatch','opcode']);
-// 
+//
 // With options
 // test_run([],[],'no_check_ref');
 // test_run([],[],'no_check_error_output');
@@ -82,6 +82,8 @@
 // test_run([],[],'mode_nwni');
 // test_run([],[],'help');
 // test_run([],[],['no_check_error_output','create_ref']);
+
+
 function test_run(varargin)
        
        lhs = argn(1);
@@ -180,10 +182,12 @@ function test_run(varargin)
                
                for i=1:nl
                        for j=1:nc
-                               if( with_module(module_mat(i,j)) ) then
+                               if( (with_module(module_mat(i,j))) | .. // It's a scilab internal module
+                                       ( isdir(module_mat(i,j)) & ..       // It's a toolbox
+                                         ( isdir(module_mat(i,j)+"/tests/unit_tests") | isdir(module_mat(i,j)+"/tests/nonreg_tests") ) ) ) then
                                        test_add_module(module_mat(i,j),test_types_keeped);
                                else
-                                       error(sprintf(gettext("%s is not an installed module"),module_mat(i,j)));
+                                       error(sprintf(gettext("%s is not an installed module or toolbox"),module_mat(i,j)));
                                end
                        end
                end
@@ -212,18 +216,34 @@ function test_run(varargin)
                for i=1:nl
                        for j=1:nc
                                
-                               if (fileinfo(SCI+"/modules/"+module+"/tests/unit_tests/"+test_mat(i,j)+".tst")<>[]) ..
-                                       & ( (test_types_keeped=="all_tests") | (test_types_keeped=="unit_tests") ) then
-                                       test_add_onetest(module,test_mat(i,j),"unit_tests");
-                                       
-                               elseif (fileinfo(SCI+"/modules/"+module+"/tests/nonreg_tests/"+test_mat(i,j)+".tst")<>[]) ..
-                                       & ( (test_types_keeped=="all_tests") | (test_types_keeped=="nonreg_tests") ) then
-                                       test_add_onetest(module,test_mat(i,j),"nonreg_tests");
+                               if with_module(module) then
                                
+                                       if (fileinfo(SCI+"/modules/"+module+"/tests/unit_tests/"+test_mat(i,j)+".tst")<>[]) ..
+                                               & ( (test_types_keeped=="all_tests") | (test_types_keeped=="unit_tests") ) then
+                                               test_add_onetest(module,test_mat(i,j),"unit_tests");
+                                               
+                                       elseif (fileinfo(SCI+"/modules/"+module+"/tests/nonreg_tests/"+test_mat(i,j)+".tst")<>[]) ..
+                                               & ( (test_types_keeped=="all_tests") | (test_types_keeped=="nonreg_tests") ) then
+                                               test_add_onetest(module,test_mat(i,j),"nonreg_tests");
+                                       else
+                                               error(sprintf(gettext("The test ""%s"" is not available from the ""%s"" module"),test_mat(i,j),module));
+                                       end
+                                       
                                else
-                                       error(sprintf(gettext("The test ""%s"" is not available from the ""%s"" module"),test_mat(i,j),module));
+                                       
+                                       if (fileinfo(module+"/tests/unit_tests/"+test_mat(i,j)+".tst")<>[]) ..
+                                               & ( (test_types_keeped=="all_tests") | (test_types_keeped=="unit_tests") ) then
+                                               test_add_onetest(module,test_mat(i,j),"unit_tests");
+                                               
+                                       elseif (fileinfo(module+"/tests/nonreg_tests/"+test_mat(i,j)+".tst")<>[]) ..
+                                               & ( (test_types_keeped=="all_tests") | (test_types_keeped=="nonreg_tests") ) then
+                                               test_add_onetest(module,test_mat(i,j),"nonreg_tests");
+                                       else
+                                               error(sprintf(gettext("The test ""%s"" is not available from the ""%s"" toolbox"),test_mat(i,j),module));
+                                       end
                                
                                end
+                               
                        end
                end
        else
@@ -370,7 +390,14 @@ function test_add_module(module_mat,test_type)
        
        if (test_type == "all_tests") | (test_type == "unit_tests") then
        
-               module_test_dir = SCI+"/modules/"+module_mat+"/tests/unit_tests";
+               if with_module(module_mat) then
+                       // It's a scilab internal module
+                       module_test_dir = SCI+"/modules/"+module_mat+"/tests/unit_tests";
+               else
+                       // It's a toolbox
+                       module_test_dir = module_mat+"/tests/unit_tests";
+               end
+               
                test_mat        = gsort(basename(listfiles(module_test_dir+"/*.tst")),"lr","i");
                
                nl = size(test_mat,"*");
@@ -382,7 +409,14 @@ function test_add_module(module_mat,test_type)
        
        if (test_type == "all_tests") | (test_type == "nonreg_tests") then
                
-               module_test_dir = SCI+"/modules/"+module_mat+"/tests/nonreg_tests";
+               if with_module(module_mat) then
+                       // It's a scilab internal module
+                       module_test_dir = SCI+"/modules/"+module_mat+"/tests/nonreg_tests";
+               else
+                       // It's a toolbox
+                       module_test_dir = module_mat+"/tests/nonreg_tests";
+               end
+               
                test_mat        = gsort(basename(listfiles(module_test_dir+"/*.tst")),"lr","i");
                
                nl = size(test_mat,"*");
@@ -441,7 +475,15 @@ function [status_id,status_msg,status_details] = test_run_onetest(module,test,te
        
        
        // Some definitions
-       fullPath=SCI+"/modules/"+module+"/tests/"+test_type+"/"+test
+       
+       if with_module(module) then
+               // It's a scilab internal module
+               fullPath=SCI+"/modules/"+module+"/tests/"+test_type+"/"+test
+       else
+               // It's a toolbox
+               fullPath=module+"/tests/"+test_type+"/"+test
+       end
+       
        tstfile     = pathconvert(fullPath+".tst",%f,%f);
        diafile     = pathconvert(fullPath+".dia",%f,%f);
        reffile     = pathconvert(fullPath+".dia.ref",%f,%f);
diff --git a/scilab/modules/fileio/Localization_Import.def b/scilab/modules/fileio/Localization_Import.def
new file mode 100644 (file)
index 0000000..31e92e8
--- /dev/null
@@ -0,0 +1,9 @@
+       LIBRARY    scilocalization.dll
+
+
+EXPORTS
+       UTFToLocale
+       localeToUTF
+       isOutputInUTF 
+       readNextUTFChar
+       setOutputInUTF
\ No newline at end of file
index a6da6c5..e98ff67 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
        ProjectType="Visual C++"
-       Version="9.00"
+       Version="9,00"
        Name="fileio"
        ProjectGUID="{4FC72D4A-80EE-4B1A-8724-0201C1A35621}"
        RootNamespace="fileio"
        Keyword="Win32Proj"
-       
+       TargetFrameworkVersion="0"
        >
        <Platforms>
                <Platform
                        <Tool
                                Name="VCPreLinkEventTool"
                                Description="Make dependencies"
-                               CommandLine="lib /DEF:&quot;$(InputDir)LibScilab_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)LibScilab.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Scilab_windows_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)scilab_windows.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;cd $(IntDir) &gt;nul&#x0D;&#x0A;for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n fileio.dll %%f &gt;nul&#x0D;&#x0A;copy *.def fileiotmp.def &gt;nul&#x0D;&#x0A;copy ..\fileio_header.def+fileiotmp.def  ..\fileio.def &gt;nul&#x0D;&#x0A;del *.def &gt;nul&#x0D;&#x0A;cd .. &gt;nul&#x0D;&#x0A;"
+                               CommandLine="lib /DEF:&quot;$(InputDir)LibScilab_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)LibScilab.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Scilab_windows_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)scilab_windows.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Localization_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)scilocalization.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;cd $(IntDir) &gt;nul&#x0D;&#x0A;for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n fileio.dll %%f &gt;nul&#x0D;&#x0A;copy *.def fileiotmp.def &gt;nul&#x0D;&#x0A;copy ..\fileio_header.def+fileiotmp.def  ..\fileio.def &gt;nul&#x0D;&#x0A;del *.def &gt;nul&#x0D;&#x0A;cd .. &gt;nul&#x0D;&#x0A;"
                        />
                        <Tool
                                Name="VCLinkerTool"
                                AdditionalOptions="/fixed:no"
-                               AdditionalDependencies="libscilab.lib scilab_windows.lib libcmtd.lib"
+                               AdditionalDependencies="libscilab.lib scilab_windows.lib libcmtd.lib scilocalization.lib"
                                OutputFile="../../bin/$(ProjectName).dll"
                                LinkIncremental="1"
                                IgnoreDefaultLibraryNames="msvcrtd.lib"
                        <Tool
                                Name="VCPreLinkEventTool"
                                Description="Make dependencies"
-                               CommandLine="lib /DEF:&quot;$(InputDir)LibScilab_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)LibScilab.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Scilab_windows_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)scilab_windows.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;cd $(IntDir) &gt;nul&#x0D;&#x0A;for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n fileio.dll %%f &gt;nul&#x0D;&#x0A;copy *.def fileiotmp.def &gt;nul&#x0D;&#x0A;copy ..\fileio_header.def+fileiotmp.def  ..\fileio.def &gt;nul&#x0D;&#x0A;del *.def &gt;nul&#x0D;&#x0A;cd .. &gt;nul&#x0D;&#x0A;"
+                               CommandLine="lib /DEF:&quot;$(InputDir)LibScilab_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)LibScilab.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Scilab_windows_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)scilab_windows.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Localization_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)scilocalization.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;cd $(IntDir) &gt;nul&#x0D;&#x0A;for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n fileio.dll %%f &gt;nul&#x0D;&#x0A;copy *.def fileiotmp.def &gt;nul&#x0D;&#x0A;copy ..\fileio_header.def+fileiotmp.def  ..\fileio.def &gt;nul&#x0D;&#x0A;del *.def &gt;nul&#x0D;&#x0A;cd .. &gt;nul&#x0D;&#x0A;"
                        />
                        <Tool
                                Name="VCLinkerTool"
                                AdditionalOptions="/fixed:no"
-                               AdditionalDependencies="libscilab.lib scilab_windows.lib libcmtd.lib"
+                               AdditionalDependencies="libscilab.lib scilab_windows.lib libcmtd.lib scilocalization.lib"
                                OutputFile="../../bin/$(ProjectName).dll"
                                LinkIncremental="1"
                                IgnoreDefaultLibraryNames="msvcrtd.lib"
                        <Tool
                                Name="VCPreLinkEventTool"
                                Description="Make dependencies"
-                               CommandLine="lib /DEF:&quot;$(InputDir)LibScilab_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)LibScilab.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Scilab_windows_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)scilab_windows.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;cd $(IntDir) &gt;nul&#x0D;&#x0A;for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n fileio.dll %%f &gt;nul&#x0D;&#x0A;copy *.def fileiotmp.def &gt;nul&#x0D;&#x0A;copy ..\fileio_header.def+fileiotmp.def  ..\fileio.def &gt;nul&#x0D;&#x0A;del *.def &gt;nul&#x0D;&#x0A;cd .. &gt;nul&#x0D;&#x0A;"
+                               CommandLine="lib /DEF:&quot;$(InputDir)LibScilab_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)LibScilab.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Scilab_windows_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)scilab_windows.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Localization_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)scilocalization.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;cd $(IntDir) &gt;nul&#x0D;&#x0A;for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n fileio.dll %%f &gt;nul&#x0D;&#x0A;copy *.def fileiotmp.def &gt;nul&#x0D;&#x0A;copy ..\fileio_header.def+fileiotmp.def  ..\fileio.def &gt;nul&#x0D;&#x0A;del *.def &gt;nul&#x0D;&#x0A;cd .. &gt;nul&#x0D;&#x0A;"
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="LibScilab.lib scilab_windows.lib libcmt.lib"
+                               AdditionalDependencies="LibScilab.lib scilab_windows.lib libcmt.lib  scilocalization.lib"
                                OutputFile="../../bin/$(ProjectName).dll"
                                LinkIncremental="1"
                                IgnoreDefaultLibraryNames="msvcrt.lib"
                        <Tool
                                Name="VCPreLinkEventTool"
                                Description="Make dependencies"
-                               CommandLine="lib /DEF:&quot;$(InputDir)LibScilab_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)LibScilab.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Scilab_windows_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)scilab_windows.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;cd $(IntDir) &gt;nul&#x0D;&#x0A;for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n fileio.dll %%f &gt;nul&#x0D;&#x0A;copy *.def fileiotmp.def &gt;nul&#x0D;&#x0A;copy ..\fileio_header.def+fileiotmp.def  ..\fileio.def &gt;nul&#x0D;&#x0A;del *.def &gt;nul&#x0D;&#x0A;cd .. &gt;nul&#x0D;&#x0A;"
+                               CommandLine="lib /DEF:&quot;$(InputDir)LibScilab_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)LibScilab.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Scilab_windows_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)scilab_windows.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;lib /DEF:&quot;$(InputDir)Localization_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)scilocalization.lib&quot; 1&gt;NUL 2&gt;NUL&#x0D;&#x0A;cd $(IntDir) &gt;nul&#x0D;&#x0A;for %%f in (*.obj) do  ..\..\..\bin\dumpexts -o %%~nf.def -n fileio.dll %%f &gt;nul&#x0D;&#x0A;copy *.def fileiotmp.def &gt;nul&#x0D;&#x0A;copy ..\fileio_header.def+fileiotmp.def  ..\fileio.def &gt;nul&#x0D;&#x0A;del *.def &gt;nul&#x0D;&#x0A;cd .. &gt;nul&#x0D;&#x0A;"
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="LibScilab.lib scilab_windows.lib libcmt.lib"
+                               AdditionalDependencies="LibScilab.lib scilab_windows.lib libcmt.lib  scilocalization.lib"
                                OutputFile="../../bin/$(ProjectName).dll"
                                LinkIncremental="1"
                                IgnoreDefaultLibraryNames="msvcrt.lib"
                                        RelativePath=".\LibScilab_Import.def"
                                        >
                                </File>
+                               <File
+                                       RelativePath=".\Localization_Import.def"
+                                       >
+                               </File>
                        </Filter>
                </Filter>
                <File
index 8c40925..0b44b5a 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2008 - INRIA
  * 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:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="mfscanf">
+<refentry version="5.0-subset Scilab" xml:id="mfscanf" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns4="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook">
   <info>
-    <pubdate>$LastChangedDate: 2008-03-26 09:50:39 +0100 (mer 26 mar 2008) $</pubdate>
+    <pubdate>$LastChangedDate: 2008-03-26 09:50:39 +0100 (mer 26 mar 2008)
+    $</pubdate>
   </info>
+
   <refnamediv xml:id="mscanf">
     <refname>mscanf</refname>
-    <refpurpose> reads input from the standard input (interface to the C scanf function)</refpurpose>
+
+    <refpurpose>reads input from the standard input (interface to the C scanf
+    function)</refpurpose>
   </refnamediv>
+
   <refnamediv>
     <refname>mfscanf</refname>
-    <refpurpose> reads input from the stream pointer stream (interface to the C fscanf function)</refpurpose>
+
+    <refpurpose>reads input from the stream pointer stream (interface to the C
+    fscanf function)</refpurpose>
   </refnamediv>
+
   <refnamediv xml:id="msscanf">
     <refname>msscanf</refname>
-    <refpurpose> reads its input from the character string (interface to the C sscanf function)</refpurpose>
+
+    <refpurpose>reads its input from the character string (interface to the C
+    sscanf function)</refpurpose>
   </refnamediv>
+
   <refsynopsisdiv>
     <title>Calling Sequence</title>
+
     <synopsis>[n,v_1,...v_n]=mfscanf([niter,]fd,format)
 L=mfscanf([niter,] fd,format)
 
@@ -38,89 +56,123 @@ L=mscanf([niter,]format)
 [n,v_1,...v_m]=msscanf([niter,]str,format)
 L=msscanf([niter,] str,format)</synopsis>
   </refsynopsisdiv>
+
   <refsection>
     <title>Parameters</title>
+
     <variablelist>
       <varlistentry>
         <term>format</term>
+
         <listitem>
           <para>a Scilab string describing the format to use to write the
-           remaining operands.  The format operand follows, as close as
-           possible, the C printf format operand syntax.</para>
+          remaining operands. The format operand follows, as close as
+          possible, the C printf format operand syntax as described in
+          <link linkend="scanf_conversion">scanf_conversion</link>.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>fd</term>
+
         <listitem>
-          <para>:The fd parameter returned by the function <literal>mopen</literal> is
-           used as a file descriptor (it's a positive integer). The value -1
-           refers to the  last opened file.</para>
+          <para>:The fd parameter returned by the function
+          <literal>mopen</literal> is used as a file descriptor (it's a
+          positive integer). The value -1 refers to the last opened
+          file.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>str</term>
+
         <listitem>
           <para>a Scilab string or string vector.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>niter</term>
+
         <listitem>
-          <para>an integer, the number of times the format as to
-           be used.</para>
+          <para>an integer, the number of times the format as to be
+          used.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>n</term>
+
         <listitem>
           <para>an integer, the number of data read or -1 if EOL has been
-           encountered before any datum has been read.</para>
+          encountered before any datum has been read.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>v_i</term>
+
         <listitem>
           <para>Each function reads characters, interprets them according to a
-           format, and stores the results in its output arguments.  If more
-           than $n$ output arguments are provided, the last ones
-           <literal>v_n+1,...v_m</literal> are set to empty matrices.</para>
+          format, and stores the results in its output arguments. If more than
+          $n$ output arguments are provided, the last ones
+          <literal>v_n+1,...v_m</literal> are set to empty matrices.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>L</term>
+
         <listitem>
-          <para>if all data are homogeneous they are stored in a unique vector 
-           which is returned, otherwise subsequences of same data type are 
-           stored in matrices and an <literal>mlist</literal> (with type
-           <literal>cblock</literal>) containing all the built matrices is returned.</para>
+          <para>if all data are homogeneous they are stored in a unique vector
+          which is returned, otherwise subsequences of same data type are
+          stored in matrices and an <literal>mlist</literal> (with type
+          <literal>cblock</literal>) containing all the built matrices is
+          returned.</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
+
   <refsection>
     <title>Description</title>
-    <para>
-      The <literal>mfscanf</literal> function reads characters from the stream <literal>fd</literal>.</para>
-    <para>
-      The <literal>mscanf</literal> function reads characters from Scilab window.</para>
-    <para>
-      The <literal>msscanf</literal> function reads characters from the Scilab string <literal>str</literal>.</para>
-    <para>
-      The <literal>niter</literal> optional argument specifies how many time
-      the format has to used. One iteration produces one line in the
-      output matrix. If <literal>niter==-1</literal> the function iterates up
-      to the end of file. The <literal>niter</literal> default value is 1.</para>
+
+    <para>The <literal>mfscanf</literal> function reads characters from the
+    stream <literal>fd</literal>.</para>
+
+    <para>The <literal>mscanf</literal> function reads characters from Scilab
+    window.</para>
+
+    <para>The <literal>msscanf</literal> function reads characters from the
+    Scilab string <literal>str</literal>.</para>
+
+    <para>The <literal>niter</literal> optional argument specifies how many
+    time the format has to used. One iteration produces one line in the output
+    matrix. If <literal>niter==-1</literal> the function iterates up to the
+    end of file. The <literal>niter</literal> default value is 1.</para>
+
+    <para>comments about precision :</para>
+
+    <para>mfscanf is based on C function fscanf. If you use '%f', '%g', '%e'
+    as format your datas will be cast to float and returned in a scilab
+    variable. </para>
+
+    <para>This scilab variable is a double then you can have some precision
+    errors. In this case, it is better to use '%lg' format.</para>
   </refsection>
+
   <refsection>
     <title>Examples</title>
-    <programlisting role="example"><![CDATA[
-    
+
+    <programlisting role="example">
+    //----------------------------------------------------------
     //--    Simple use                                        --
     //----------------------------------------------------------
     s='1 1.3'  //a string
     [n,a,b]=msscanf(s,"%i %e")
     L=msscanf(s,"%i %e")
 
+    //----------------------------------------------------------
     //--    Formats samples                                   --
     //----------------------------------------------------------
 
@@ -134,7 +186,7 @@ L=msscanf([niter,] str,format)</synopsis>
     msscanf('4345.988','%g')-4345.988 // scan as float
     msscanf('4345.988','%lg')-4345.988 // scan as double
 
-
+    //----------------------------------------------------------
     //--    scanning multi-line data files                    --
     //----------------------------------------------------------
     //create a file with data
@@ -154,76 +206,56 @@ L=msscanf([niter,] str,format)</synopsis>
 
     mclose(u); //close the file
 
-
-
+    //----------------------------------------------------------
     //--    scanning multi-line  strings vectors              --
     //----------------------------------------------------------
-
     //use niter to scan a string vector
     [n,Names,Ages]=msscanf(-1,["Alain 19";"Pierre 15";"Tom 12"],'%s %d')
     D=msscanf(-1,["Alain 19";"Pierre 15";"Tom 12"],'%s %d')
     typeof(D)
     Names=D(:,1) //strings
-    Age=D(:,2)   //numerical values
-
-
-    
-  ]]></programlisting>
+    Age=D(:,2)   //numerical values    
+  </programlisting>
   </refsection>
+
   <refsection>
     <title>See Also</title>
+
     <simplelist type="inline">
-      <member>
-        <link linkend="mclose">mclose</link>
-      </member>
-      <member>
-        <link linkend="meof">meof</link>
-      </member>
-      <member>
-        <link linkend="mfprintf">mfprintf</link>
-      </member>
-      <member>
-        <link linkend="fprintfMat">fprintfMat</link>
-      </member>
-      <member>
-        <link linkend="mfscanf">mfscanf</link>
-      </member>
-      <member>
-        <link linkend="fscanfMat">fscanfMat</link>
-      </member>
-      <member>
-        <link linkend="mget">mget</link>
-      </member>
-      <member>
-        <link linkend="mgetstr">mgetstr</link>
-      </member>
-      <member>
-        <link linkend="mopen">mopen</link>
-      </member>
-      <member>
-        <link linkend="mprintf">mprintf</link>
-      </member>
-      <member>
-        <link linkend="mput">mput</link>
-      </member>
-      <member>
-        <link linkend="mputstr">mputstr</link>
-      </member>
-      <member>
-        <link linkend="mscanf">mscanf</link>
-      </member>
-      <member>
-        <link linkend="mseek">mseek</link>
-      </member>
-      <member>
-        <link linkend="mtell">mtell</link>
-      </member>
-      <member>
-        <link linkend="mdelete">mdelete</link>
-      </member>
-      <member>
-        <link linkend="scanf_conversion">scanf_conversion</link>
-      </member>
+      <member><link linkend="mclose">mclose</link></member>
+
+      <member><link linkend="meof">meof</link></member>
+
+      <member><link linkend="mfprintf">mfprintf</link></member>
+
+      <member><link linkend="fprintfMat">fprintfMat</link></member>
+
+      <member><link linkend="mfscanf">mfscanf</link></member>
+
+      <member><link linkend="fscanfMat">fscanfMat</link></member>
+
+      <member><link linkend="mget">mget</link></member>
+
+      <member><link linkend="mgetstr">mgetstr</link></member>
+
+      <member><link linkend="mopen">mopen</link></member>
+
+      <member><link linkend="mprintf">mprintf</link></member>
+
+      <member><link linkend="mput">mput</link></member>
+
+      <member><link linkend="mputstr">mputstr</link></member>
+
+      <member><link linkend="mscanf">mscanf</link></member>
+
+      <member><link linkend="mseek">mseek</link></member>
+
+      <member><link linkend="mtell">mtell</link></member>
+
+      <member><link linkend="mdelete">mdelete</link></member>
+
+      <member><link
+      linkend="scanf_conversion">scanf_conversion</link></member>
     </simplelist>
   </refsection>
-</refentry>
+</refentry>
\ No newline at end of file
index 869f41f..8a42e55 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2008 - INRIA
  * 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:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="mget">
+<refentry version="5.0-subset Scilab" xml:id="mget" xml:lang="en"
+          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">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
+
   <refnamediv>
     <refname>mget</refname>
-    <refpurpose> reads  byte or word in a given binary format and convert to double</refpurpose>
+
+    <refpurpose>reads byte or word in a given binary format and convert to
+    double</refpurpose>
   </refnamediv>
+
   <refnamediv xml:id="mgeti">
     <refname>mgeti</refname>
-    <refpurpose> reads  byte or word in a given binary format return an int type</refpurpose>
+
+    <refpurpose>reads byte or word in a given binary format return an int
+    type</refpurpose>
   </refnamediv>
+
   <refsynopsisdiv>
     <title>Calling Sequence</title>
+
     <synopsis>x=mget([n,type,fd])
 x=mgeti([n,type,fd])</synopsis>
   </refsynopsisdiv>
+
   <refsection>
     <title>Parameters</title>
+
     <variablelist>
       <varlistentry>
         <term>n</term>
+
         <listitem>
-          <para>:a positive scalar: The number of items to be read.</para>
+          <para>a positive scalar: The number of items to be read.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>fd</term>
+
         <listitem>
-          <para>scalar. The <literal>fd</literal> parameter returned by the function
-           <literal>mopen</literal>. -1 stands for last opened file. Default value
-           is -1.</para>
+          <para>a scalar. The <literal>fd</literal> parameter returned by the
+          function <literal>mopen</literal>. -1 stands for last opened file.
+          Default value is -1.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>type</term>
+
         <listitem>
-          <para>a string. Give the binary format used to write all the entries of x.</para>
+          <para>a string. Give the binary format used to write all the entries
+          of x.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>x</term>
+
         <listitem>
           <para>a vector of floating point or integer type numbers</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
+
   <refsection>
     <title>Description</title>
-    <para>
-      The <literal>mget</literal> function reads data in the input specified by the
-      stream parameter <literal>fd</literal> and returns a vector of floating point data.
-      The <literal>mgeti</literal> function reads data in the input specified by the
-      stream parameter <literal>fd</literal> and returns a vector of integer data.
-    </para>
-    <para>
-      Data is read at the position at which the file pointer is currently
-      pointing and advances the indicator appropriately.
-    </para>
-    <para>
-      The <literal>type</literal> parameter is a conversion specifier which may be set to any of the
-      following flag characters (with default value "l"):
-    </para>
-    <para><emphasis role="bold">WARNING</emphasis>, when reading binary files under Windows to not forget to open
-      the file with the <literal>b</literal> option like
-      <literal>fd1=mopen(file1,'rb')</literal> if not the file will be interpreted as
-      text file and the bytes with value <literal>13</literal> will be interpreted as
-      newlines and ommitted. </para>
-    <variablelist>
-      <varlistentry>
-        <term>"l", "i", "s", "ul",  "ui", "us", "d", "f",  "c", "uc"</term>
-        <listitem>
-          <para>for reading respectively a long, an int, a short, an unsigned
-         long, an unsigned int, an unsigned short, a double, a float, a char
-         and an unsigned char. The bytes which are read are automatically
-         swapped if necessary (by checking little-endian status). This default
-         swapping mode can be suppressed by adding a flag in the
-         <literal>mopen</literal> function. Format "l", "d" and
-         "f" are valid only with the <literal>mget</literal>
-         function.</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term>"..l" or "..b"</term>
-        <listitem>
-          <para>It is also possible to read in little-endian or big-endian mode
-         by adding a 'l' or 'b' character at the end of a type
-         specification. For example "db" will read a double in
-         big-endian mode.</para>
-        </listitem>
-      </varlistentry>
-    </variablelist>
+
+    <para>The <literal>mget</literal> function reads data in the input
+    specified by the stream parameter <literal>fd</literal> and returns a
+    vector of floating point data. The <literal>mgeti</literal> function reads
+    data in the input specified by the stream parameter <literal>fd</literal>
+    and returns a vector of integer data.</para>
+
+    <para>Data is read at the position at which the file pointer is currently
+    pointing and advances the indicator appropriately.</para>
+
+    <para>The <literal>type</literal> parameter is a conversion specifier
+    which may be set to any of the following flag characters (with default
+    value "l"):</para>
+
+    <para><emphasis role="bold">Note </emphasis>, On Windows, default behavior
+    is to skip byte 13 (0x0D). mopen should be called with the `b` option,
+    e.g. fd1=mopen(file1,'rb') , so that all bytes will be read without
+    exception.</para>
+
+    <para>Data type:</para>
+
+    <para><term>d</term> double</para>
+
+    <para><term>f</term> float</para>
+
+    <para><term>l</term> long</para>
+
+    <para><term>i</term> int</para>
+
+    <para><term>s</term> short</para>
+
+    <para><term>c</term> character</para>
+
+    <para>Optional flag:</para>
+
+    <para><term>u..</term> unsigned (in combination with one of the above
+    types)</para>
+
+    <para><term>..l</term> little endian (in combination with one of the above
+    types)</para>
+
+    <para><term>..b</term> big endian (in combination with one of the above
+    types)</para>
+
+    <para>Bytes read are automatically swapped if necessary (by checking
+    little=endian status).</para>
+
+    <para>This default swapping behavior can be suprressed by adding a flag in
+    the mopen function.</para>
+
+    <para>Formats "l", "d", and "f" are only valid with the mget
+    function.</para>
   </refsection>
+
   <refsection>
     <title>Examples</title>
-    <programlisting role="example"><![CDATA[
+
+    <programlisting role="example">
     
     file1 = 'test1.bin';
     file2 = 'test2.bin';
@@ -119,68 +155,52 @@ x=mgeti([n,type,fd])</synopsis>
     mclose(fd2);
 
     fd1=mopen(file1,'rb');
-    if 1996<>mget(1,'ull',fd1) ;write(%io(2),'Bug');end;
+    if 1996&lt;&gt;mget(1,'ull',fd1) ;write(%io(2),'Bug');end;
     fd2=mopen(file2,'rb');
-    if 1996<>mget(1,'ull',fd2) ;write(%io(2),'Bug');end;
+    if 1996&lt;&gt;mget(1,'ull',fd2) ;write(%io(2),'Bug');end;
     mclose(fd1);
     mclose(fd2);
     
-  ]]></programlisting>
+  </programlisting>
   </refsection>
+
   <refsection>
     <title>See Also</title>
+
     <simplelist type="inline">
-      <member>
-        <link linkend="mclose">mclose</link>
-      </member>
-      <member>
-        <link linkend="meof">meof</link>
-      </member>
-      <member>
-        <link linkend="mfprintf">mfprintf</link>
-      </member>
-      <member>
-        <link linkend="fprintfMat">fprintfMat</link>
-      </member>
-      <member>
-        <link linkend="mfscanf">mfscanf</link>
-      </member>
-      <member>
-        <link linkend="fscanfMat">fscanfMat</link>
-      </member>
-      <member>
-        <link linkend="mgetl">mgetl</link>
-      </member>
-      <member>
-        <link linkend="mgetstr">mgetstr</link>
-      </member>
-      <member>
-        <link linkend="mopen">mopen</link>
-      </member>
-      <member>
-        <link linkend="mprintf">mprintf</link>
-      </member>
-      <member>
-        <link linkend="mput">mput</link>
-      </member>
-      <member>
-        <link linkend="mputl">mputl</link>
-      </member>
-      <member>
-        <link linkend="mputstr">mputstr</link>
-      </member>
-      <member>
-        <link linkend="mscanf">mscanf</link>
-      </member>
-      <member>
-        <link linkend="mseek">mseek</link>
-      </member>
-      <member>
-        <link linkend="mtell">mtell</link>
-      </member>
-      <member>
-        <link linkend="mdelete">mdelete</link>
-      </member>
+      <member><link linkend="mclose">mclose</link></member>
+
+      <member><link linkend="meof">meof</link></member>
+
+      <member><link linkend="mfprintf">mfprintf</link></member>
+
+      <member><link linkend="fprintfMat">fprintfMat</link></member>
+
+      <member><link linkend="mfscanf">mfscanf</link></member>
+
+      <member><link linkend="fscanfMat">fscanfMat</link></member>
+
+      <member><link linkend="mgetl">mgetl</link></member>
+
+      <member><link linkend="mgetstr">mgetstr</link></member>
+
+      <member><link linkend="mopen">mopen</link></member>
+
+      <member><link linkend="mprintf">mprintf</link></member>
+
+      <member><link linkend="mput">mput</link></member>
+
+      <member><link linkend="mputl">mputl</link></member>
+
+      <member><link linkend="mputstr">mputstr</link></member>
+
+      <member><link linkend="mscanf">mscanf</link></member>
+
+      <member><link linkend="mseek">mseek</link></member>
+
+      <member><link linkend="mtell">mtell</link></member>
+
+      <member><link linkend="mdelete">mdelete</link></member>
     </simplelist>
   </refsection>
-</refentry>
+</refentry>
\ No newline at end of file
index d7bd5c3..768bd1c 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2008 - INRIA
  * 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:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="mopen">
+<refentry version="5.0-subset Scilab" xml:id="mopen" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns4="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook">
   <info>
     <pubdate>$LastChangedDate$</pubdate>
   </info>
+
   <refnamediv>
     <refname>mopen</refname>
-    <refpurpose> open a file</refpurpose>
+
+    <refpurpose>open a file</refpurpose>
   </refnamediv>
+
   <refsynopsisdiv>
     <title>Calling Sequence</title>
+
     <synopsis>[fd,err]=mopen(file [, mode, swap ])</synopsis>
   </refsynopsisdiv>
+
   <refsection>
     <title>Parameters</title>
+
     <variablelist>
       <varlistentry>
         <term>file</term>
+
         <listitem>
           <para>a character string. The pathname of the file to open.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>mode</term>
+
         <listitem>
-          <para>a character string that controls whether the file is opened for reading (r), writing (w), or appending (a) and whether the file is opened for updating (+).  The mode can also include a b parameter to indicate a binary file.</para>
+          <para>a character string that controls whether the file is opened
+          for reading (r), writing (w), or appending (a) and whether the file
+          is opened for updating (+). The mode can also include a b parameter
+          to indicate a binary file.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>swap</term>
+
         <listitem>
-          <para>a scalar. If <literal>swap</literal> is present and <literal>swap=0</literal> then automatic bytes swap is disabled.</para>
+          <para>a scalar. If <literal>swap</literal> is present and
+          <literal>swap=0</literal> then automatic bytes swap is
+          disabled.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>err</term>
+
         <listitem>
           <para>a scalar. Error indicator</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>fd</term>
+
         <listitem>
-          <para>scalar. The <literal>fd</literal> parameter returned by the function <literal>mopen</literal> is used as a file descriptor (it's a positive integer).</para>
+          <para>scalar. The <literal>fd</literal> parameter returned by the
+          function <literal>mopen</literal> is used as a file descriptor (it's
+          a positive integer).</para>
         </listitem>
       </varlistentry>
     </variablelist>
   </refsection>
+
   <refsection>
     <title>Description</title>
-    <para><literal>mopen</literal> may be used to open a file in a way compatible with the C
-    <literal>fopen</literal> procedure. Without swap argument the file is supposed to
-    be coded in "little endian IEEE format" and data are swaped if
-    necessary to match the IEEE format of the processor. 
-  </para>
-    <para>
-    The mode parameter controls the access allowed to the stream. The
-    parameter can have one of the following values. In this list of
-    values, the b character indicates a binary file
-  </para>
+
+    <para><literal>mopen</literal> may be used to open a file in a way
+    compatible with the C <literal>fopen</literal> procedure. Without swap
+    argument the file is supposed to be coded in "little endian IEEE format"
+    and data are swaped if necessary to match the IEEE format of the
+    processor.</para>
+
+    <para>The mode parameter controls the access allowed to the stream. The
+    parameter can have one of the following values. In this list of values,
+    the b character indicates a binary file</para>
+
     <variablelist>
       <varlistentry>
-        <term>r or rb</term>
+        <term>r</term>
+
         <listitem>
           <para>Opens the file for reading.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
-        <term>w or wb</term>
+        <term>rb</term>
+
         <listitem>
-          <para>Creates a new file for writing, or opens and truncates a file to zero length.</para>
+          <para>Opens a binary file for reading.</para>
         </listitem>
       </varlistentry>
+
+      <varlistentry>
+        <term>rt</term>
+
+        <listitem>
+          <para>Opens a text file for reading.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>w</term>
+
+        <listitem>
+          <para>Creates a new file for writing, or opens and truncates a file
+          to zero length.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>wb</term>
+
+        <listitem>
+          <para>Creates a new binary file for writing, or opens and truncates
+          a file to zero length.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>wt</term>
+
+        <listitem>
+          <para>Creates a text binary file for writing, or opens and truncates
+          a file to zero length.</para>
+        </listitem>
+      </varlistentry>
+
       <varlistentry>
         <term>a or ab</term>
+
         <listitem>
-          <para>Appends (opens a file for writing at the end of the file, or creates a file for writing).</para>
+          <para>Appends (opens a file for writing at the end of the file, or
+          creates a file for writing).</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>r+ or r+b</term>
+
         <listitem>
           <para>Opens a file for update (reading and writing).</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>w+ or w+b</term>
+
         <listitem>
           <para>Truncates to zero length or creates a file for update.</para>
         </listitem>
       </varlistentry>
+
       <varlistentry>
         <term>a+ or a+b</term>
+
         <listitem>
-          <para>:Appends (opens a file for update, writing at the end of the file, or creates a file for writing).</para>
+          <para>:Appends (opens a file for update, writing at the end of the
+          file, or creates a file for writing).</para>
         </listitem>
       </varlistentry>
     </variablelist>
-    <para>
-    When you open a file for update, you can perform both input and output
-    operations on the resulting stream. However, an output operation
+
+    <para>When you open a file for update, you can perform both input and
+    output operations on the resulting stream. However, an output operation
     cannot be directly followed by an input operation without a
-    file-positioning operation (mseek() function). Also, an input
-    operation cannot be directly followed by an output operation without
-    an intervening file positioning operation, unless the input operation
-    encounters the end of the file.</para>
-    <para>
-    When you open a file for append (that is, when the mode parameter is a
-    or a+), it is impossible to overwrite information already in the
-    file. You can use the fseek() function to reposition the file pointer
-    to any position in the file, but when output is written to the file,
-    the current file pointer is ignored.  All output is written at the end
-    of the file and the file pointer is repositioned to the end of the
-    output.</para>
-    <para>
-    To open files in a way compatible with Fortran like functions use
+    file-positioning operation (mseek() function). Also, an input operation
+    cannot be directly followed by an output operation without an intervening
+    file positioning operation, unless the input operation encounters the end
+    of the file.</para>
+
+    <para>When you open a file for append (that is, when the mode parameter is
+    a or a+), it is impossible to overwrite information already in the file.
+    You can use the fseek() function to reposition the file pointer to any
+    position in the file, but when output is written to the file, the current
+    file pointer is ignored. All output is written at the end of the file and
+    the file pointer is repositioned to the end of the output.</para>
+
+    <para>To open files in a way compatible with Fortran like functions use
     function <literal>file</literal>.</para>
   </refsection>
+
   <refsection>
     <title>See Also</title>
+
     <simplelist type="inline">
-      <member>
-        <link linkend="mclose">mclose</link>
-      </member>
-      <member>
-        <link linkend="meof">meof</link>
-      </member>
-      <member>
-        <link linkend="mfprintf">mfprintf</link>
-      </member>
-      <member>
-        <link linkend="fprintfMat">fprintfMat</link>
-      </member>
-      <member>
-        <link linkend="mfscanf">mfscanf</link>
-      </member>
-      <member>
-        <link linkend="fscanfMat">fscanfMat</link>
-      </member>
-      <member>
-        <link linkend="mget">mget</link>
-      </member>
-      <member>
-        <link linkend="mgetl">mgetl</link>
-      </member>
-      <member>
-        <link linkend="mgetstr">mgetstr</link>
-      </member>
-      <member>
-        <link linkend="mopen">mopen</link>
-      </member>
-      <member>
-        <link linkend="mprintf">mprintf</link>
-      </member>
-      <member>
-        <link linkend="mput">mput</link>
-      </member>
-      <member>
-        <link linkend="mputl">mputl</link>
-      </member>
-      <member>
-        <link linkend="mputstr">mputstr</link>
-      </member>
-      <member>
-        <link linkend="mscanf">mscanf</link>
-      </member>
-      <member>
-        <link linkend="mseek">mseek</link>
-      </member>
-      <member>
-        <link linkend="mtell">mtell</link>
-      </member>
-      <member>
-        <link linkend="mdelete">mdelete</link>
-      </member>
+      <member><link linkend="mclose">mclose</link></member>
+
+      <member><link linkend="meof">meof</link></member>
+
+      <member><link linkend="mfprintf">mfprintf</link></member>
+
+      <member><link linkend="fprintfMat">fprintfMat</link></member>
+
+      <member><link linkend="mfscanf">mfscanf</link></member>
+
+      <member><link linkend="fscanfMat">fscanfMat</link></member>
+
+      <member><link linkend="mget">mget</link></member>
+
+      <member><link linkend="mgetl">mgetl</link></member>
+
+      <member><link linkend="mgetstr">mgetstr</link></member>
+
+      <member><link linkend="mopen">mopen</link></member>
+
+      <member><link linkend="mprintf">mprintf</link></member>
+
+      <member><link linkend="mput">mput</link></member>
+
+      <member><link linkend="mputl">mputl</link></member>
+
+      <member><link linkend="mputstr">mputstr</link></member>
+
+      <member><link linkend="mscanf">mscanf</link></member>
+
+      <member><link linkend="mseek">mseek</link></member>
+
+      <member><link linkend="mtell">mtell</link></member>
+
+      <member><link linkend="mdelete">mdelete</link></member>
     </simplelist>
   </refsection>
-</refentry>
+</refentry>
\ No newline at end of file
index eba8283..4db641e 100644 (file)
           <para>:character value is expected. The normal skip over white space is suppressed.</para>
         </listitem>
       </varlistentry>
+      <varlistentry>
+        <term>%lg</term>
+        <listitem>
+          <para>: get value as a double.</para>
+        </listitem>
+      </varlistentry>
     </variablelist>
   </refsection>
   <refsection>
index 331afae..e19a1b3 100644 (file)
@@ -22,6 +22,8 @@
 #include "localization.h"
 #include "set_xxprintf.h"
 #include "fileio.h"
+#include "charEncoding.h"
+
 #ifdef _MSC_VER
 #include "strdup_windows.h"
 #endif
@@ -59,17 +61,29 @@ static int call_printf(XXPRINTF xxprintf,char *target,char *p,char *sval,int *as
        switch (choosetype (asterisk_count, conversion_type))
        {
                case choosetype (0, PF_S):
-               retval += (*xxprintf) ((VPTR) target, p, sval);
+                       if (isOutputInUTF()) {
+                               retval += (*xxprintf) ((VPTR) target, p, sval);
+                } else {
+                        retval += (*xxprintf) ((VPTR) target, p, UTFToLocale(sval));
+                }
                FREE(sval);
                break;
 
                case choosetype (1, PF_S):
-               retval += (*xxprintf) ((VPTR) target, p, asterisk[0], sval);
+                       if (isOutputInUTF()) {
+                               retval += (*xxprintf) ((VPTR) target, p, asterisk[0], sval);
+                       } else {
+                               retval += (*xxprintf) ((VPTR) target, p, asterisk[0], UTFToLocale(sval));
+                       }       
                FREE(sval);
                break;
 
                case choosetype (2, PF_S):
-               retval += (*xxprintf) ((VPTR) target, p, asterisk[0], asterisk[1], sval);
+                       if (isOutputInUTF()) {
+                               retval += (*xxprintf) ((VPTR) target, p, asterisk[0], asterisk[1], sval);
+                       } else {
+                               retval += (*xxprintf) ((VPTR) target, p, asterisk[0], asterisk[1], UTFToLocale(sval));
+                       }
                FREE(sval);
                break;
 
@@ -140,12 +154,16 @@ int do_xxprintf (char *fname, FILE *fp, char *format, int nargs, int argcount, i
        FLUSH flush                = NULL;
        char *target               = NULL;
        register char *currentchar = NULL;
+       int  charBytes;
+       char* UTFChar;
+       char* outStr; /** locale char at most 2 bytes*/
 
        currentchar = format;
        arg_count   = argcount;
        ccount      = 1;
-       
+
        set_xxprintf(fp,&xxprintf,&flush,&target);
+       /* Use file handle to set an internal boolean value for output encoding (UTF or system locale)*/
        
        /* "scan" string format. */
        while (TRUE)
@@ -221,9 +239,19 @@ int do_xxprintf (char *fname, FILE *fp, char *format, int nargs, int argcount, i
                                        break;
                                default:
                                        /* putc */
-                                       (*xxprintf) ((VPTR) target, "%c",*currentchar);
-                                       currentchar++;
-                                       retval++;
+                                   UTFChar = readNextUTFChar(currentchar,&charBytes);
+                    currentchar += charBytes;
+                       if (isOutputInUTF() ) /** if output in UTF encoding*/
+                                       {
+                                         outStr = UTFChar;
+                      retval += charBytes;
+                                       }
+                                       else 
+                                       {
+                        outStr  = UTFToLocale(UTFChar);
+                        retval += strlen(outStr);
+                                       }
+                                       (*xxprintf) ((VPTR) target, "%s",outStr);       
                                        break;
                                }
                        }
@@ -472,7 +500,7 @@ int do_xxprintf (char *fname, FILE *fp, char *format, int nargs, int argcount, i
                                                /* valueinf FREED in call_printf */
                                                call_printf(xxprintf,target,formatinf,valueinf,asterisk,asterisk_count,conversion_type,dval );
                                        }
-                               }
+                               } 
                        }
                        else
                        {
index 33cd900..9043429 100644 (file)
@@ -18,6 +18,7 @@
 #include <stdio.h>
 #include "readline.h"
 #include "filesmanagement.h"
+#include "charEncoding.h"
 /*--------------------------------------------------------------------------*/
 #if (defined(sun) && !defined(SYSV)) || defined(sgi)
 #define SEEK_SET 0
@@ -36,7 +37,7 @@ int LineRead(FILE *fd,char buf[],int n,int *cnt,int *nr)
 {
   int c,count,info;
   long int offset;
-
+  char *tmpChar;
   count=0;
   *nr=0;
   
@@ -102,6 +103,10 @@ int LineRead(FILE *fd,char buf[],int n,int *cnt,int *nr)
     }
   }
   *cnt=count;
+  /** Convert from system locale encoding to UTF encoding */
+  tmpChar = localeToUTF(buf);
+  *cnt=strlen(tmpChar)+1;
+  strcpy(buf,tmpChar);
   return(info);
 }
 /*--------------------------------------------------------------------------*/ 
index f82bc7e..756f236 100644 (file)
 /*--------------------------------------------------------------------------*/
 #include "set_xxprintf.h"
 #include "sciprint.h"
+#include "charEncoding.h"
 /*--------------------------------------------------------------------------*/
 static int voidflush(FILE *fp);
 /*--------------------------------------------------------------------------*/
 extern char sprintf_buffer[MAX_SPRINTF_SIZE];
 /*--------------------------------------------------------------------------*/
+
+#include "scilabmode.h"
+
 void set_xxprintf(FILE *fp,XXPRINTF *xxprintf,FLUSH *flush,char **target)
 {
+        setOutputInUTF(TRUE); /*default output encoding is UTF*/
        if (fp == (FILE *) 0)
        {
                /* sprintf */
@@ -40,6 +45,7 @@ void set_xxprintf(FILE *fp,XXPRINTF *xxprintf,FLUSH *flush,char **target)
                *target = (char *) fp;
                *flush = fflush;
                *xxprintf = (XXPRINTF) fprintf;
+                setOutputInUTF(FALSE); /*output in  system locale  for external file*/
        }
 }
 /*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_3679.dia.ref b/scilab/modules/fileio/tests/nonreg_tests/bug_3679.dia.ref
new file mode 100644 (file)
index 0000000..9a70fb9
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 3679 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=3679
+//
+// <-- Short Description -->
+// mfscanf() returns numbers with slight errors using 5.0.x on Windows.
+test_path = get_absolute_file_path('bug_3679.tst');
+fid = mopen('SCI/modules/fileio/tests/nonreg_tests/'+'bug_3679.txt','rt');
+for i=1:6
+  [n,y(i)]=mfscanf(fid, '%lg');
+end
+mclose(fid);
+ref = [22.631  23.021  24.280  23.551  22.974  23.309]';
+if or(ref<>y) then bugmes();quit;end
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_3679.tst b/scilab/modules/fileio/tests/nonreg_tests/bug_3679.tst
new file mode 100644 (file)
index 0000000..9552013
--- /dev/null
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 3679 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=3679
+//
+// <-- Short Description -->
+// mfscanf() returns numbers with slight errors using 5.0.x on Windows.
+
+test_path = get_absolute_file_path('bug_3679.tst');
+
+fid = mopen('SCI/modules/fileio/tests/nonreg_tests/'+'bug_3679.txt','rt');
+
+for i=1:6
+  [n,y(i)]=mfscanf(fid, '%lg');  
+end
+
+mclose(fid);
+
+ref = [22.631  23.021  24.280  23.551  22.974  23.309]';
+if or(ref<>y) then pause,end
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_3679.txt b/scilab/modules/fileio/tests/nonreg_tests/bug_3679.txt
new file mode 100644 (file)
index 0000000..f955cef
--- /dev/null
@@ -0,0 +1 @@
+22.631 23.021  24.280  23.551  22.974  23.309
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_3684.dia.ref b/scilab/modules/fileio/tests/nonreg_tests/bug_3684.dia.ref
new file mode 100644 (file)
index 0000000..90f6487
--- /dev/null
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 3684 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=3684
+//
+// <-- Short Description -->
+// mget() skips binary data.
+ref = [ 53  51  13 ];
+fid = mopen('SCI/modules/fileio/tests/nonreg_tests/'+'bug_3684.txt','rb');
+data = mgeti(512,'uc',fid);
+mclose(fid);
+if or(ref <> data(159:161) ) then bugmes();quit;end
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_3684.tst b/scilab/modules/fileio/tests/nonreg_tests/bug_3684.tst
new file mode 100644 (file)
index 0000000..094fb3b
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 3684 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=3684
+//
+// <-- Short Description -->
+// mget() skips binary data.
+
+ref = [ 53  51  13 ];
+
+fid = mopen('SCI/modules/fileio/tests/nonreg_tests/'+'bug_3684.txt','rb');
+data = mgeti(512,'uc',fid);
+mclose(fid);
+
+if or(ref <> data(159:161) ) then pause,end
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_3684.txt b/scilab/modules/fileio/tests/nonreg_tests/bug_3684.txt
new file mode 100644 (file)
index 0000000..8490184
Binary files /dev/null and b/scilab/modules/fileio/tests/nonreg_tests/bug_3684.txt differ
index cd90717..75f072f 100644 (file)
@@ -78,4 +78,10 @@ void showPixmap(sciPointObj * pFigure);
  */
 void clearPixmap(sciPointObj * pFigure);
 
+/**
+ * @return true if the figure contains some objects
+ *         which needs to be displayed in 3D.
+ */
+BOOL needsDisplay(sciPointObj * pFigure);
+
 #endif /* __SCI_DRAWINGS__ */
index 32148d0..a0f1e7f 100644 (file)
@@ -887,7 +887,7 @@ function t=fmtuser_data(d)
             t="cell "+strcat(string(size(d)),'x'),
         elseif typeof(d)=="st" then
             T=getfield(1,d)
-            t="struct with fields: "+strcat(d(2:$),' '),
+            t="struct with fields: "+strcat(T(3:$),' '),
         else
             t=typeof(d)
         end
index 48e3917..f06b1b4 100644 (file)
@@ -42,6 +42,7 @@
 #include "sciprint.h"
 #include "CurrentObjectsManagement.h"
 #include "WindowList.h"
+#include "ObjectSelection.h"
 
 #include "math_graphics.h"
 #include "Format.h"
@@ -61,7 +62,7 @@
 
 
 
-
+static BOOL subwinNeedsDisplay(sciPointObj * pSubwin);
 
 
 
@@ -558,5 +559,73 @@ void clearPixmap(sciPointObj * pFigure)
   // nothing to do with the hack
 }
 /*---------------------------------------------------------------------------------*/
+BOOL needsDisplay(sciPointObj * pFigure)
+{
+       /* return false if the figure contains no or one subwindow and the subwindow is not displayed. */
+       
 
+       if (sciGetNbTypedObjects(pFigure, SCI_SUBWIN) == 0)
+       {
+               /* No subwindows, return true */
+               return FALSE;
+       }
+       else if (sciGetNbTypedObjects(pFigure, SCI_SUBWIN) == 1)
+       {
+               /* One subwindow check if it is visible */
+               sciPointObj * onlySubwin = sciGetFirstTypedSelectedSon(pFigure, SCI_SUBWIN);
+               return subwinNeedsDisplay(onlySubwin);
+       }
+       else
+       {
+               return TRUE;
+       }
+}
+/*---------------------------------------------------------------------------------*/
+static BOOL subwinNeedsDisplay(sciPointObj * pSubwin)
+{
+       /* the subwindow is not displayed if it does not have any children, its box is of and is transparent or */
+       /* has the same background as the figure */
+       if (sciGetNbChildren(pSubwin) > 4)
+       {
+               /* Other children than the labels */
+               return TRUE;
+       }
+       else
+       {
+               BOOL axesVisible[3];
+
+               if (sciGetBoxType(pSubwin) != BT_OFF)
+               {
+                       /* Box is displayed */
+                       return TRUE;
+               }
+
+               sciGetAxesVisible(pSubwin, axesVisible);
+               if (axesVisible[0] || axesVisible[1] || axesVisible[2])
+               {
+                       /* One axis is visible */
+                       return TRUE;
+               }
+
+               if (   sciGetIsFilled(pSubwin)
+                         && sciGetBackground(sciGetParentFigure(pSubwin)) != sciGetBackground(pSubwin))
+               {
+                       /* Compare subwin background and figure one */
+                       return TRUE;
+               }
+
+               /* Check that labels texts are empty */
+               if (   !sciisTextEmpty(pSUBWIN_FEATURE(pSubwin)->mon_title)
+                               || !sciisTextEmpty(pSUBWIN_FEATURE(pSubwin)->mon_x_label)
+                               || !sciisTextEmpty(pSUBWIN_FEATURE(pSubwin)->mon_y_label)
+                               || !sciisTextEmpty(pSUBWIN_FEATURE(pSubwin)->mon_z_label))
+               {
+                       return TRUE;
+               }
+
+               /* apparently no need to display the axes */
+               return FALSE;
+       }
+}
+/*---------------------------------------------------------------------------------*/
 #undef round
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_3590.dia.ref b/scilab/modules/graphics/tests/nonreg_tests/bug_3590.dia.ref
new file mode 100644 (file)
index 0000000..e859105
--- /dev/null
@@ -0,0 +1,42 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008-2008 - DIGITEO - Vincent COUVERT
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+// <-- Non-regression test for bug 3590 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=3590
+//
+// <-- Short Description -->
+// Error message when we want to see a figure which has as userdata a structure (struct).
+//
+userdata = struct("dd",2);
+h=figure();
+set(h,"userdata",userdata);
+if execstr("disp(h)","errcatch")<>0 then bugmes();quit;end
+Handle of type "Figure" with properties:
+========================================
+children: "Axes"
+figure_position = [200,200]
+figure_size = [622,594]
+axes_size = [618,471]
+auto_resize = "on"
+viewport = [0,0]
+figure_name = "Figure n°%d"
+figure_id = 0
+info_message = ""
+color_map= matrix 33x3
+pixmap = "off"
+pixel_drawing_mode = "copy"
+immediate_drawing = "on"
+background =  33
+visible = "on"
+rotation_style = "unary"
+event_handler = ""
+event_handler_enable = "off"
+user_data = struct with fields: dd
+tag = ""
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_3590.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_3590.tst
new file mode 100644 (file)
index 0000000..6e22281
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008-2008 - DIGITEO - Vincent COUVERT
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+
+// <-- Non-regression test for bug 3590 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=3590
+//
+// <-- Short Description -->
+// Error message when we want to see a figure which has as userdata a structure (struct).
+// 
+
+userdata = struct("dd",2);
+h=figure();
+set(h,"userdata",userdata);
+if execstr("disp(h)","errcatch")<>0 then pause; end
+    
\ No newline at end of file
index 4a5d81f..5bc615d 100644 (file)
     <title>Examples</title>
     <programlisting role="example"><![CDATA[
 
+// Create a figure
 h=figure();
-// creates  figure number 1.
-uicontrol( h, 'style','text', ...
- 'string','This is a figure', ...
- 'position',[50 70 100 100], ...
- 'fontsize',15, ...
- 'tag','Alabel');
-// put a  text in figure 1
-lab=findobj('tag','Alabel');
-// find the object which 'tag' value is 'Alabel'
-disp('the handle of the label is '+string(lab));
+// Put a text in the figure
+uicontrol(h, "style","text", ...
+ "string","This is a figure", ...
+ "position",[50 70 100 100], ...
+ "fontsize",15, ...
+ "tag","Alabel");
+// Find the object which "tag" value is "Alabel"
+lab=findobj("tag","Alabel");
+disp("The text of the label is """+lab.string+"""");
+// Close the figure
 close();
  
   ]]></programlisting>
@@ -77,5 +78,6 @@ close();
   <refsection>
     <title>Authors</title>
     <para>Bertrand Guiheneuf</para>
+    <para>V.C.</para>
   </refsection>
 </refentry>
index 45cd74e..1bf743b 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2008 - INRIA - Vincent COUVERT 
+// Copyright (C) 2008 - DIGITEO - Vincent COUVERT 
 // 
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
@@ -21,30 +22,33 @@ figureIds = winsid();
 // Iterate over all figures
 for figureindex = 1:size(figureIds,2)
   
-  // Get the childrens
+  // Does the figure match the propertyName/propertyValue set ?
   f=scf(figureIds(figureindex));
-  children = f.children
+  // TODO: create a function which lists figure properties to avoid error messages
+  %ierr = execstr("%bool = isequal(get(f, propertyName), propertyValue);", "errcatch");
+  if %ierr==0 & %bool then
+    h = f;
+    return
+  end
   
   // Iterate over childrens
+  children = f.children
   for childIndex = 1:size(children,1)
     
     if children(childIndex).type == "uimenu" then
-      if isAnUimenuProperty(propertyName) then
-       if isequal(get(children(childIndex), propertyName), propertyValue) then
-         h = children(childIndex);
-         scf(currentFig);
-         return
-       end
-      end
+      answ = findUimenuWithproperty(children(childIndex), propertyName, propertyValue);
+      if ~isempty(answ) then
+       h = answ;
+       scf(currentFig);
+       return
+      end      
     elseif children(childIndex).type == "uicontrol" then
-      if isAnUicontrolProperty(propertyName) then
-       if isequal(get(children(childIndex), propertyName), propertyValue) then
-         h = children(childIndex);
-         scf(currentFig);
-         return
-       end
-      end
-    
+      answ = findUicontWithproperty(children(childIndex), propertyName, propertyValue);
+      if ~isempty(answ) then
+       h = answ;
+       scf(currentFig);
+       return
+      end      
     end
   end
 end
@@ -54,7 +58,12 @@ endfunction
 function res = isAnUimenuProperty(propertyName)
 // Copyright INRIA 2008
 // Vincent COUVERT
-uimenuProperties = ["callback","label","tag","foregroundcolor"];
+uimenuProperties = ["callback",
+    "enable",
+    "foregroundcolor",
+    "label",
+    "tag",
+    "visible"];
 res = or(propertyName==uimenuProperties);
 endfunction
 //-----------------------------------------------------------------------------
@@ -63,6 +72,7 @@ function res = isAnUicontrolProperty(propertyName)
 // Vincent COUVERT
 uicontrolProperties = ["backgroundcolor",
     "callback",
+    "enable",
     "fontangle",
     "fontsize",
     "fontunits",
@@ -83,7 +93,50 @@ uicontrolProperties = ["backgroundcolor",
     "units",
     "userdata",
     "value",
-    "verticalalignment"];
+    "verticalalignment",
+    "visible"];
 res = or(propertyName==uicontrolProperties);
 endfunction
 //-----------------------------------------------------------------------------
+function hFound = findUimenuWithproperty(uimenuHandle, propertyName, propertyValue)
+// Copyright DIGITEO 2008
+// Vincent COUVERT
+hFound = [];
+if isAnUimenuProperty(propertyName) then
+  if isequal(get(uimenuHandle, propertyName), propertyValue) then
+    hFound = uimenuHandle;
+    return
+  end
+end
+// Loop over submenus
+submenus = get(uimenuHandle, "children");
+for submenuIndex = 1:size(submenus,1)
+  answ = findUimenuWithproperty(submenus(submenuIndex), propertyName, propertyValue);
+  if ~isempty(answ) then
+    hFound = answ;
+    return
+  end
+end
+endfunction
+//-----------------------------------------------------------------------------
+function hFound = findUicontWithproperty(uicontrolHandle, propertyName, propertyValue)
+// Copyright DIGITEO 2008
+// Vincent COUVERT
+hFound = [];
+if isAnUicontrolProperty(propertyName) then
+  if isequal(get(uicontrolHandle, propertyName), propertyValue) then
+    hFound = uicontrolHandle;
+    return
+  end
+end
+// Loop over children
+children = get(uicontrolHandle, "children");
+for childIndex = 1:size(children,1)
+  answ = findUicontWithproperty(children(childIndex), propertyName, propertyValue);
+  if ~isempty(answ) then
+    hFound = answ;
+    return
+  end
+end
+endfunction
+//-----------------------------------------------------------------------------
index b3adb54..5aaa8bf 100644 (file)
@@ -24,6 +24,7 @@ extern "C"{
 #include "getPropertyAssignedValue.h"
 #include "localization.h"
 #include "sciprint.h"
+
 }
 
 using namespace org_scilab_modules_gui_bridge;
@@ -114,40 +115,33 @@ int setMenuParent(sciPointObj* sciObj, size_t stackPointer, int valueType, int n
   
 }
 
-extern "C" void localeToUTF(char** buffer)  ; 
 
 void EnableRootMenu(char *name, BOOL status)
 {
-  localeToUTF(&name);
-  CallScilabBridge::setRootMenuEnabled(getScilabJavaVM(), name, BOOLtobool(status));
+  CallScilabBridge::setRootMenuEnabled(getScilabJavaVM(),  name, BOOLtobool(status));
 }
 
 void EnableRootSubMenu(char *name, int position, BOOL status)
 {
-  localeToUTF(&name);
   CallScilabBridge::setRootSubMenuEnabled(getScilabJavaVM(), name, position, BOOLtobool(status));
 }
 
 void EnableFigureMenu(int figurenum, char *name, BOOL status)
 {
-  localeToUTF(&name);
   CallScilabBridge::setFigureMenuEnabled(getScilabJavaVM(), figurenum, name, BOOLtobool(status));
 }
 
 void EnableFigureSubMenu(int figurenum, char *name, int position, BOOL status)
 {
-  localeToUTF(&name);
  CallScilabBridge::setFigureSubMenuEnabled(getScilabJavaVM(), figurenum, name, position, BOOLtobool(status));
 }
 
 void DeleteRootMenu(char *name)
 {
-  localeToUTF(&name);
-  CallScilabBridge::removeRootMenu(getScilabJavaVM(), name);
+   CallScilabBridge::removeRootMenu(getScilabJavaVM(), name);
 }
 
 void DeleteFigureMenu(int figurenum, char *name)
 {
-  localeToUTF(&name);
   CallScilabBridge::removeFigureMenu(getScilabJavaVM(), figurenum, name);
 }
index 1f02450..f57a172 100644 (file)
@@ -100,7 +100,7 @@ void destroyUiobjectTag(sciPointObj * pobj) {
        case SCI_FIGURE:
                if (pFIGURE_FEATURE(pobj)->tag != NULL)
                {
-                       delete[] pUIMENU_FEATURE(pobj)->tag;
+                       delete[] pFIGURE_FEATURE(pobj)->tag;
                        pFIGURE_FEATURE(pobj)->tag = NULL;
                }
                break;
index 1c15085..143df89 100644 (file)
@@ -45,6 +45,7 @@ import org.scilab.modules.graphic_export.FileExporter;
 import org.scilab.modules.gui.bridge.console.SwingScilabConsole;
 import org.scilab.modules.gui.bridge.tab.SwingScilabTab;
 import org.scilab.modules.gui.canvas.Canvas;
+import org.scilab.modules.gui.canvas.ScilabCanvas;
 import org.scilab.modules.gui.checkbox.CheckBox;
 import org.scilab.modules.gui.checkbox.ScilabCheckBox;
 import org.scilab.modules.gui.colorchooser.ColorChooser;
@@ -55,12 +56,14 @@ import org.scilab.modules.gui.contextmenu.ScilabContextMenu;
 import org.scilab.modules.gui.editbox.EditBox;
 import org.scilab.modules.gui.editbox.ScilabEditBox;
 import org.scilab.modules.gui.events.callback.CallBack;
+import org.scilab.modules.gui.events.callback.ScilabCloseCallBack;
 import org.scilab.modules.gui.filechooser.FileChooser;
 import org.scilab.modules.gui.filechooser.ScilabFileChooser;
 import org.scilab.modules.gui.fontchooser.FontChooser;
 import org.scilab.modules.gui.fontchooser.ScilabFontChooser;
 import org.scilab.modules.gui.frame.Frame;
 import org.scilab.modules.gui.frame.ScilabFrame;
+import org.scilab.modules.gui.graphicWindow.ScilabGraphicWindow;
 import org.scilab.modules.gui.graphicWindow.ScilabRendererProperties;
 import org.scilab.modules.gui.helpbrowser.ScilabHelpBrowser;
 import org.scilab.modules.gui.label.Label;
@@ -83,22 +86,30 @@ import org.scilab.modules.gui.radiobutton.RadioButton;
 import org.scilab.modules.gui.radiobutton.ScilabRadioButton;
 import org.scilab.modules.gui.slider.ScilabSlider;
 import org.scilab.modules.gui.slider.Slider;
+import org.scilab.modules.gui.tab.ScilabTab;
 import org.scilab.modules.gui.tab.Tab;
+import org.scilab.modules.gui.textbox.ScilabTextBox;
+import org.scilab.modules.gui.textbox.TextBox;
+import org.scilab.modules.gui.toolbar.ToolBar;
 import org.scilab.modules.gui.utils.ConfigManager;
 import org.scilab.modules.gui.utils.ImageExporter;
+import org.scilab.modules.gui.utils.MenuBarBuilder;
 import org.scilab.modules.gui.utils.Position;
 import org.scilab.modules.gui.utils.ScilabPrint;
 import org.scilab.modules.gui.utils.ScilabRelief;
 import org.scilab.modules.gui.utils.Size;
+import org.scilab.modules.gui.utils.ToolBarBuilder;
 import org.scilab.modules.gui.utils.UIElementMapper;
 import org.scilab.modules.gui.utils.WebBrowser;
 import org.scilab.modules.gui.waitbar.ScilabWaitBar;
 import org.scilab.modules.gui.waitbar.WaitBar;
 import org.scilab.modules.gui.widget.Widget;
 import org.scilab.modules.gui.window.ScilabWindow;
+import org.scilab.modules.gui.window.ScilabWindowBridge;
 import org.scilab.modules.gui.window.Window;
 import org.scilab.modules.localization.Messages;
 import org.scilab.modules.renderer.FigureMapper;
+import org.scilab.modules.renderer.figureDrawing.DrawableFigureGL;
 
 /**
  * This class is used to call Scilab GUIs objects from Scilab
@@ -133,6 +144,7 @@ public class CallScilabBridge {
        private static final double DEFAULT_RED_FOREGROUND = 0;
        private static final double DEFAULT_GREEN_FOREGROUND = 0;
        private static final double DEFAULT_BLUE_FOREGROUND = 0;
+
        
        private static PrintRequestAttributeSet scilabPageFormat = new HashPrintRequestAttributeSet();
        private static String tmpPrinterFile = System.getenv("TMPDIR") + "scilabfigure";
@@ -548,6 +560,16 @@ public class CallScilabBridge {
                ((Frame) UIElementMapper.getCorrespondingUIElement(id)).destroy();
                UIElementMapper.removeMapping(id);
        }
+       
+       /**
+        * Create a new window with id figureIndex.
+        * The created window contains an empty tab.
+        * @param figureIndex index of the figure to create
+        * @return id of the window
+        */
+       public static int newWindow(int figureIndex) {
+               return ScilabGraphicWindow.newWindow(figureIndex);
+       }
 
        /****************************/
        /*                          */
@@ -1976,7 +1998,9 @@ public class CallScilabBridge {
         * @param command the name of the Scilab function to call
         */
        public static void setEventHandler(int figNum, String command) {
-               ((ScilabRendererProperties) FigureMapper.getCorrespondingFigure(figNum).getRendererProperties()).getCanvas().setEventHandler(command);
+               if (((ScilabRendererProperties) FigureMapper.getCorrespondingFigure(figNum).getRendererProperties()).getCanvas() != null) {
+                       ((ScilabRendererProperties) FigureMapper.getCorrespondingFigure(figNum).getRendererProperties()).getCanvas().setEventHandler(command);
+               }
        }
        
        /**
@@ -1985,8 +2009,10 @@ public class CallScilabBridge {
         * @param status is true to set the event handler active
         */
        public static void setEventHandlerEnabled(int figNum, boolean status) {
-               ((ScilabRendererProperties) FigureMapper.getCorrespondingFigure(figNum)
-                               .getRendererProperties()).getCanvas().setEventHandlerEnabled(status);
+               if (((ScilabRendererProperties) FigureMapper.getCorrespondingFigure(figNum).getRendererProperties()).getCanvas() != null) {
+                       ((ScilabRendererProperties) FigureMapper.getCorrespondingFigure(figNum)
+                                       .getRendererProperties()).getCanvas().setEventHandlerEnabled(status);
+               }
        }
        
        /******************/
index a35dcd7..5e8562a 100644 (file)
@@ -893,6 +893,17 @@ public class ScilabBridge {
        public static void setCurrent(Tab tab) {
                ScilabTabBridge.setCurrent(tab);
        }
+       
+       /**
+        * Set the background color of a tab.
+        * @param tab tab to modify
+        * @param red red channel of the color
+        * @param green green channel
+        * @param blue blue channel
+        */
+       public static void setBackground(Tab tab, double red, double green, double blue) {
+               ScilabTabBridge.setBackground(tab, red, green, blue);
+       }
 
        /******************/
        /* Console Bridge */
index 31df835..b319d8f 100644 (file)
@@ -30,7 +30,7 @@ import org.scilab.modules.gui.utils.Size;
 
 /**
  * Swing implementation for Scilab Canvas without scrollbars in GUIs This implementation requires
- * JOGL
+ * JOGL.
  *
  * @author Jean-Baptiste Silvy
  */
@@ -43,14 +43,14 @@ public class ScrolledSwingScilabCanvas extends JScrollPane implements SimpleCanv
 
        private ScilabEventListener eventHandler;
        /**
-        * Default contsructor
+        * Default constructor
         * @param canvas the canvas to view
         */
        public ScrolledSwingScilabCanvas(ScrollabeSwingScilabCanvas canvas) {
                super(canvas);
                this.canvas = canvas;
-               // actually with the current impelementation of GLJPanel.paintComponent,
-               // the panel is totally redrawed each time.
+               // actually with the current implementation of GLJPanel.paintComponent,
+               // the panel is totally redrawn each time.
                this.getViewport().setScrollMode(JViewport.BLIT_SCROLL_MODE);
        }
 
@@ -247,8 +247,21 @@ public class ScrolledSwingScilabCanvas extends JScrollPane implements SimpleCanv
                        }
                        realPosY = Math.max(0, realPosY);
 
-                       getViewport().setViewPosition(new Point(realPosX, realPosY));
-                       revalidate();
+                       // must be called on the Swing thread otherwise some JOGL corruption may appear
+                       final Point realPos = new Point(realPosX, realPosY);
+                       try {
+                               SwingUtilities.invokeAndWait(new Runnable() {
+                                       public void run() {
+                                               getViewport().setViewPosition(realPos);
+                                       }
+                               });
+                       } catch (InterruptedException e) {
+                               e.printStackTrace();
+                       } catch (InvocationTargetException e) {
+                               e.getCause().printStackTrace();
+                       }
+                       
+                       
                }
        }
 
index 5e3449f..6f479b9 100644 (file)
@@ -14,6 +14,8 @@
 
 package org.scilab.modules.gui.bridge.tab;
 
+import java.awt.BorderLayout;
+import java.awt.Color;
 import java.awt.Component;
 import java.awt.Container;
 import java.lang.reflect.InvocationTargetException;
@@ -221,7 +223,31 @@ public class SwingScilabTab extends View implements SimpleTab {
         */
        private int addMember(ScrolledSwingScilabCanvas member) {
                // TODO : Check wether we want a Canvas in a Tab or not.
-               this.setContentPane(member);
+               //this.setContentPane(member);
+               // Canvas should always be in the back
+               //this.setComponentZOrder(member, getComponentCount());
+               
+               this.setLayout(new BorderLayout());
+               if (SwingUtilities.isEventDispatchThread()) {
+                       add(member, BorderLayout.CENTER);
+                       revalidate();
+                       repaint();
+               } else {
+                       final ScrolledSwingScilabCanvas memberF = member;
+                       try {
+                               SwingUtilities.invokeAndWait(new Runnable() {
+                                       public void run() {
+                                               add(memberF, BorderLayout.CENTER);
+                                               revalidate();
+                                               repaint();
+                                       }
+                               });
+                       } catch (InterruptedException e) {
+                               e.printStackTrace();
+                       } catch (InvocationTargetException e) {
+                               e.printStackTrace();
+                       }
+               }
                return this.getComponentZOrder(member);
        }
        
@@ -818,5 +844,15 @@ public class SwingScilabTab extends View implements SimpleTab {
        public void setCurrent() {
                super.setActive(true);
        }
+       
+       /**
+        * Set the background color of the tab.
+        * @param red red channel of the color
+        * @param green green channel
+        * @param blue blue channel
+        */
+       public void setBackground(double red, double green, double blue) {
+               this.getContentPane().setBackground(new Color((float) red, (float) green, (float) blue));
+       }
 
 }
index 314cad1..b9f4ae3 100644 (file)
@@ -14,8 +14,6 @@
 
 package org.scilab.modules.gui.graphicWindow;
 
-import org.scilab.modules.gui.canvas.Canvas;
-import org.scilab.modules.gui.canvas.ScilabCanvas;
 import org.scilab.modules.gui.events.callback.ScilabCloseCallBack;
 import org.scilab.modules.gui.menubar.MenuBar;
 import org.scilab.modules.gui.tab.ScilabTab;
@@ -31,9 +29,9 @@ import org.scilab.modules.renderer.FigureMapper;
 import org.scilab.modules.renderer.figureDrawing.DrawableFigureGL;
 
 /**
- * Scilab graphic Window class
+ * Utilities to create a graphic window
  */
-public final class ScilabGraphicWindow extends ScilabWindow {
+public final class ScilabGraphicWindow {
 
        private static final String FIGURE_TITLE = "Graphic window number ";
        
@@ -50,12 +48,15 @@ public final class ScilabGraphicWindow extends ScilabWindow {
        }
        
        /**
-        * Specify the window we wants to use
-        * Real creation starts here
-        * @param figureIndex index of the figure associated with the window
+        * Create a new window with id figureIndex.
+        * The created window contains an empty tab.
+        * @param figureIndex index of the figure to create
+        * @return id of the window
         */
-       public void setFigureIndex(int figureIndex) {
-               this.setTitle(FIGURE_TITLE + figureIndex);
+       public static int newWindow(int figureIndex) {
+               Window newWindow = ScilabWindow.createWindow();
+               
+               newWindow.setTitle(FIGURE_TITLE + figureIndex);
                /* MENUBAR */
                MenuBar menuBar = MenuBarBuilder.buildMenuBar(MENUBARXMLFILE, figureIndex);
                /* TOOLBAR */
@@ -66,34 +67,25 @@ public final class ScilabGraphicWindow extends ScilabWindow {
                Tab graphicTab = ScilabTab.createTab(FIGURE_TITLE + figureIndex);
                /* Destroy the graphic figure when the tab is closed */
                graphicTab.setCallback(ScilabCloseCallBack.create(figureIndex, getClosingWindowCommand(figureIndex)));
-               Canvas graphicCanvas = ScilabCanvas.createCanvas(figureIndex);
                graphicTab.addMenuBar(menuBar);
                graphicTab.addToolBar(toolBar);
                graphicTab.addInfoBar(infoBar);
-               graphicTab.addMember(graphicCanvas);
-               this.addTab(graphicTab);
+               newWindow.addTab(graphicTab);
                
                // link the tab and canvas with their figure
                DrawableFigureGL associatedFigure = FigureMapper.getCorrespondingFigure(figureIndex);
-               associatedFigure.setRendererProperties(new ScilabRendererProperties(graphicTab, graphicCanvas));
-               
+               //associatedFigure.setRendererProperties(new ScilabRendererProperties(graphicTab, graphicCanvas));
+               associatedFigure.setRendererProperties(new ScilabRendererProperties(graphicTab, null));
                // don't draw now, figure will show itself when all its parameters will be set
-       }
-
-       /**
-        * Creates a Scilab window object
-        * @param figureIndex index of the figure associated with the window
-        * @return the created window
-        */
-       public static Window createWindow(int figureIndex) {
-               return new ScilabGraphicWindow();
+               
+               return 0;
        }
        
        /**
         * @param figureIndex of the figure to close
         * @return Scilab command used to close a window.
         */
-       private String getClosingWindowCommand(int figureIndex) {
+       private static String getClosingWindowCommand(int figureIndex) {
                // // check if figure is already closed
                // if (get_figure_handle(fid) <> []) then
                //   if (get(get_figure_handle(fid), 'event_handler_enable') == 'on') then
index 2aee0bd..f6af71e 100644 (file)
@@ -18,6 +18,7 @@ package org.scilab.modules.gui.graphicWindow;
 import javax.media.opengl.GL;
 
 import org.scilab.modules.gui.canvas.Canvas;
+import org.scilab.modules.gui.canvas.ScilabCanvas;
 import org.scilab.modules.gui.tab.Tab;
 import org.scilab.modules.gui.utils.Position;
 import org.scilab.modules.gui.utils.Size;
@@ -60,7 +61,11 @@ public class ScilabRendererProperties implements RendererProperties {
         * @see org.scilab.modules.renderer.figureDrawing.RendererProperties#getCanvasHeight()
         */
        public int getCanvasHeight() {
-               return parentCanvas.getDims().getHeight();
+               if (parentCanvas != null) {
+                       return parentCanvas.getDims().getHeight();
+               } else {
+                       return 0;
+               }
        }
 
        /**
@@ -69,7 +74,11 @@ public class ScilabRendererProperties implements RendererProperties {
         * @see org.scilab.modules.renderer.figureDrawing.RendererProperties#getCanvasWidth()
         */
        public int getCanvasWidth() {
-               return parentCanvas.getDims().getWidth();
+               if (parentCanvas != null) {
+                       return parentCanvas.getDims().getWidth();
+               } else {
+                       return 0;
+               }
        }
 
        /**
@@ -78,7 +87,11 @@ public class ScilabRendererProperties implements RendererProperties {
         * @see org.scilab.modules.renderer.figureDrawing.RendererProperties#getGLPipeline()
         */
        public GL getGLPipeline() {
-               return parentCanvas.getGL();
+               if (parentCanvas != null) {
+                       return parentCanvas.getGL();
+               } else {
+                       return null;
+               }
        }
 
        /**
@@ -134,6 +147,11 @@ public class ScilabRendererProperties implements RendererProperties {
         * @see org.scilab.modules.renderer.figureDrawing.RendererProperties#setCanvasSize(int, int)
         */
        public int setCanvasSize(int width, int height) {
+               
+               if (parentCanvas == null) {
+                       return RESIZE_SUCCESS;
+               }
+               
                if (!getAutoResizeMode()) {
                        // autore size off, just resize the canvas
                        try {
@@ -218,7 +236,9 @@ public class ScilabRendererProperties implements RendererProperties {
      */
        public void setPixmapMode(boolean onOrOff) {
                // pixmap "on" means auto swap buffer off.
-               parentCanvas.setAutoSwapBufferMode(!onOrOff);
+               if (parentCanvas != null) {
+                       parentCanvas.setAutoSwapBufferMode(!onOrOff);
+               }
        }
     
     /**
@@ -227,7 +247,11 @@ public class ScilabRendererProperties implements RendererProperties {
      * @see org.scilab.modules.renderer.figureDrawing.RendererProperties#getPixmapMode()
      */
     public boolean getPixmapMode() {
-       return !(parentCanvas.getAutoSwapBufferMode());
+       if (parentCanvas != null) {
+               return !(parentCanvas.getAutoSwapBufferMode());
+       } else {
+               return false;
+       }
     }
 
        /**
@@ -247,9 +271,9 @@ public class ScilabRendererProperties implements RendererProperties {
        }
        
        /**
-     * Close the rendering canvas
+     * Close the figure
      */
-   public void closeCanvas() {
+   public void closeFigure() {
           // hide tab before to avoid unwanted display
           parentTab.setVisible(false);
           
@@ -262,14 +286,20 @@ public class ScilabRendererProperties implements RendererProperties {
     * @param onOrOff true to enable autoresize mode
     */
    public void setAutoResizeMode(boolean onOrOff) {
-          parentCanvas.setAutoResizeMode(onOrOff);
+          if (parentCanvas != null) {
+                  parentCanvas.setAutoResizeMode(onOrOff);
+          }
    }
 
    /**
     * @return wether the resize mode is on or off
     */
    public boolean getAutoResizeMode() {
-          return parentCanvas.getAutoResizeMode();
+          if (parentCanvas != null) {
+                  return parentCanvas.getAutoResizeMode();
+          } else {
+                  return false;
+          }
    }
    
    /**
@@ -277,7 +307,12 @@ public class ScilabRendererProperties implements RendererProperties {
         * @return [x,y,w,h] array
         */
    public int[] getViewport() {
-          return parentCanvas.getViewingRegion();
+          if (parentCanvas != null) {
+                  return parentCanvas.getViewingRegion();
+          } else {
+                  int[] res = {0, 0, 0, 0};
+                  return res;
+          }
    }
    
    /**
@@ -290,7 +325,9 @@ public class ScilabRendererProperties implements RendererProperties {
         * @param height height of the viewport
         */
        public void setViewport(int posX, int posY, int width, int height) {
-               parentCanvas.setViewingRegion(posX, posY, width, height);
+               if (parentCanvas != null) {
+                       parentCanvas.setViewingRegion(posX, posY, width, height);
+               }
        }
        
        /**
@@ -300,12 +337,15 @@ public class ScilabRendererProperties implements RendererProperties {
         * @param blue blue channel
         */
        public void setBackgroundColor(double red, double green, double blue) {
-               parentCanvas.setBackgroundColor(red, green, blue);
+               if (parentCanvas != null) {
+                       parentCanvas.setBackgroundColor(red, green, blue);
+               }
+               parentTab.setBackground(red, green, blue);
        }
        
        /**
         * Create an interactive selection rectangle and return its pixel coordinates
-        * @param isClick specify wether the rubber box is selected by one click for each one of the two edge
+        * @param isClick specify whether the rubber box is selected by one click for each one of the two edge
         *                or a sequence of press-release
         * @param isZoom specify if the rubber box is used for a zoom and then change the mouse cursor.
         * @param initialRect if not null specify the initial rectangle to draw
@@ -313,7 +353,11 @@ public class ScilabRendererProperties implements RendererProperties {
         * @return Scilab code of the pressed button
         */
        public int rubberBox(boolean isClick, boolean isZoom, int[] initialRect, int[] endRect) {
-               return parentCanvas.rubberBox(isClick, isZoom, initialRect, endRect);
+               if (parentCanvas != null) {
+                       return parentCanvas.rubberBox(isClick, isZoom, initialRect, endRect);
+               } else {
+                       return 0;
+               }
        }
        
        /**
@@ -338,14 +382,20 @@ public class ScilabRendererProperties implements RendererProperties {
         * @return true if the diplacement recording continue, false otherwise
         */
        public boolean getRotationDisplacement(int[] displacement) {
-               return parentCanvas.getRotationDisplacement(displacement);
+               if (parentCanvas != null) {
+                       return parentCanvas.getRotationDisplacement(displacement);
+               } else {
+                       return false;
+               }
        }
 
        /**
         * Ansynchrnous stop of rotation tracking.
         */
        public void stopRotationRecording() {
-               parentCanvas.stopRotationRecording();
+               if (parentCanvas != null) {
+                       parentCanvas.stopRotationRecording();
+               }
        }
        
        /**
@@ -359,7 +409,40 @@ public class ScilabRendererProperties implements RendererProperties {
         * Disable canvas
         */
        public void disableCanvas() {
-               parentCanvas.close();
+               if (parentCanvas != null) {
+                       parentCanvas.close();
+               }
+       }
+       
+       /**
+        * If the window does not already contains a 3D canvas,
+        * add one.
+        * @param figureIndex index of the figure in which the canvas is added
+        */
+       public void openGraphicCanvas(int figureIndex) {
+               if (parentCanvas == null) {
+               
+                       // create canvas
+                       parentCanvas = ScilabCanvas.createCanvas(figureIndex);
+               
+                       // add it to the tab
+                       parentTab.addMember(parentCanvas);
+                       
+               }
+       }
+       
+       /**
+        * Destroy the canvas if one already exists
+        */
+       public void closeGraphicCanvas() {
+               if (parentCanvas != null) {
+                       // disable the canvas
+                       parentCanvas.close();
+                       
+                       // remove it from the tab
+                       parentTab.removeMember(parentCanvas);
+               }
+               parentCanvas = null;
        }
 
 }
index c296cbe..ace38a1 100644 (file)
@@ -120,6 +120,7 @@ public class ScilabHelpBrowser extends ScilabDockable implements HelpBrowser {
        public void close() {
                ScilabBridge.close(this);
                helpTab.close();
+               instance = null;
        }
 
 
index bd5be0a..eb4ab97 100644 (file)
@@ -495,6 +495,16 @@ public class ScilabTab extends ScilabContainer implements Tab {
        public void setCurrent() {
                ScilabBridge.setCurrent(this);
        }
+       
+       /**
+        * Set the background color of the tab.
+        * @param red red channel of the color
+        * @param green green channel
+        * @param blue blue channel
+        */
+       public void setBackground(double red, double green, double blue) {
+               ScilabBridge.setBackground(this, red, green, blue);
+       }
 
 }
 
index 91c7d58..2ba62a0 100644 (file)
@@ -14,6 +14,7 @@ package org.scilab.modules.gui.tab;
 
 import org.scilab.modules.gui.checkbox.CheckBox;
 import org.scilab.modules.gui.console.Console;
+import org.scilab.modules.gui.bridge.ScilabBridge;
 import org.scilab.modules.gui.bridge.tab.SwingScilabTab;
 import org.scilab.modules.gui.canvas.Canvas;
 import org.scilab.modules.gui.editbox.EditBox;
@@ -394,4 +395,15 @@ public class ScilabTabBridge {
        public static void setCurrent(Tab tab) {
                tab.getAsSimpleTab().setCurrent();
        }
+       
+       /**
+        * Set the background color of a tab.
+        * @param tab tab to modify
+        * @param red red channel of the color
+        * @param green green channel
+        * @param blue blue channel
+        */
+       public static void setBackground(Tab tab, double red, double green, double blue) {
+               tab.getAsSimpleTab().setBackground(red, green, blue);
+       }
 }
index c4ca225..1407866 100644 (file)
@@ -302,5 +302,13 @@ public interface SimpleTab {
         * Set this tab as the current tab of its parent Window
         */
        void setCurrent();
+       
+       /**
+        * Set the background color of the tab.
+        * @param red red channel of the color
+        * @param green green channel
+        * @param blue blue channel
+        */
+       void setBackground(double red, double green, double blue);
 
 }
index 2c1e087..1cb89c0 100644 (file)
@@ -236,4 +236,11 @@ public interface Tab extends Container {
         */
        void setCurrent();
 
+       /**
+        * Set the background color of the tab.
+        * @param red red channel of the color
+        * @param green green channel
+        * @param blue blue channel
+        */
+       void setBackground(double red, double green, double blue);
 }
index f9ff918..836f2f4 100644 (file)
@@ -16,7 +16,8 @@ import java.awt.Container;
 import java.awt.Dimension;
 import java.awt.Point;
 
-import org.scilab.modules.gui.bridge.canvas.ScrolledSwingScilabCanvas;
+import javax.swing.JPanel;
+
 import org.scilab.modules.gui.bridge.tab.SwingScilabTab;
 
 /**
@@ -46,13 +47,13 @@ public final class PositionConverter {
                }
                
                SwingScilabTab parentTab = (SwingScilabTab) parent;
-               ScrolledSwingScilabCanvas canvas = (ScrolledSwingScilabCanvas) parentTab.getContentPane();
+               JPanel canvas = (JPanel) parentTab.getContentPane();
                
-               int xOffset = (parentTab.getDims().getWidth() - canvas.getDims().getWidth()) / 2; /* Border Width */
+               int xOffset = (parentTab.getDims().getWidth() - canvas.getWidth()) / 2; /* Border Width */
                int yOffset = parentTab.getTitlebar().getHeight();
                
                int xCoord = scilabPosition.getX() + xOffset;
-               int yCoord = canvas.getDims().getHeight() - scilabPosition.getY() - objectSize.getHeight() + yOffset + xOffset;
+               int yCoord = canvas.getHeight() - scilabPosition.getY() - objectSize.getHeight() + yOffset + xOffset;
 
                return new Position(xCoord, yCoord);
        }
@@ -71,13 +72,13 @@ public final class PositionConverter {
                }
                
                SwingScilabTab parentTab = (SwingScilabTab) parent;
-               ScrolledSwingScilabCanvas canvas = (ScrolledSwingScilabCanvas) parentTab.getContentPane();
+               JPanel canvas = (JPanel) parentTab.getContentPane();
                
-               int xOffset = (parentTab.getDims().getWidth() - canvas.getDims().getWidth()) / 2; /* Border Width */
+               int xOffset = (parentTab.getDims().getWidth() - canvas.getWidth()) / 2; /* Border Width */
                int yOffset = parentTab.getTitlebar().getHeight();
                
                int xCoord = javaPosition.x - xOffset;
-               int yCoord = canvas.getDims().getHeight() - javaPosition.y - objectSize.height + yOffset + xOffset;
+               int yCoord = canvas.getHeight() - javaPosition.y - objectSize.height + yOffset + xOffset;
 
                return new Position(xCoord, yCoord);
        }
index 030dc95..686be9e 100644 (file)
@@ -68,7 +68,9 @@ JNIEnv * curEnv = getCurrentEnv();
 
 localClass = curEnv->FindClass( this->className().c_str() ) ;
 if (localClass == NULL) {
-  throw GiwsException::JniClassNotFoundException(curEnv, this->className());
+std::cerr << "Could not get the Class " << this->className() <<  std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 this->instanceClass = (jclass) curEnv->NewGlobalRef(localClass) ;
@@ -77,23 +79,31 @@ this->instanceClass = (jclass) curEnv->NewGlobalRef(localClass) ;
 curEnv->DeleteLocalRef(localClass);
 
 if (this->instanceClass == NULL) {
-throw GiwsException::JniObjectCreationException(curEnv, this->className());
+std::cerr << "Could not create a Global Ref of " << this->className() <<  std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 
 constructObject = curEnv->GetMethodID( this->instanceClass, construct.c_str() , param.c_str() ) ;
 if(constructObject == NULL){
-throw GiwsException::JniObjectCreationException(curEnv, this->className());
+std::cerr << "Could not retrieve the constructor of the class " << this->className() << " with the profile : " << construct << param << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 localInstance = curEnv->NewObject( this->instanceClass, constructObject ) ;
 if(localInstance == NULL){
-throw GiwsException::JniObjectCreationException(curEnv, this->className());
+std::cerr << "Could not instantiate the object " << this->className() << " with the constructor : " << construct << param << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
  
 this->instance = curEnv->NewGlobalRef(localInstance) ;
 if(this->instance == NULL){
-throw GiwsException::JniObjectCreationException(curEnv, this->className());
+std::cerr << "Could not create a new global ref of " << this->className() << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 /* localInstance not needed anymore */
 curEnv->DeleteLocalRef(localInstance);
@@ -115,6 +125,8 @@ jstringnewContextMenujobjectArrayID=NULL;
 jintnewContextMenuID=NULL; 
 voiddestroyWidgetjintID=NULL; 
 voiddestroyFramejintID=NULL; 
+jintnewWindowjintID=NULL; 
+jintnewGraphicCanvasjintID=NULL; 
 voidsetFigureAsParentjintjintID=NULL; 
 voidsetMenuAsParentjintjintID=NULL; 
 voidsetRootAsParentjintID=NULL; 
@@ -297,12 +309,18 @@ jclass localClass = curEnv->GetObjectClass(JObj);
         curEnv->DeleteLocalRef(localClass);
 
         if (this->instanceClass == NULL) {
-throw GiwsException::JniObjectCreationException(curEnv, this->className());
+
+std::cerr << "Could not create a Global Ref of " << this->className() <<  std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
         }
 
         this->instance = curEnv->NewGlobalRef(JObj) ;
         if(this->instance == NULL){
-throw GiwsException::JniObjectCreationException(curEnv, this->className());
+
+std::cerr << "Could not create a new global ref of " << this->className() << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
         }
         /* Methods ID set to NULL */
         jintnewWindowID=NULL; 
@@ -321,6 +339,8 @@ jstringnewContextMenujobjectArrayID=NULL;
 jintnewContextMenuID=NULL; 
 voiddestroyWidgetjintID=NULL; 
 voiddestroyFramejintID=NULL; 
+jintnewWindowjintID=NULL; 
+jintnewGraphicCanvasjintID=NULL; 
 voidsetFigureAsParentjintjintID=NULL; 
 voidsetMenuAsParentjintjintID=NULL; 
 voidsetRootAsParentjintID=NULL; 
@@ -521,13 +541,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewWindowID = curEnv->GetStaticMethodID(cls, "newWindow", "()I" ) ;
 if (jintnewWindowID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newWindow");
+std::cerr << "Could not access to the method " << "newWindow" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewWindowID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -540,13 +564,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewMenuBarID = curEnv->GetStaticMethodID(cls, "newMenuBar", "()I" ) ;
 if (jintnewMenuBarID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newMenuBar");
+std::cerr << "Could not access to the method " << "newMenuBar" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewMenuBarID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -559,13 +587,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewMenuID = curEnv->GetStaticMethodID(cls, "newMenu", "()I" ) ;
 if (jintnewMenuID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newMenu");
+std::cerr << "Could not access to the method " << "newMenu" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewMenuID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -578,13 +610,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewPushButtonID = curEnv->GetStaticMethodID(cls, "newPushButton", "()I" ) ;
 if (jintnewPushButtonID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newPushButton");
+std::cerr << "Could not access to the method " << "newPushButton" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewPushButtonID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -597,13 +633,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewEditBoxID = curEnv->GetStaticMethodID(cls, "newEditBox", "()I" ) ;
 if (jintnewEditBoxID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newEditBox");
+std::cerr << "Could not access to the method " << "newEditBox" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewEditBoxID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -616,13 +656,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewLabelID = curEnv->GetStaticMethodID(cls, "newLabel", "()I" ) ;
 if (jintnewLabelID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newLabel");
+std::cerr << "Could not access to the method " << "newLabel" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewLabelID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -635,13 +679,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewCheckBoxID = curEnv->GetStaticMethodID(cls, "newCheckBox", "()I" ) ;
 if (jintnewCheckBoxID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newCheckBox");
+std::cerr << "Could not access to the method " << "newCheckBox" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewCheckBoxID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -654,13 +702,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewRadioButtonID = curEnv->GetStaticMethodID(cls, "newRadioButton", "()I" ) ;
 if (jintnewRadioButtonID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newRadioButton");
+std::cerr << "Could not access to the method " << "newRadioButton" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewRadioButtonID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -673,13 +725,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewSliderID = curEnv->GetStaticMethodID(cls, "newSlider", "()I" ) ;
 if (jintnewSliderID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newSlider");
+std::cerr << "Could not access to the method " << "newSlider" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewSliderID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -692,13 +748,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewPopupMenuID = curEnv->GetStaticMethodID(cls, "newPopupMenu", "()I" ) ;
 if (jintnewPopupMenuID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newPopupMenu");
+std::cerr << "Could not access to the method " << "newPopupMenu" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewPopupMenuID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -711,13 +771,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewListBoxID = curEnv->GetStaticMethodID(cls, "newListBox", "()I" ) ;
 if (jintnewListBoxID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newListBox");
+std::cerr << "Could not access to the method " << "newListBox" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewListBoxID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -730,13 +794,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewFrameID = curEnv->GetStaticMethodID(cls, "newFrame", "()I" ) ;
 if (jintnewFrameID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newFrame");
+std::cerr << "Could not access to the method " << "newFrame" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewFrameID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -749,7 +817,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jstringnewContextMenujobjectArrayID = curEnv->GetStaticMethodID(cls, "newContextMenu", "([Ljava/lang/String;)Ljava/lang/String;" ) ;
 if (jstringnewContextMenujobjectArrayID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newContextMenu");
+std::cerr << "Could not access to the method " << "newContextMenu" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 
@@ -757,7 +827,8 @@ jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 jobjectArray menuLabels_ = curEnv->NewObjectArray( menuLabelsSize, stringArrayClass, NULL);
 if (menuLabels_ == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not allocate Java string array, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 // convert each char * to java strings and fill the java array.
@@ -766,7 +837,8 @@ for ( int i = 0; i < menuLabelsSize; i++)
 jstring TempString = curEnv->NewStringUTF( menuLabels[i] );
 if (TempString == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not convert C string to Java UTF string, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 curEnv->SetObjectArrayElement( menuLabels_, i, TempString);
@@ -775,10 +847,12 @@ curEnv->SetObjectArrayElement( menuLabels_, i, TempString);
 curEnv->DeleteLocalRef(TempString);
 }
                         jstring res =  (jstring) curEnv->CallStaticObjectMethod(cls, jstringnewContextMenujobjectArrayID ,menuLabels_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
 
+
 const char *tempString = curEnv->GetStringUTFChars(res, 0);
 char * myStringBuffer = new char[strlen(tempString) + 1];
 strcpy(myStringBuffer, tempString);
@@ -786,9 +860,11 @@ curEnv->ReleaseStringUTFChars(res, tempString);
 curEnv->DeleteLocalRef(res);
 curEnv->DeleteLocalRef(stringArrayClass);
 curEnv->DeleteLocalRef(menuLabels_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myStringBuffer;
 
 }
@@ -801,13 +877,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewContextMenuID = curEnv->GetStaticMethodID(cls, "newContextMenu", "()I" ) ;
 if (jintnewContextMenuID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newContextMenu");
+std::cerr << "Could not access to the method " << "newContextMenu" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewContextMenuID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -820,13 +900,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voiddestroyWidgetjintID = curEnv->GetStaticMethodID(cls, "destroyWidget", "(I)V" ) ;
 if (voiddestroyWidgetjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "destroyWidget");
+std::cerr << "Could not access to the method " << "destroyWidget" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voiddestroyWidgetjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::destroyFrame (JavaVM * jvm_, int objID){
@@ -837,13 +921,63 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voiddestroyFramejintID = curEnv->GetStaticMethodID(cls, "destroyFrame", "(I)V" ) ;
 if (voiddestroyFramejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "destroyFrame");
+std::cerr << "Could not access to the method " << "destroyFrame" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voiddestroyFramejintID ,objID);
+
+if (curEnv->ExceptionCheck()) {
+curEnv->ExceptionDescribe() ;
+}
+
+}
+
+int CallScilabBridge::newWindow (JavaVM * jvm_, int figureIndex){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID jintnewWindowjintID = curEnv->GetStaticMethodID(cls, "newWindow", "(I)I" ) ;
+if (jintnewWindowjintID == NULL) {
+std::cerr << "Could not access to the method " << "newWindow" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
+}
+
+                        jint res =  (jint) curEnv->CallIntMethod(cls, jintnewWindowjintID ,figureIndex);
+
+if (curEnv->ExceptionCheck()) {
+curEnv->ExceptionDescribe() ;
+}
+
+return res;
+
+}
+
+int CallScilabBridge::newGraphicCanvas (JavaVM * jvm_, int parentFigureIndex){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread((void **) &curEnv, NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID jintnewGraphicCanvasjintID = curEnv->GetStaticMethodID(cls, "newGraphicCanvas", "(I)I" ) ;
+if (jintnewGraphicCanvasjintID == NULL) {
+std::cerr << "Could not access to the method " << "newGraphicCanvas" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
+}
+
+                        jint res =  (jint) curEnv->CallIntMethod(cls, jintnewGraphicCanvasjintID ,parentFigureIndex);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
+return res;
+
 }
 
 void CallScilabBridge::setFigureAsParent (JavaVM * jvm_, int figureID, int objID){
@@ -854,13 +988,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFigureAsParentjintjintID = curEnv->GetStaticMethodID(cls, "setFigureAsParent", "(II)V" ) ;
 if (voidsetFigureAsParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFigureAsParent");
+std::cerr << "Could not access to the method " << "setFigureAsParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFigureAsParentjintjintID ,figureID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setMenuAsParent (JavaVM * jvm_, int menuID, int objID){
@@ -871,13 +1009,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetMenuAsParentjintjintID = curEnv->GetStaticMethodID(cls, "setMenuAsParent", "(II)V" ) ;
 if (voidsetMenuAsParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setMenuAsParent");
+std::cerr << "Could not access to the method " << "setMenuAsParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetMenuAsParentjintjintID ,menuID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setRootAsParent (JavaVM * jvm_, int objID){
@@ -888,13 +1030,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetRootAsParentjintID = curEnv->GetStaticMethodID(cls, "setRootAsParent", "(I)V" ) ;
 if (voidsetRootAsParentjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setRootAsParent");
+std::cerr << "Could not access to the method " << "setRootAsParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetRootAsParentjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setParent (JavaVM * jvm_, int parentID, int objID){
@@ -905,13 +1051,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetParentjintjintID = curEnv->GetStaticMethodID(cls, "setParent", "(II)V" ) ;
 if (voidsetParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setParent");
+std::cerr << "Could not access to the method " << "setParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setPushButtonParent (JavaVM * jvm_, int parentID, int objID){
@@ -922,13 +1072,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetPushButtonParentjintjintID = curEnv->GetStaticMethodID(cls, "setPushButtonParent", "(II)V" ) ;
 if (voidsetPushButtonParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setPushButtonParent");
+std::cerr << "Could not access to the method " << "setPushButtonParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetPushButtonParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removePushButtonFromParent (JavaVM * jvm_, int parentID, int objID){
@@ -939,13 +1093,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremovePushButtonFromParentjintjintID = curEnv->GetStaticMethodID(cls, "removePushButtonFromParent", "(II)V" ) ;
 if (voidremovePushButtonFromParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removePushButtonFromParent");
+std::cerr << "Could not access to the method " << "removePushButtonFromParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidremovePushButtonFromParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setEditBoxParent (JavaVM * jvm_, int parentID, int objID){
@@ -956,13 +1114,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetEditBoxParentjintjintID = curEnv->GetStaticMethodID(cls, "setEditBoxParent", "(II)V" ) ;
 if (voidsetEditBoxParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setEditBoxParent");
+std::cerr << "Could not access to the method " << "setEditBoxParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetEditBoxParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removeEditBoxFromParent (JavaVM * jvm_, int parentID, int objID){
@@ -973,13 +1135,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremoveEditBoxFromParentjintjintID = curEnv->GetStaticMethodID(cls, "removeEditBoxFromParent", "(II)V" ) ;
 if (voidremoveEditBoxFromParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removeEditBoxFromParent");
+std::cerr << "Could not access to the method " << "removeEditBoxFromParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidremoveEditBoxFromParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setLabelParent (JavaVM * jvm_, int parentID, int objID){
@@ -990,13 +1156,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetLabelParentjintjintID = curEnv->GetStaticMethodID(cls, "setLabelParent", "(II)V" ) ;
 if (voidsetLabelParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setLabelParent");
+std::cerr << "Could not access to the method " << "setLabelParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetLabelParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removeLabelFromParent (JavaVM * jvm_, int parentID, int objID){
@@ -1007,13 +1177,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremoveLabelFromParentjintjintID = curEnv->GetStaticMethodID(cls, "removeLabelFromParent", "(II)V" ) ;
 if (voidremoveLabelFromParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removeLabelFromParent");
+std::cerr << "Could not access to the method " << "removeLabelFromParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidremoveLabelFromParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setCheckBoxParent (JavaVM * jvm_, int parentID, int objID){
@@ -1024,13 +1198,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetCheckBoxParentjintjintID = curEnv->GetStaticMethodID(cls, "setCheckBoxParent", "(II)V" ) ;
 if (voidsetCheckBoxParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setCheckBoxParent");
+std::cerr << "Could not access to the method " << "setCheckBoxParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetCheckBoxParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removeCheckBoxFromParent (JavaVM * jvm_, int parentID, int objID){
@@ -1041,13 +1219,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremoveCheckBoxFromParentjintjintID = curEnv->GetStaticMethodID(cls, "removeCheckBoxFromParent", "(II)V" ) ;
 if (voidremoveCheckBoxFromParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removeCheckBoxFromParent");
+std::cerr << "Could not access to the method " << "removeCheckBoxFromParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidremoveCheckBoxFromParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setRadioButtonParent (JavaVM * jvm_, int parentID, int objID){
@@ -1058,13 +1240,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetRadioButtonParentjintjintID = curEnv->GetStaticMethodID(cls, "setRadioButtonParent", "(II)V" ) ;
 if (voidsetRadioButtonParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setRadioButtonParent");
+std::cerr << "Could not access to the method " << "setRadioButtonParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetRadioButtonParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removeRadioButtonFromParent (JavaVM * jvm_, int parentID, int objID){
@@ -1075,13 +1261,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremoveRadioButtonFromParentjintjintID = curEnv->GetStaticMethodID(cls, "removeRadioButtonFromParent", "(II)V" ) ;
 if (voidremoveRadioButtonFromParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removeRadioButtonFromParent");
+std::cerr << "Could not access to the method " << "removeRadioButtonFromParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidremoveRadioButtonFromParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setSliderParent (JavaVM * jvm_, int parentID, int objID){
@@ -1092,13 +1282,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetSliderParentjintjintID = curEnv->GetStaticMethodID(cls, "setSliderParent", "(II)V" ) ;
 if (voidsetSliderParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setSliderParent");
+std::cerr << "Could not access to the method " << "setSliderParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetSliderParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removeSliderFromParent (JavaVM * jvm_, int parentID, int objID){
@@ -1109,13 +1303,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremoveSliderFromParentjintjintID = curEnv->GetStaticMethodID(cls, "removeSliderFromParent", "(II)V" ) ;
 if (voidremoveSliderFromParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removeSliderFromParent");
+std::cerr << "Could not access to the method " << "removeSliderFromParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidremoveSliderFromParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setPopupMenuParent (JavaVM * jvm_, int parentID, int objID){
@@ -1126,13 +1324,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetPopupMenuParentjintjintID = curEnv->GetStaticMethodID(cls, "setPopupMenuParent", "(II)V" ) ;
 if (voidsetPopupMenuParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setPopupMenuParent");
+std::cerr << "Could not access to the method " << "setPopupMenuParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetPopupMenuParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removePopupMenuFromParent (JavaVM * jvm_, int parentID, int objID){
@@ -1143,13 +1345,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremovePopupMenuFromParentjintjintID = curEnv->GetStaticMethodID(cls, "removePopupMenuFromParent", "(II)V" ) ;
 if (voidremovePopupMenuFromParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removePopupMenuFromParent");
+std::cerr << "Could not access to the method " << "removePopupMenuFromParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidremovePopupMenuFromParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setListBoxParent (JavaVM * jvm_, int parentID, int objID){
@@ -1160,13 +1366,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetListBoxParentjintjintID = curEnv->GetStaticMethodID(cls, "setListBoxParent", "(II)V" ) ;
 if (voidsetListBoxParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setListBoxParent");
+std::cerr << "Could not access to the method " << "setListBoxParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetListBoxParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removeListBoxFromParent (JavaVM * jvm_, int parentID, int objID){
@@ -1177,13 +1387,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremoveListBoxFromParentjintjintID = curEnv->GetStaticMethodID(cls, "removeListBoxFromParent", "(II)V" ) ;
 if (voidremoveListBoxFromParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removeListBoxFromParent");
+std::cerr << "Could not access to the method " << "removeListBoxFromParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidremoveListBoxFromParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFrameParent (JavaVM * jvm_, int parentID, int objID){
@@ -1194,13 +1408,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameParentjintjintID = curEnv->GetStaticMethodID(cls, "setFrameParent", "(II)V" ) ;
 if (voidsetFrameParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameParent");
+std::cerr << "Could not access to the method " << "setFrameParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removeFrameFromParent (JavaVM * jvm_, int parentID, int objID){
@@ -1211,13 +1429,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremoveFrameFromParentjintjintID = curEnv->GetStaticMethodID(cls, "removeFrameFromParent", "(II)V" ) ;
 if (voidremoveFrameFromParentjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removeFrameFromParent");
+std::cerr << "Could not access to the method " << "removeFrameFromParent" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidremoveFrameFromParentjintjintID ,parentID, objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setWidgetText (JavaVM * jvm_, int objID, char * text){
@@ -1228,15 +1450,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetTextjintjstringID = curEnv->GetStaticMethodID(cls, "setWidgetText", "(ILjava/lang/String;)V" ) ;
 if (voidsetWidgetTextjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetText");
+std::cerr << "Could not access to the method " << "setWidgetText" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring text_ = curEnv->NewStringUTF( text );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetTextjintjstringID ,objID, text_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 char * CallScilabBridge::getWidgetText (JavaVM * jvm_, int objID){
@@ -1247,22 +1473,28 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jstringgetWidgetTextjintID = curEnv->GetStaticMethodID(cls, "getWidgetText", "(I)Ljava/lang/String;" ) ;
 if (jstringgetWidgetTextjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getWidgetText");
+std::cerr << "Could not access to the method " << "getWidgetText" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jstring res =  (jstring) curEnv->CallStaticObjectMethod(cls, jstringgetWidgetTextjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
 
+
 const char *tempString = curEnv->GetStringUTFChars(res, 0);
 char * myStringBuffer = new char[strlen(tempString) + 1];
 strcpy(myStringBuffer, tempString);
 curEnv->ReleaseStringUTFChars(res, tempString);
 curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myStringBuffer;
 
 }
@@ -1275,15 +1507,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameTextjintjstringID = curEnv->GetStaticMethodID(cls, "setFrameText", "(ILjava/lang/String;)V" ) ;
 if (voidsetFrameTextjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameText");
+std::cerr << "Could not access to the method " << "setFrameText" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring text_ = curEnv->NewStringUTF( text );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameTextjintjstringID ,objID, text_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 char * CallScilabBridge::getFrameText (JavaVM * jvm_, int objID){
@@ -1294,22 +1530,28 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jstringgetFrameTextjintID = curEnv->GetStaticMethodID(cls, "getFrameText", "(I)Ljava/lang/String;" ) ;
 if (jstringgetFrameTextjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getFrameText");
+std::cerr << "Could not access to the method " << "getFrameText" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jstring res =  (jstring) curEnv->CallStaticObjectMethod(cls, jstringgetFrameTextjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
 
+
 const char *tempString = curEnv->GetStringUTFChars(res, 0);
 char * myStringBuffer = new char[strlen(tempString) + 1];
 strcpy(myStringBuffer, tempString);
 curEnv->ReleaseStringUTFChars(res, tempString);
 curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myStringBuffer;
 
 }
@@ -1322,13 +1564,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetBackgroundColorjintjintjintjintID = curEnv->GetStaticMethodID(cls, "setWidgetBackgroundColor", "(IIII)V" ) ;
 if (voidsetWidgetBackgroundColorjintjintjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetBackgroundColor");
+std::cerr << "Could not access to the method " << "setWidgetBackgroundColor" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetBackgroundColorjintjintjintjintID ,objID, red, green, blue);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int * CallScilabBridge::getWidgetBackgroundColor (JavaVM * jvm_, int objID){
@@ -1339,7 +1585,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintArraygetWidgetBackgroundColorjintID = curEnv->GetStaticMethodID(cls, "getWidgetBackgroundColor", "(I)[I" ) ;
 if (jintArraygetWidgetBackgroundColorjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getWidgetBackgroundColor");
+std::cerr << "Could not access to the method " << "getWidgetBackgroundColor" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jintArray res =  (jintArray) curEnv->CallObjectMethod(cls, jintArraygetWidgetBackgroundColorjintID ,objID);
@@ -1357,9 +1605,11 @@ myArray[i]=resultsArray[i];
 curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT);
 
                         curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myArray;
 
 }
@@ -1372,13 +1622,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetForegroundColorjintjintjintjintID = curEnv->GetStaticMethodID(cls, "setWidgetForegroundColor", "(IIII)V" ) ;
 if (voidsetWidgetForegroundColorjintjintjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetForegroundColor");
+std::cerr << "Could not access to the method " << "setWidgetForegroundColor" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetForegroundColorjintjintjintjintID ,objID, red, green, blue);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int * CallScilabBridge::getWidgetForegroundColor (JavaVM * jvm_, int objID){
@@ -1389,7 +1643,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintArraygetWidgetForegroundColorjintID = curEnv->GetStaticMethodID(cls, "getWidgetForegroundColor", "(I)[I" ) ;
 if (jintArraygetWidgetForegroundColorjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getWidgetForegroundColor");
+std::cerr << "Could not access to the method " << "getWidgetForegroundColor" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jintArray res =  (jintArray) curEnv->CallObjectMethod(cls, jintArraygetWidgetForegroundColorjintID ,objID);
@@ -1407,9 +1663,11 @@ myArray[i]=resultsArray[i];
 curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT);
 
                         curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myArray;
 
 }
@@ -1422,13 +1680,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameBackgroundColorjintjintjintjintID = curEnv->GetStaticMethodID(cls, "setFrameBackgroundColor", "(IIII)V" ) ;
 if (voidsetFrameBackgroundColorjintjintjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameBackgroundColor");
+std::cerr << "Could not access to the method " << "setFrameBackgroundColor" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameBackgroundColorjintjintjintjintID ,objID, red, green, blue);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int * CallScilabBridge::getFrameBackgroundColor (JavaVM * jvm_, int objID){
@@ -1439,7 +1701,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintArraygetFrameBackgroundColorjintID = curEnv->GetStaticMethodID(cls, "getFrameBackgroundColor", "(I)[I" ) ;
 if (jintArraygetFrameBackgroundColorjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getFrameBackgroundColor");
+std::cerr << "Could not access to the method " << "getFrameBackgroundColor" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jintArray res =  (jintArray) curEnv->CallObjectMethod(cls, jintArraygetFrameBackgroundColorjintID ,objID);
@@ -1457,9 +1721,11 @@ myArray[i]=resultsArray[i];
 curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT);
 
                         curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myArray;
 
 }
@@ -1472,13 +1738,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameForegroundColorjintjintjintjintID = curEnv->GetStaticMethodID(cls, "setFrameForegroundColor", "(IIII)V" ) ;
 if (voidsetFrameForegroundColorjintjintjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameForegroundColor");
+std::cerr << "Could not access to the method " << "setFrameForegroundColor" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameForegroundColorjintjintjintjintID ,objID, red, green, blue);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int * CallScilabBridge::getFrameForegroundColor (JavaVM * jvm_, int objID){
@@ -1489,7 +1759,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintArraygetFrameForegroundColorjintID = curEnv->GetStaticMethodID(cls, "getFrameForegroundColor", "(I)[I" ) ;
 if (jintArraygetFrameForegroundColorjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getFrameForegroundColor");
+std::cerr << "Could not access to the method " << "getFrameForegroundColor" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jintArray res =  (jintArray) curEnv->CallObjectMethod(cls, jintArraygetFrameForegroundColorjintID ,objID);
@@ -1507,9 +1779,11 @@ myArray[i]=resultsArray[i];
 curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT);
 
                         curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myArray;
 
 }
@@ -1522,15 +1796,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetFontNamejintjstringID = curEnv->GetStaticMethodID(cls, "setWidgetFontName", "(ILjava/lang/String;)V" ) ;
 if (voidsetWidgetFontNamejintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetFontName");
+std::cerr << "Could not access to the method " << "setWidgetFontName" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring name_ = curEnv->NewStringUTF( name );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetFontNamejintjstringID ,objID, name_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 char * CallScilabBridge::getWidgetFontName (JavaVM * jvm_, int objID){
@@ -1541,22 +1819,28 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jstringgetWidgetFontNamejintID = curEnv->GetStaticMethodID(cls, "getWidgetFontName", "(I)Ljava/lang/String;" ) ;
 if (jstringgetWidgetFontNamejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getWidgetFontName");
+std::cerr << "Could not access to the method " << "getWidgetFontName" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jstring res =  (jstring) curEnv->CallStaticObjectMethod(cls, jstringgetWidgetFontNamejintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
 
+
 const char *tempString = curEnv->GetStringUTFChars(res, 0);
 char * myStringBuffer = new char[strlen(tempString) + 1];
 strcpy(myStringBuffer, tempString);
 curEnv->ReleaseStringUTFChars(res, tempString);
 curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myStringBuffer;
 
 }
@@ -1569,15 +1853,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetFontWeightjintjstringID = curEnv->GetStaticMethodID(cls, "setWidgetFontWeight", "(ILjava/lang/String;)V" ) ;
 if (voidsetWidgetFontWeightjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetFontWeight");
+std::cerr << "Could not access to the method " << "setWidgetFontWeight" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring weight_ = curEnv->NewStringUTF( weight );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetFontWeightjintjstringID ,objID, weight_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setWidgetFontSize (JavaVM * jvm_, int objID, int size){
@@ -1588,13 +1876,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetFontSizejintjintID = curEnv->GetStaticMethodID(cls, "setWidgetFontSize", "(II)V" ) ;
 if (voidsetWidgetFontSizejintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetFontSize");
+std::cerr << "Could not access to the method " << "setWidgetFontSize" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetFontSizejintjintID ,objID, size);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int CallScilabBridge::getWidgetFontSize (JavaVM * jvm_, int objID){
@@ -1605,13 +1897,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetWidgetFontSizejintID = curEnv->GetStaticMethodID(cls, "getWidgetFontSize", "(I)I" ) ;
 if (jintgetWidgetFontSizejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getWidgetFontSize");
+std::cerr << "Could not access to the method " << "getWidgetFontSize" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetWidgetFontSizejintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -1624,15 +1920,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetFontAnglejintjstringID = curEnv->GetStaticMethodID(cls, "setWidgetFontAngle", "(ILjava/lang/String;)V" ) ;
 if (voidsetWidgetFontAnglejintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetFontAngle");
+std::cerr << "Could not access to the method " << "setWidgetFontAngle" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring angle_ = curEnv->NewStringUTF( angle );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetFontAnglejintjstringID ,objID, angle_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFrameFontName (JavaVM * jvm_, int objID, char * name){
@@ -1643,15 +1943,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameFontNamejintjstringID = curEnv->GetStaticMethodID(cls, "setFrameFontName", "(ILjava/lang/String;)V" ) ;
 if (voidsetFrameFontNamejintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameFontName");
+std::cerr << "Could not access to the method " << "setFrameFontName" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring name_ = curEnv->NewStringUTF( name );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameFontNamejintjstringID ,objID, name_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 char * CallScilabBridge::getFrameFontName (JavaVM * jvm_, int objID){
@@ -1662,22 +1966,28 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jstringgetFrameFontNamejintID = curEnv->GetStaticMethodID(cls, "getFrameFontName", "(I)Ljava/lang/String;" ) ;
 if (jstringgetFrameFontNamejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getFrameFontName");
+std::cerr << "Could not access to the method " << "getFrameFontName" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jstring res =  (jstring) curEnv->CallStaticObjectMethod(cls, jstringgetFrameFontNamejintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
 
+
 const char *tempString = curEnv->GetStringUTFChars(res, 0);
 char * myStringBuffer = new char[strlen(tempString) + 1];
 strcpy(myStringBuffer, tempString);
 curEnv->ReleaseStringUTFChars(res, tempString);
 curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myStringBuffer;
 
 }
@@ -1690,15 +2000,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameFontWeightjintjstringID = curEnv->GetStaticMethodID(cls, "setFrameFontWeight", "(ILjava/lang/String;)V" ) ;
 if (voidsetFrameFontWeightjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameFontWeight");
+std::cerr << "Could not access to the method " << "setFrameFontWeight" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring weight_ = curEnv->NewStringUTF( weight );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameFontWeightjintjstringID ,objID, weight_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFrameFontSize (JavaVM * jvm_, int objID, int size){
@@ -1709,13 +2023,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameFontSizejintjintID = curEnv->GetStaticMethodID(cls, "setFrameFontSize", "(II)V" ) ;
 if (voidsetFrameFontSizejintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameFontSize");
+std::cerr << "Could not access to the method " << "setFrameFontSize" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameFontSizejintjintID ,objID, size);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int CallScilabBridge::getFrameFontSize (JavaVM * jvm_, int objID){
@@ -1726,13 +2044,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetFrameFontSizejintID = curEnv->GetStaticMethodID(cls, "getFrameFontSize", "(I)I" ) ;
 if (jintgetFrameFontSizejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getFrameFontSize");
+std::cerr << "Could not access to the method " << "getFrameFontSize" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetFrameFontSizejintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -1745,15 +2067,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameFontAnglejintjstringID = curEnv->GetStaticMethodID(cls, "setFrameFontAngle", "(ILjava/lang/String;)V" ) ;
 if (voidsetFrameFontAnglejintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameFontAngle");
+std::cerr << "Could not access to the method " << "setFrameFontAngle" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring angle_ = curEnv->NewStringUTF( angle );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameFontAnglejintjstringID ,objID, angle_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setWidgetPosition (JavaVM * jvm_, int objID, int x, int y, int width, int height){
@@ -1764,13 +2090,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetPositionjintjintjintjintjintID = curEnv->GetStaticMethodID(cls, "setWidgetPosition", "(IIIII)V" ) ;
 if (voidsetWidgetPositionjintjintjintjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetPosition");
+std::cerr << "Could not access to the method " << "setWidgetPosition" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetPositionjintjintjintjintjintID ,objID, x, y, width, height);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int * CallScilabBridge::getWidgetPosition (JavaVM * jvm_, int objID){
@@ -1781,7 +2111,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintArraygetWidgetPositionjintID = curEnv->GetStaticMethodID(cls, "getWidgetPosition", "(I)[I" ) ;
 if (jintArraygetWidgetPositionjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getWidgetPosition");
+std::cerr << "Could not access to the method " << "getWidgetPosition" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jintArray res =  (jintArray) curEnv->CallObjectMethod(cls, jintArraygetWidgetPositionjintID ,objID);
@@ -1799,9 +2131,11 @@ myArray[i]=resultsArray[i];
 curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT);
 
                         curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myArray;
 
 }
@@ -1814,13 +2148,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFramePositionjintjintjintjintjintID = curEnv->GetStaticMethodID(cls, "setFramePosition", "(IIIII)V" ) ;
 if (voidsetFramePositionjintjintjintjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFramePosition");
+std::cerr << "Could not access to the method " << "setFramePosition" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFramePositionjintjintjintjintjintID ,objID, x, y, width, height);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int * CallScilabBridge::getFramePosition (JavaVM * jvm_, int objID){
@@ -1831,7 +2169,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintArraygetFramePositionjintID = curEnv->GetStaticMethodID(cls, "getFramePosition", "(I)[I" ) ;
 if (jintArraygetFramePositionjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getFramePosition");
+std::cerr << "Could not access to the method " << "getFramePosition" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jintArray res =  (jintArray) curEnv->CallObjectMethod(cls, jintArraygetFramePositionjintID ,objID);
@@ -1849,9 +2189,11 @@ myArray[i]=resultsArray[i];
 curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT);
 
                         curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myArray;
 
 }
@@ -1864,15 +2206,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetCallbackjintjstringjintID = curEnv->GetStaticMethodID(cls, "setWidgetCallback", "(ILjava/lang/String;I)V" ) ;
 if (voidsetWidgetCallbackjintjstringjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetCallback");
+std::cerr << "Could not access to the method " << "setWidgetCallback" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring text_ = curEnv->NewStringUTF( text );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetCallbackjintjstringjintID ,objID, text_, type);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFrameCallback (JavaVM * jvm_, int objID, char * text, int type){
@@ -1883,15 +2229,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameCallbackjintjstringjintID = curEnv->GetStaticMethodID(cls, "setFrameCallback", "(ILjava/lang/String;I)V" ) ;
 if (voidsetFrameCallbackjintjstringjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameCallback");
+std::cerr << "Could not access to the method " << "setFrameCallback" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring text_ = curEnv->NewStringUTF( text );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameCallbackjintjstringjintID ,objID, text_, type);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setWidgetHorizontalAlignment (JavaVM * jvm_, int objID, char * alignment){
@@ -1902,15 +2252,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetHorizontalAlignmentjintjstringID = curEnv->GetStaticMethodID(cls, "setWidgetHorizontalAlignment", "(ILjava/lang/String;)V" ) ;
 if (voidsetWidgetHorizontalAlignmentjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetHorizontalAlignment");
+std::cerr << "Could not access to the method " << "setWidgetHorizontalAlignment" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring alignment_ = curEnv->NewStringUTF( alignment );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetHorizontalAlignmentjintjstringID ,objID, alignment_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setWidgetVerticalAlignment (JavaVM * jvm_, int objID, char * alignment){
@@ -1921,15 +2275,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetVerticalAlignmentjintjstringID = curEnv->GetStaticMethodID(cls, "setWidgetVerticalAlignment", "(ILjava/lang/String;)V" ) ;
 if (voidsetWidgetVerticalAlignmentjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetVerticalAlignment");
+std::cerr << "Could not access to the method " << "setWidgetVerticalAlignment" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring alignment_ = curEnv->NewStringUTF( alignment );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetVerticalAlignmentjintjstringID ,objID, alignment_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setSliderMinorTickSpacing (JavaVM * jvm_, int objID, int space){
@@ -1940,13 +2298,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetSliderMinorTickSpacingjintjintID = curEnv->GetStaticMethodID(cls, "setSliderMinorTickSpacing", "(II)V" ) ;
 if (voidsetSliderMinorTickSpacingjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setSliderMinorTickSpacing");
+std::cerr << "Could not access to the method " << "setSliderMinorTickSpacing" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetSliderMinorTickSpacingjintjintID ,objID, space);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setSliderMajorTickSpacing (JavaVM * jvm_, int objID, int space){
@@ -1957,13 +2319,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetSliderMajorTickSpacingjintjintID = curEnv->GetStaticMethodID(cls, "setSliderMajorTickSpacing", "(II)V" ) ;
 if (voidsetSliderMajorTickSpacingjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setSliderMajorTickSpacing");
+std::cerr << "Could not access to the method " << "setSliderMajorTickSpacing" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetSliderMajorTickSpacingjintjintID ,objID, space);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setListBoxSelectedIndices (JavaVM * jvm_, int objID, int * indices, int indicesSize){
@@ -1974,25 +2340,23 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetListBoxSelectedIndicesjintjintArrayID = curEnv->GetStaticMethodID(cls, "setListBoxSelectedIndices", "(I[I)V" ) ;
 if (voidsetListBoxSelectedIndicesjintjintArrayID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setListBoxSelectedIndices");
+std::cerr << "Could not access to the method " << "setListBoxSelectedIndices" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jintArray indices_ = curEnv->NewIntArray( indicesSize ) ;
 
-if (indices_ == NULL)
-{
-// check that allocation succeed
-throw GiwsException::JniBadAllocException(curEnv);
-}
-
 curEnv->SetIntArrayRegion( indices_, 0, indicesSize, (jint*) indices ) ;
 
 
                          curEnv->CallStaticVoidMethod(cls, voidsetListBoxSelectedIndicesjintjintArrayID ,objID, indices_);
 curEnv->DeleteLocalRef(indices_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int * CallScilabBridge::getListBoxSelectedIndices (JavaVM * jvm_, int objID){
@@ -2003,7 +2367,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintArraygetListBoxSelectedIndicesjintID = curEnv->GetStaticMethodID(cls, "getListBoxSelectedIndices", "(I)[I" ) ;
 if (jintArraygetListBoxSelectedIndicesjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getListBoxSelectedIndices");
+std::cerr << "Could not access to the method " << "getListBoxSelectedIndices" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jintArray res =  (jintArray) curEnv->CallObjectMethod(cls, jintArraygetListBoxSelectedIndicesjintID ,objID);
@@ -2021,9 +2387,11 @@ myArray[i]=resultsArray[i];
 curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT);
 
                         curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myArray;
 
 }
@@ -2036,13 +2404,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetListBoxSelectionSizejintID = curEnv->GetStaticMethodID(cls, "getListBoxSelectionSize", "(I)I" ) ;
 if (jintgetListBoxSelectionSizejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getListBoxSelectionSize");
+std::cerr << "Could not access to the method " << "getListBoxSelectionSize" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetListBoxSelectionSizejintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -2055,13 +2427,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetPopupMenuSelectedIndexjintjintID = curEnv->GetStaticMethodID(cls, "setPopupMenuSelectedIndex", "(II)V" ) ;
 if (voidsetPopupMenuSelectedIndexjintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setPopupMenuSelectedIndex");
+std::cerr << "Could not access to the method " << "setPopupMenuSelectedIndex" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetPopupMenuSelectedIndexjintjintID ,objID, index);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int CallScilabBridge::getPopupMenuSelectedIndex (JavaVM * jvm_, int objID){
@@ -2072,13 +2448,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetPopupMenuSelectedIndexjintID = curEnv->GetStaticMethodID(cls, "getPopupMenuSelectedIndex", "(I)I" ) ;
 if (jintgetPopupMenuSelectedIndexjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getPopupMenuSelectedIndex");
+std::cerr << "Could not access to the method " << "getPopupMenuSelectedIndex" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetPopupMenuSelectedIndexjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -2091,13 +2471,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetSliderValuejintjintID = curEnv->GetStaticMethodID(cls, "setSliderValue", "(II)V" ) ;
 if (voidsetSliderValuejintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setSliderValue");
+std::cerr << "Could not access to the method " << "setSliderValue" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetSliderValuejintjintID ,objID, index);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int CallScilabBridge::getSliderValue (JavaVM * jvm_, int objID){
@@ -2108,13 +2492,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetSliderValuejintID = curEnv->GetStaticMethodID(cls, "getSliderValue", "(I)I" ) ;
 if (jintgetSliderValuejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getSliderValue");
+std::cerr << "Could not access to the method " << "getSliderValue" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetSliderValuejintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -2127,15 +2515,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetRadioButtonCheckedjintjbooleanID = curEnv->GetStaticMethodID(cls, "setRadioButtonChecked", "(IZ)V" ) ;
 if (voidsetRadioButtonCheckedjintjbooleanID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setRadioButtonChecked");
+std::cerr << "Could not access to the method " << "setRadioButtonChecked" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jboolean status_ = ((bool) status ? JNI_TRUE : JNI_FALSE);
 
                          curEnv->CallStaticVoidMethod(cls, voidsetRadioButtonCheckedjintjbooleanID ,objID, status_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 bool CallScilabBridge::isRadioButtonChecked (JavaVM * jvm_, int objID){
@@ -2146,13 +2538,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jbooleanisRadioButtonCheckedjintID = curEnv->GetStaticMethodID(cls, "isRadioButtonChecked", "(I)Z" ) ;
 if (jbooleanisRadioButtonCheckedjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "isRadioButtonChecked");
+std::cerr << "Could not access to the method " << "isRadioButtonChecked" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jboolean res =  (jboolean) curEnv->CallStaticBooleanMethod(cls, jbooleanisRadioButtonCheckedjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return (res == JNI_TRUE);
 
 }
@@ -2165,15 +2561,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetCheckBoxCheckedjintjbooleanID = curEnv->GetStaticMethodID(cls, "setCheckBoxChecked", "(IZ)V" ) ;
 if (voidsetCheckBoxCheckedjintjbooleanID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setCheckBoxChecked");
+std::cerr << "Could not access to the method " << "setCheckBoxChecked" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jboolean status_ = ((bool) status ? JNI_TRUE : JNI_FALSE);
 
                          curEnv->CallStaticVoidMethod(cls, voidsetCheckBoxCheckedjintjbooleanID ,objID, status_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 bool CallScilabBridge::isCheckBoxChecked (JavaVM * jvm_, int objID){
@@ -2184,13 +2584,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jbooleanisCheckBoxCheckedjintID = curEnv->GetStaticMethodID(cls, "isCheckBoxChecked", "(I)Z" ) ;
 if (jbooleanisCheckBoxCheckedjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "isCheckBoxChecked");
+std::cerr << "Could not access to the method " << "isCheckBoxChecked" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jboolean res =  (jboolean) curEnv->CallStaticBooleanMethod(cls, jbooleanisCheckBoxCheckedjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return (res == JNI_TRUE);
 
 }
@@ -2203,13 +2607,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetSliderMinValuejintjintID = curEnv->GetStaticMethodID(cls, "setSliderMinValue", "(II)V" ) ;
 if (voidsetSliderMinValuejintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setSliderMinValue");
+std::cerr << "Could not access to the method " << "setSliderMinValue" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetSliderMinValuejintjintID ,objID, value);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setSliderMaxValue (JavaVM * jvm_, int objID, int value){
@@ -2220,13 +2628,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetSliderMaxValuejintjintID = curEnv->GetStaticMethodID(cls, "setSliderMaxValue", "(II)V" ) ;
 if (voidsetSliderMaxValuejintjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setSliderMaxValue");
+std::cerr << "Could not access to the method " << "setSliderMaxValue" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetSliderMaxValuejintjintID ,objID, value);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setSliderVertical (JavaVM * jvm_, int objID){
@@ -2237,13 +2649,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetSliderVerticaljintID = curEnv->GetStaticMethodID(cls, "setSliderVertical", "(I)V" ) ;
 if (voidsetSliderVerticaljintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setSliderVertical");
+std::cerr << "Could not access to the method " << "setSliderVertical" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetSliderVerticaljintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setSliderHorizontal (JavaVM * jvm_, int objID){
@@ -2254,13 +2670,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetSliderHorizontaljintID = curEnv->GetStaticMethodID(cls, "setSliderHorizontal", "(I)V" ) ;
 if (voidsetSliderHorizontaljintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setSliderHorizontal");
+std::cerr << "Could not access to the method " << "setSliderHorizontal" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetSliderHorizontaljintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setListBoxMultipleSelectionEnabled (JavaVM * jvm_, int objID, bool status){
@@ -2271,15 +2691,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetListBoxMultipleSelectionEnabledjintjbooleanID = curEnv->GetStaticMethodID(cls, "setListBoxMultipleSelectionEnabled", "(IZ)V" ) ;
 if (voidsetListBoxMultipleSelectionEnabledjintjbooleanID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setListBoxMultipleSelectionEnabled");
+std::cerr << "Could not access to the method " << "setListBoxMultipleSelectionEnabled" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jboolean status_ = ((bool) status ? JNI_TRUE : JNI_FALSE);
 
                          curEnv->CallStaticVoidMethod(cls, voidsetListBoxMultipleSelectionEnabledjintjbooleanID ,objID, status_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 char ** CallScilabBridge::getListBoxAllItemsText (JavaVM * jvm_, int objID){
@@ -2290,13 +2714,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jobjectArraygetListBoxAllItemsTextjintID = curEnv->GetStaticMethodID(cls, "getListBoxAllItemsText", "(I)[Ljava/lang/String;" ) ;
 if (jobjectArraygetListBoxAllItemsTextjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getListBoxAllItemsText");
+std::cerr << "Could not access to the method " << "getListBoxAllItemsText" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jobjectArray res =  (jobjectArray) curEnv->CallObjectMethod(cls, jobjectArraygetListBoxAllItemsTextjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 jsize len = curEnv->GetArrayLength(res);
 char **arrayOfString;
                         arrayOfString= arrayOfString= new char *[len + 1];
@@ -2309,9 +2737,11 @@ strcpy(arrayOfString[i], tempString);
 curEnv->ReleaseStringUTFChars(resString, tempString);
 curEnv->DeleteLocalRef(resString);
 }
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 curEnv->DeleteLocalRef(res);
 return arrayOfString;
 
@@ -2325,13 +2755,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetListBoxNumberOfItemsjintID = curEnv->GetStaticMethodID(cls, "getListBoxNumberOfItems", "(I)I" ) ;
 if (jintgetListBoxNumberOfItemsjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getListBoxNumberOfItems");
+std::cerr << "Could not access to the method " << "getListBoxNumberOfItems" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetListBoxNumberOfItemsjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -2344,7 +2778,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetListBoxTextjintjobjectArrayID = curEnv->GetStaticMethodID(cls, "setListBoxText", "(I[Ljava/lang/String;)V" ) ;
 if (voidsetListBoxTextjintjobjectArrayID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setListBoxText");
+std::cerr << "Could not access to the method " << "setListBoxText" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 
@@ -2352,7 +2788,8 @@ jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 jobjectArray text_ = curEnv->NewObjectArray( textSize, stringArrayClass, NULL);
 if (text_ == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not allocate Java string array, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 // convert each char * to java strings and fill the java array.
@@ -2361,7 +2798,8 @@ for ( int i = 0; i < textSize; i++)
 jstring TempString = curEnv->NewStringUTF( text[i] );
 if (TempString == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not convert C string to Java UTF string, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 curEnv->SetObjectArrayElement( text_, i, TempString);
@@ -2372,9 +2810,11 @@ curEnv->DeleteLocalRef(TempString);
                          curEnv->CallStaticVoidMethod(cls, voidsetListBoxTextjintjobjectArrayID ,objID, text_);
 curEnv->DeleteLocalRef(stringArrayClass);
 curEnv->DeleteLocalRef(text_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 char ** CallScilabBridge::getPopupMenuAllItemsText (JavaVM * jvm_, int objID){
@@ -2385,13 +2825,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jobjectArraygetPopupMenuAllItemsTextjintID = curEnv->GetStaticMethodID(cls, "getPopupMenuAllItemsText", "(I)[Ljava/lang/String;" ) ;
 if (jobjectArraygetPopupMenuAllItemsTextjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getPopupMenuAllItemsText");
+std::cerr << "Could not access to the method " << "getPopupMenuAllItemsText" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jobjectArray res =  (jobjectArray) curEnv->CallObjectMethod(cls, jobjectArraygetPopupMenuAllItemsTextjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 jsize len = curEnv->GetArrayLength(res);
 char **arrayOfString;
                         arrayOfString= arrayOfString= new char *[len + 1];
@@ -2404,9 +2848,11 @@ strcpy(arrayOfString[i], tempString);
 curEnv->ReleaseStringUTFChars(resString, tempString);
 curEnv->DeleteLocalRef(resString);
 }
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 curEnv->DeleteLocalRef(res);
 return arrayOfString;
 
@@ -2420,13 +2866,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetPopupMenuNumberOfItemsjintID = curEnv->GetStaticMethodID(cls, "getPopupMenuNumberOfItems", "(I)I" ) ;
 if (jintgetPopupMenuNumberOfItemsjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getPopupMenuNumberOfItems");
+std::cerr << "Could not access to the method " << "getPopupMenuNumberOfItems" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetPopupMenuNumberOfItemsjintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -2439,7 +2889,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetPopupMenuTextjintjobjectArrayID = curEnv->GetStaticMethodID(cls, "setPopupMenuText", "(I[Ljava/lang/String;)V" ) ;
 if (voidsetPopupMenuTextjintjobjectArrayID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setPopupMenuText");
+std::cerr << "Could not access to the method " << "setPopupMenuText" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 
@@ -2447,7 +2899,8 @@ jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 jobjectArray text_ = curEnv->NewObjectArray( textSize, stringArrayClass, NULL);
 if (text_ == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not allocate Java string array, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 // convert each char * to java strings and fill the java array.
@@ -2456,7 +2909,8 @@ for ( int i = 0; i < textSize; i++)
 jstring TempString = curEnv->NewStringUTF( text[i] );
 if (TempString == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not convert C string to Java UTF string, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 curEnv->SetObjectArrayElement( text_, i, TempString);
@@ -2467,9 +2921,11 @@ curEnv->DeleteLocalRef(TempString);
                          curEnv->CallStaticVoidMethod(cls, voidsetPopupMenuTextjintjobjectArrayID ,objID, text_);
 curEnv->DeleteLocalRef(stringArrayClass);
 curEnv->DeleteLocalRef(text_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setWidgetRelief (JavaVM * jvm_, int objID, char * reliefType){
@@ -2480,15 +2936,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetReliefjintjstringID = curEnv->GetStaticMethodID(cls, "setWidgetRelief", "(ILjava/lang/String;)V" ) ;
 if (voidsetWidgetReliefjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetRelief");
+std::cerr << "Could not access to the method " << "setWidgetRelief" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring reliefType_ = curEnv->NewStringUTF( reliefType );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetReliefjintjstringID ,objID, reliefType_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFrameRelief (JavaVM * jvm_, int objID, char * reliefType){
@@ -2499,15 +2959,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameReliefjintjstringID = curEnv->GetStaticMethodID(cls, "setFrameRelief", "(ILjava/lang/String;)V" ) ;
 if (voidsetFrameReliefjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameRelief");
+std::cerr << "Could not access to the method " << "setFrameRelief" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring reliefType_ = curEnv->NewStringUTF( reliefType );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameReliefjintjstringID ,objID, reliefType_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setRootMenuEnabled (JavaVM * jvm_, char * menuName, bool status){
@@ -2518,7 +2982,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetRootMenuEnabledjstringjbooleanID = curEnv->GetStaticMethodID(cls, "setRootMenuEnabled", "(Ljava/lang/String;Z)V" ) ;
 if (voidsetRootMenuEnabledjstringjbooleanID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setRootMenuEnabled");
+std::cerr << "Could not access to the method " << "setRootMenuEnabled" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring menuName_ = curEnv->NewStringUTF( menuName );
@@ -2526,9 +2992,11 @@ jstring menuName_ = curEnv->NewStringUTF( menuName );
 jboolean status_ = ((bool) status ? JNI_TRUE : JNI_FALSE);
 
                          curEnv->CallStaticVoidMethod(cls, voidsetRootMenuEnabledjstringjbooleanID ,menuName_, status_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setRootSubMenuEnabled (JavaVM * jvm_, char * menuName, int position, bool status){
@@ -2539,7 +3007,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetRootSubMenuEnabledjstringjintjbooleanID = curEnv->GetStaticMethodID(cls, "setRootSubMenuEnabled", "(Ljava/lang/String;IZ)V" ) ;
 if (voidsetRootSubMenuEnabledjstringjintjbooleanID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setRootSubMenuEnabled");
+std::cerr << "Could not access to the method " << "setRootSubMenuEnabled" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring menuName_ = curEnv->NewStringUTF( menuName );
@@ -2547,9 +3017,11 @@ jstring menuName_ = curEnv->NewStringUTF( menuName );
 jboolean status_ = ((bool) status ? JNI_TRUE : JNI_FALSE);
 
                          curEnv->CallStaticVoidMethod(cls, voidsetRootSubMenuEnabledjstringjintjbooleanID ,menuName_, position, status_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFigureMenuEnabled (JavaVM * jvm_, int figureID, char * menuName, bool status){
@@ -2560,7 +3032,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFigureMenuEnabledjintjstringjbooleanID = curEnv->GetStaticMethodID(cls, "setFigureMenuEnabled", "(ILjava/lang/String;Z)V" ) ;
 if (voidsetFigureMenuEnabledjintjstringjbooleanID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFigureMenuEnabled");
+std::cerr << "Could not access to the method " << "setFigureMenuEnabled" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring menuName_ = curEnv->NewStringUTF( menuName );
@@ -2568,9 +3042,11 @@ jstring menuName_ = curEnv->NewStringUTF( menuName );
 jboolean status_ = ((bool) status ? JNI_TRUE : JNI_FALSE);
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFigureMenuEnabledjintjstringjbooleanID ,figureID, menuName_, status_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFigureSubMenuEnabled (JavaVM * jvm_, int figureID, char * menuName, int position, bool status){
@@ -2581,7 +3057,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFigureSubMenuEnabledjintjstringjintjbooleanID = curEnv->GetStaticMethodID(cls, "setFigureSubMenuEnabled", "(ILjava/lang/String;IZ)V" ) ;
 if (voidsetFigureSubMenuEnabledjintjstringjintjbooleanID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFigureSubMenuEnabled");
+std::cerr << "Could not access to the method " << "setFigureSubMenuEnabled" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring menuName_ = curEnv->NewStringUTF( menuName );
@@ -2589,9 +3067,11 @@ jstring menuName_ = curEnv->NewStringUTF( menuName );
 jboolean status_ = ((bool) status ? JNI_TRUE : JNI_FALSE);
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFigureSubMenuEnabledjintjstringjintjbooleanID ,figureID, menuName_, position, status_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setWidgetEnable (JavaVM * jvm_, int objID, bool status){
@@ -2602,15 +3082,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetWidgetEnablejintjbooleanID = curEnv->GetStaticMethodID(cls, "setWidgetEnable", "(IZ)V" ) ;
 if (voidsetWidgetEnablejintjbooleanID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setWidgetEnable");
+std::cerr << "Could not access to the method " << "setWidgetEnable" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jboolean status_ = ((bool) status ? JNI_TRUE : JNI_FALSE);
 
                          curEnv->CallStaticVoidMethod(cls, voidsetWidgetEnablejintjbooleanID ,objID, status_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFrameEnable (JavaVM * jvm_, int objID, bool status){
@@ -2621,15 +3105,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFrameEnablejintjbooleanID = curEnv->GetStaticMethodID(cls, "setFrameEnable", "(IZ)V" ) ;
 if (voidsetFrameEnablejintjbooleanID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFrameEnable");
+std::cerr << "Could not access to the method " << "setFrameEnable" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jboolean status_ = ((bool) status ? JNI_TRUE : JNI_FALSE);
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFrameEnablejintjbooleanID ,objID, status_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 bool CallScilabBridge::isWidgetEnable (JavaVM * jvm_, int objID){
@@ -2640,13 +3128,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jbooleanisWidgetEnablejintID = curEnv->GetStaticMethodID(cls, "isWidgetEnable", "(I)Z" ) ;
 if (jbooleanisWidgetEnablejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "isWidgetEnable");
+std::cerr << "Could not access to the method " << "isWidgetEnable" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jboolean res =  (jboolean) curEnv->CallStaticBooleanMethod(cls, jbooleanisWidgetEnablejintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return (res == JNI_TRUE);
 
 }
@@ -2659,13 +3151,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jbooleanisFrameEnablejintID = curEnv->GetStaticMethodID(cls, "isFrameEnable", "(I)Z" ) ;
 if (jbooleanisFrameEnablejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "isFrameEnable");
+std::cerr << "Could not access to the method " << "isFrameEnable" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jboolean res =  (jboolean) curEnv->CallStaticBooleanMethod(cls, jbooleanisFrameEnablejintID ,objID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return (res == JNI_TRUE);
 
 }
@@ -2678,15 +3174,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremoveRootMenujstringID = curEnv->GetStaticMethodID(cls, "removeRootMenu", "(Ljava/lang/String;)V" ) ;
 if (voidremoveRootMenujstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removeRootMenu");
+std::cerr << "Could not access to the method " << "removeRootMenu" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring menuName_ = curEnv->NewStringUTF( menuName );
 
                          curEnv->CallStaticVoidMethod(cls, voidremoveRootMenujstringID ,menuName_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::removeFigureMenu (JavaVM * jvm_, int figureID, char * menuName){
@@ -2697,15 +3197,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidremoveFigureMenujintjstringID = curEnv->GetStaticMethodID(cls, "removeFigureMenu", "(ILjava/lang/String;)V" ) ;
 if (voidremoveFigureMenujintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "removeFigureMenu");
+std::cerr << "Could not access to the method " << "removeFigureMenu" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring menuName_ = curEnv->NewStringUTF( menuName );
 
                          curEnv->CallStaticVoidMethod(cls, voidremoveFigureMenujintjstringID ,figureID, menuName_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 char * CallScilabBridge::displayAndWaitContextMenu (JavaVM * jvm_, int ID){
@@ -2716,22 +3220,28 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jstringdisplayAndWaitContextMenujintID = curEnv->GetStaticMethodID(cls, "displayAndWaitContextMenu", "(I)Ljava/lang/String;" ) ;
 if (jstringdisplayAndWaitContextMenujintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "displayAndWaitContextMenu");
+std::cerr << "Could not access to the method " << "displayAndWaitContextMenu" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jstring res =  (jstring) curEnv->CallStaticObjectMethod(cls, jstringdisplayAndWaitContextMenujintID ,ID);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
 
+
 const char *tempString = curEnv->GetStringUTFChars(res, 0);
 char * myStringBuffer = new char[strlen(tempString) + 1];
 strcpy(myStringBuffer, tempString);
 curEnv->ReleaseStringUTFChars(res, tempString);
 curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myStringBuffer;
 
 }
@@ -2744,13 +3254,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewFileChooserID = curEnv->GetStaticMethodID(cls, "newFileChooser", "()I" ) ;
 if (jintnewFileChooserID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newFileChooser");
+std::cerr << "Could not access to the method " << "newFileChooser" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewFileChooserID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -2763,15 +3277,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFileChooserTitlejintjstringID = curEnv->GetStaticMethodID(cls, "setFileChooserTitle", "(ILjava/lang/String;)V" ) ;
 if (voidsetFileChooserTitlejintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFileChooserTitle");
+std::cerr << "Could not access to the method " << "setFileChooserTitle" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring title_ = curEnv->NewStringUTF( title );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFileChooserTitlejintjstringID ,id, title_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFileChooserInitialDirectory (JavaVM * jvm_, int id, char * path){
@@ -2782,15 +3300,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFileChooserInitialDirectoryjintjstringID = curEnv->GetStaticMethodID(cls, "setFileChooserInitialDirectory", "(ILjava/lang/String;)V" ) ;
 if (voidsetFileChooserInitialDirectoryjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFileChooserInitialDirectory");
+std::cerr << "Could not access to the method " << "setFileChooserInitialDirectory" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring path_ = curEnv->NewStringUTF( path );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFileChooserInitialDirectoryjintjstringID ,id, path_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFileChooserMask (JavaVM * jvm_, int id, char * mask){
@@ -2801,15 +3323,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFileChooserMaskjintjstringID = curEnv->GetStaticMethodID(cls, "setFileChooserMask", "(ILjava/lang/String;)V" ) ;
 if (voidsetFileChooserMaskjintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFileChooserMask");
+std::cerr << "Could not access to the method " << "setFileChooserMask" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring mask_ = curEnv->NewStringUTF( mask );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFileChooserMaskjintjstringID ,id, mask_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::fileChooserDisplayAndWait (JavaVM * jvm_, int id){
@@ -2820,13 +3346,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidfileChooserDisplayAndWaitjintID = curEnv->GetStaticMethodID(cls, "fileChooserDisplayAndWait", "(I)V" ) ;
 if (voidfileChooserDisplayAndWaitjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "fileChooserDisplayAndWait");
+std::cerr << "Could not access to the method " << "fileChooserDisplayAndWait" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidfileChooserDisplayAndWaitjintID ,id);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int CallScilabBridge::getFileChooserSelectionSize (JavaVM * jvm_, int id){
@@ -2837,13 +3367,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetFileChooserSelectionSizejintID = curEnv->GetStaticMethodID(cls, "getFileChooserSelectionSize", "(I)I" ) ;
 if (jintgetFileChooserSelectionSizejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getFileChooserSelectionSize");
+std::cerr << "Could not access to the method " << "getFileChooserSelectionSize" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetFileChooserSelectionSizejintID ,id);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -2856,13 +3390,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jobjectArraygetFileChooserSelectionjintID = curEnv->GetStaticMethodID(cls, "getFileChooserSelection", "(I)[Ljava/lang/String;" ) ;
 if (jobjectArraygetFileChooserSelectionjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getFileChooserSelection");
+std::cerr << "Could not access to the method " << "getFileChooserSelection" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jobjectArray res =  (jobjectArray) curEnv->CallObjectMethod(cls, jobjectArraygetFileChooserSelectionjintID ,id);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 jsize len = curEnv->GetArrayLength(res);
 char **arrayOfString;
                         arrayOfString= arrayOfString= new char *[len + 1];
@@ -2875,9 +3413,11 @@ strcpy(arrayOfString[i], tempString);
 curEnv->ReleaseStringUTFChars(resString, tempString);
 curEnv->DeleteLocalRef(resString);
 }
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 curEnv->DeleteLocalRef(res);
 return arrayOfString;
 
@@ -2891,13 +3431,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFileChooserDirectorySelectionOnlyjintID = curEnv->GetStaticMethodID(cls, "setFileChooserDirectorySelectionOnly", "(I)V" ) ;
 if (voidsetFileChooserDirectorySelectionOnlyjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFileChooserDirectorySelectionOnly");
+std::cerr << "Could not access to the method " << "setFileChooserDirectorySelectionOnly" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFileChooserDirectorySelectionOnlyjintID ,id);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setFileChooserFileSelectionOnly (JavaVM * jvm_, int id){
@@ -2908,13 +3452,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetFileChooserFileSelectionOnlyjintID = curEnv->GetStaticMethodID(cls, "setFileChooserFileSelectionOnly", "(I)V" ) ;
 if (voidsetFileChooserFileSelectionOnlyjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setFileChooserFileSelectionOnly");
+std::cerr << "Could not access to the method " << "setFileChooserFileSelectionOnly" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidsetFileChooserFileSelectionOnlyjintID ,id);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int CallScilabBridge::newMessageBox (JavaVM * jvm_){
@@ -2925,13 +3473,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintnewMessageBoxID = curEnv->GetStaticMethodID(cls, "newMessageBox", "()I" ) ;
 if (jintnewMessageBoxID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "newMessageBox");
+std::cerr << "Could not access to the method " << "newMessageBox" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintnewMessageBoxID );
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -2944,15 +3496,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetMessageBoxTitlejintjstringID = curEnv->GetStaticMethodID(cls, "setMessageBoxTitle", "(ILjava/lang/String;)V" ) ;
 if (voidsetMessageBoxTitlejintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setMessageBoxTitle");
+std::cerr << "Could not access to the method " << "setMessageBoxTitle" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring title_ = curEnv->NewStringUTF( title );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetMessageBoxTitlejintjstringID ,id, title_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setMessageBoxMessage (JavaVM * jvm_, int id, char * message){
@@ -2963,15 +3519,19 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetMessageBoxMessagejintjstringID = curEnv->GetStaticMethodID(cls, "setMessageBoxMessage", "(ILjava/lang/String;)V" ) ;
 if (voidsetMessageBoxMessagejintjstringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setMessageBoxMessage");
+std::cerr << "Could not access to the method " << "setMessageBoxMessage" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jstring message_ = curEnv->NewStringUTF( message );
 
                          curEnv->CallStaticVoidMethod(cls, voidsetMessageBoxMessagejintjstringID ,id, message_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setMessageBoxMessage (JavaVM * jvm_, int id, char ** message, int messageSize){
@@ -2982,7 +3542,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetMessageBoxMessagejintjobjectArrayID = curEnv->GetStaticMethodID(cls, "setMessageBoxMessage", "(I[Ljava/lang/String;)V" ) ;
 if (voidsetMessageBoxMessagejintjobjectArrayID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setMessageBoxMessage");
+std::cerr << "Could not access to the method " << "setMessageBoxMessage" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 
@@ -2990,7 +3552,8 @@ jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 jobjectArray message_ = curEnv->NewObjectArray( messageSize, stringArrayClass, NULL);
 if (message_ == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not allocate Java string array, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 // convert each char * to java strings and fill the java array.
@@ -2999,7 +3562,8 @@ for ( int i = 0; i < messageSize; i++)
 jstring TempString = curEnv->NewStringUTF( message[i] );
 if (TempString == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not convert C string to Java UTF string, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 curEnv->SetObjectArrayElement( message_, i, TempString);
@@ -3010,9 +3574,11 @@ curEnv->DeleteLocalRef(TempString);
                          curEnv->CallStaticVoidMethod(cls, voidsetMessageBoxMessagejintjobjectArrayID ,id, message_);
 curEnv->DeleteLocalRef(stringArrayClass);
 curEnv->DeleteLocalRef(message_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::messageBoxDisplayAndWait (JavaVM * jvm_, int id){
@@ -3023,13 +3589,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidmessageBoxDisplayAndWaitjintID = curEnv->GetStaticMethodID(cls, "messageBoxDisplayAndWait", "(I)V" ) ;
 if (voidmessageBoxDisplayAndWaitjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "messageBoxDisplayAndWait");
+std::cerr << "Could not access to the method " << "messageBoxDisplayAndWait" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                          curEnv->CallStaticVoidMethod(cls, voidmessageBoxDisplayAndWaitjintID ,id);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int CallScilabBridge::getMessageBoxSelectedButton (JavaVM * jvm_, int id){
@@ -3040,13 +3610,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetMessageBoxSelectedButtonjintID = curEnv->GetStaticMethodID(cls, "getMessageBoxSelectedButton", "(I)I" ) ;
 if (jintgetMessageBoxSelectedButtonjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getMessageBoxSelectedButton");
+std::cerr << "Could not access to the method " << "getMessageBoxSelectedButton" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetMessageBoxSelectedButtonjintID ,id);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -3059,25 +3633,23 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetMessageBoxDefaultSelectedButtonsjintjintArrayID = curEnv->GetStaticMethodID(cls, "setMessageBoxDefaultSelectedButtons", "(I[I)V" ) ;
 if (voidsetMessageBoxDefaultSelectedButtonsjintjintArrayID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setMessageBoxDefaultSelectedButtons");
+std::cerr << "Could not access to the method " << "setMessageBoxDefaultSelectedButtons" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
 jintArray index_ = curEnv->NewIntArray( indexSize ) ;
 
-if (index_ == NULL)
-{
-// check that allocation succeed
-throw GiwsException::JniBadAllocException(curEnv);
-}
-
 curEnv->SetIntArrayRegion( index_, 0, indexSize, (jint*) index ) ;
 
 
                          curEnv->CallStaticVoidMethod(cls, voidsetMessageBoxDefaultSelectedButtonsjintjintArrayID ,id, index_);
 curEnv->DeleteLocalRef(index_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 int * CallScilabBridge::getMessageBoxUserSelectedButtons (JavaVM * jvm_, int id){
@@ -3088,7 +3660,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintArraygetMessageBoxUserSelectedButtonsjintID = curEnv->GetStaticMethodID(cls, "getMessageBoxUserSelectedButtons", "(I)[I" ) ;
 if (jintArraygetMessageBoxUserSelectedButtonsjintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getMessageBoxUserSelectedButtons");
+std::cerr << "Could not access to the method " << "getMessageBoxUserSelectedButtons" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jintArray res =  (jintArray) curEnv->CallObjectMethod(cls, jintArraygetMessageBoxUserSelectedButtonsjintID ,id);
@@ -3106,9 +3680,11 @@ myArray[i]=resultsArray[i];
 curEnv->ReleasePrimitiveArrayCritical(res, resultsArray, JNI_ABORT);
 
                         curEnv->DeleteLocalRef(res);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return myArray;
 
 }
@@ -3121,7 +3697,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetMessageBoxButtonsLabelsjintjobjectArrayID = curEnv->GetStaticMethodID(cls, "setMessageBoxButtonsLabels", "(I[Ljava/lang/String;)V" ) ;
 if (voidsetMessageBoxButtonsLabelsjintjobjectArrayID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setMessageBoxButtonsLabels");
+std::cerr << "Could not access to the method " << "setMessageBoxButtonsLabels" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 
@@ -3129,7 +3707,8 @@ jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 jobjectArray labels_ = curEnv->NewObjectArray( labelsSize, stringArrayClass, NULL);
 if (labels_ == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not allocate Java string array, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 // convert each char * to java strings and fill the java array.
@@ -3138,7 +3717,8 @@ for ( int i = 0; i < labelsSize; i++)
 jstring TempString = curEnv->NewStringUTF( labels[i] );
 if (TempString == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not convert C string to Java UTF string, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 curEnv->SetObjectArrayElement( labels_, i, TempString);
@@ -3149,9 +3729,11 @@ curEnv->DeleteLocalRef(TempString);
                          curEnv->CallStaticVoidMethod(cls, voidsetMessageBoxButtonsLabelsjintjobjectArrayID ,id, labels_);
 curEnv->DeleteLocalRef(stringArrayClass);
 curEnv->DeleteLocalRef(labels_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 void CallScilabBridge::setMessageBoxInitialValue (JavaVM * jvm_, int id, char ** value, int valueSize){
@@ -3162,7 +3744,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetMessageBoxInitialValuejintjobjectArrayID = curEnv->GetStaticMethodID(cls, "setMessageBoxInitialValue", "(I[Ljava/lang/String;)V" ) ;
 if (voidsetMessageBoxInitialValuejintjobjectArrayID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setMessageBoxInitialValue");
+std::cerr << "Could not access to the method " << "setMessageBoxInitialValue" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 
@@ -3170,7 +3754,8 @@ jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 jobjectArray value_ = curEnv->NewObjectArray( valueSize, stringArrayClass, NULL);
 if (value_ == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not allocate Java string array, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 // convert each char * to java strings and fill the java array.
@@ -3179,7 +3764,8 @@ for ( int i = 0; i < valueSize; i++)
 jstring TempString = curEnv->NewStringUTF( value[i] );
 if (TempString == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not convert C string to Java UTF string, memory full." << std::endl;
+exit(EXIT_FAILURE);
 }
 
 curEnv->SetObjectArrayElement( value_, i, TempString);
@@ -3190,9 +3776,11 @@ curEnv->DeleteLocalRef(TempString);
                          curEnv->CallStaticVoidMethod(cls, voidsetMessageBoxInitialValuejintjobjectArrayID ,id, value_);
 curEnv->DeleteLocalRef(stringArrayClass);
 curEnv->DeleteLocalRef(value_);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 }
 
 char ** CallScilabBridge::getMessageBoxValue (JavaVM * jvm_, int id){
@@ -3203,13 +3791,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jobjectArraygetMessageBoxValuejintID = curEnv->GetStaticMethodID(cls, "getMessageBoxValue", "(I)[Ljava/lang/String;" ) ;
 if (jobjectArraygetMessageBoxValuejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getMessageBoxValue");
+std::cerr << "Could not access to the method " << "getMessageBoxValue" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jobjectArray res =  (jobjectArray) curEnv->CallObjectMethod(cls, jobjectArraygetMessageBoxValuejintID ,id);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 jsize len = curEnv->GetArrayLength(res);
 char **arrayOfString;
                         arrayOfString= arrayOfString= new char *[len + 1];
@@ -3222,9 +3814,11 @@ strcpy(arrayOfString[i], tempString);
 curEnv->ReleaseStringUTFChars(resString, tempString);
 curEnv->DeleteLocalRef(resString);
 }
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 curEnv->DeleteLocalRef(res);
 return arrayOfString;
 
@@ -3238,13 +3832,17 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID jintgetMessageBoxValueSizejintID = curEnv->GetStaticMethodID(cls, "getMessageBoxValueSize", "(I)I" ) ;
 if (jintgetMessageBoxValueSizejintID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getMessageBoxValueSize");
+std::cerr << "Could not access to the method " << "getMessageBoxValueSize" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 
                         jint res =  (jint) curEnv->CallIntMethod(cls, jintgetMessageBoxValueSizejintID ,id);
+
 if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
+curEnv->ExceptionDescribe() ;
 }
+
 return res;
 
 }
@@ -3257,7 +3855,9 @@ jclass cls = curEnv->FindClass( className().c_str() );
 
 jmethodID voidsetMessageBoxListBoxItemsjintjobjectArrayID = curEnv->GetStaticMethodID(cls, "setMessageBoxListBoxItems", "(I[Ljava/lang/String;)V" ) ;
 if (voidsetMessageBoxListBoxItemsjintjobjectArrayID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "setMessageBoxListBoxItems");
+std::cerr << "Could not access to the method " << "setMessageBoxListBoxItems" << std::endl;
+curEnv->ExceptionDescribe();
+exit(EXIT_FAILURE);
 }
 jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 
@@ -3265,7 +3865,8 @@ jclass stringArrayClass = curEnv->FindClass("java/lang/String");
 jobjectArray items_ = curEnv->NewObjectArray( itemsSize, stringArrayClass, NULL);
 if (items_ == NULL)
 {
-throw GiwsException::JniBadAllocException(curEnv);
+std::cerr << "Could not allocate Java string array, memory full." << st