Merge remote-tracking branch 'origin/5.5' 26/14626/1 scatter
Vincent COUVERT [Thu, 5 Jun 2014 13:55:30 +0000 (15:55 +0200)]
Change-Id: I07557f640b7f0f60d6553e69bd745ed54200f3e8

73 files changed:
scilab/CHANGES_5.4.X
scilab/CHANGES_5.5.X
scilab/aclocal.m4
scilab/configure
scilab/configure.ac
scilab/desktop/images/scilab-desktop.png
scilab/desktop/images/scilab-plot.png
scilab/desktop/images/scilab-scinotes.png [new file with mode: 0644]
scilab/desktop/images/scilab-xcos.png
scilab/desktop/scilab.appdata.xml
scilab/etc/librarypath.xml
scilab/modules/console/src/c/clc.c
scilab/modules/console/src/c/cmdLine/getKey.c
scilab/modules/console/tests/nonreg_tests/bug_10777.tst [new file with mode: 0644]
scilab/modules/core/macros/edit.sci
scilab/modules/core/src/fortran/typ2cod.f
scilab/modules/data_structures/help/en_US/struct.xml
scilab/modules/data_structures/help/fr_FR/struct.xml
scilab/modules/differential_equations/demos/flow/blackhole_interface.sci
scilab/modules/dynamic_link/macros/windows/dlwGenerateMakefile.sci
scilab/modules/elementary_functions/src/c/qsort.c
scilab/modules/elementary_functions/tests/nonreg_tests/bug_13358.dia.ref [new file with mode: 0644]
scilab/modules/elementary_functions/tests/nonreg_tests/bug_13358.tst [new file with mode: 0644]
scilab/modules/fileio/tests/nonreg_tests/bug_13119.dia.ref
scilab/modules/fileio/tests/nonreg_tests/bug_13119.tst
scilab/modules/graphics/demos/cmplxfunc/demo_custom.dem.sce
scilab/modules/graphics/help/en_US/text/titlepage.xml
scilab/modules/graphics/help/fr_FR/text/titlepage.xml
scilab/modules/graphics/macros/edit_curv.sci
scilab/modules/graphics/macros/surf.sci
scilab/modules/graphics/src/c/sciCall.c
scilab/modules/graphics/tests/nonreg_tests/bug_13180.dia.ref [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_13180.tst [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_13351.dia.ref [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_13351.tst [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_13365.dia.ref [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_13365.tst [new file with mode: 0644]
scilab/modules/gui/Makefile.am
scilab/modules/gui/Makefile.in
scilab/modules/gui/etc/graphics_menubar.xml
scilab/modules/gui/help/en_US/layout/createConstraints.xml
scilab/modules/gui/images/icons/16x16/mimetypes/application-mat.png [new file with mode: 0644]
scilab/modules/gui/src/java/org/scilab/modules/gui/editor/Editor.java
scilab/modules/gui/src/java/org/scilab/modules/gui/editor/LegendHandler.java
scilab/modules/helptools/etc/images_md5.txt
scilab/modules/helptools/images/LOGICAL_OP.png
scilab/modules/helptools/images/RELATIONALOP.png
scilab/modules/helptools/images/titlepage_en_US_2.png [new file with mode: 0644]
scilab/modules/helptools/images/titlepage_fr_FR_2.png [new file with mode: 0644]
scilab/modules/helptools/images/titlepage_ru_RU_2.png [new file with mode: 0644]
scilab/modules/history_manager/sci_gateway/c/sci_historysize.c
scilab/modules/javasci/Makefile.in
scilab/modules/mexlib/examples/cppmex/builder.sce
scilab/modules/output_stream/tests/nonreg_tests/bug_3070.dia.ref
scilab/modules/output_stream/tests/nonreg_tests/bug_3070.tst
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/util/TextObjectSpriteDrawer.java
scilab/modules/scicos/macros/scicos_auto/scicos_simulate.sci
scilab/modules/scicos/macros/scicos_scicos/do_delete1.sci
scilab/modules/scicos_blocks/macros/Misc/LOGICAL_OP.sci
scilab/modules/scicos_blocks/macros/Misc/RELATIONALOP.sci
scilab/modules/signal_processing/tests/unit_tests/kalm.dia.ref
scilab/modules/signal_processing/tests/unit_tests/kalm.tst
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/FileUtils.java
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/ScilabFileSelectorFilter.java
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/SwingScilabTreeTable.java
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/actions/ChangeCWDAction.java
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/actions/ExecuteMatFileAction.java [new file with mode: 0644]
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/actions/ValidateAction.java
scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/utils/UiDataMessages.java
scilab/modules/xcos/etc/Xcos-style.xml
scilab/modules/xcos/images/palettes/LOGICAL_OP.png
scilab/modules/xcos/images/palettes/RELATIONALOP.png
scilab/scilab.pc.in

index 771232a..468665b 100644 (file)
@@ -64,7 +64,7 @@ Xcos
 * Two new fixed-size step ODE solvers added: Dormand-Prince 4(5) and Runge-Kutta 4(5).
   Added to the CVode package, they also benefit from the rootfinding feature.
 
-* Implicit fixed-size stop ODE solver added: Implicit Runge-Kutta 4(5).
+* Implicit fixed-size step ODE solver added: Implicit Runge-Kutta 4(5).
   Added to the CVode package, it also benefits from the CVode rootfinding feature.
 
 * Block parameter errors (types and sizes) reporting improved.
index 510e11d..466e514 100644 (file)
@@ -10,21 +10,39 @@ Obsolete & Removed Functions
 Scilab Bug Fixes
 ================
 
+* Bug #7203 fixed - Help page of titlepage was unclear.
+
 * Bug #7549 fixed - edit_curv did not disable standard plot menus.
 
+* Bug #7804 fixed - Small improvements made in struct help page.
+
 * Bug #8646 fixed - The datatips contextual menu opened a selection list which
                     was not ergonomic.
 
 * Bug #10555 fixed - Scilab failed to build with some configure options.
 
+* Bug #10777 fixed - Home and End keys were not trapped in CLI mode.
+
+* Bug #10784 fixed - clc function was not available in CLI & ADV-CLI modes.
+
 * Bug #12700 fixed - edit_curv (used by CURV_f) was broken.
 
+* Bug #12918 fixed - OpenSUSE 12.3 x64 did not have gluegen2-rt in librarypath.
+
+* Bug #13180 fixed - surf did not handle degenerate cases.
+
 * Bug #13291 fixed - xmltojar([],[],'ja_JP') might lead to a crash when the
                      locale was not available system-wide.
 
+* Bug #13299 fixed - The pkgconfig file did not used the right Tcl/Tk version.
+
 * Bug #13313 fixed - Setting datatips orientation did not disable
                      auto_orientation mode.
 
+* Bug #13316 fixed - There were missing tooltips on File Browser buttons.
+
+* Bug #13324 fixed - Legends were completely modified when an item was clicked and modified.
+
 * Bug #13331 fixed - Users are no longer able to write inconsistent options to mopen,
                      mopen(file, "wr") now exits with a proper error.
 
@@ -33,6 +51,14 @@ Scilab Bug Fixes
 
 * Bug #13344 fixed - User defined ticks were not drawn at the right position.
 
+* Bug #13349 fixed - Double-clicking on a MAT-file in file browser did not load it.
+
+* Bug #13351 fixed - xstringb failed with LaTeX code.
+
+* Bug #13358 fixed - Intersect and unique were slow due to an issue in quicksort implementation.
+
+* Bug #13365 fixed - Data bounds werenot correctly updated in 3-D.
+
 * Bug #13378 fixed - The "Console" handle display was not homogeneous with others.
 
 * Bug #13381 fixed - eigs was failing when using a function as first input argument.
@@ -62,16 +88,16 @@ Scilab Bug Fixes
                      now permute treats extra dimensions as 1
 
 
+
 Xcos Bug Fixes
 ==============
 
-* Bug #9996 fixed - The RELATION_OP box drawn in the work space is not compliant
-                    to the programming.
-
 * Bug #11823 fixed - Ctrl+F2 shortcut did not work on a selected block.
 
 * Bug #12718 fixed - Modelica Generic block reshaped the output ports and the label was double-written.
 
+* Bug #12723 fixed - Loading a .scg file in the CURVE bloc produced an error.
+
 * Bug #12751 fixed - cdummy_ entry point was not found when using Code Generation.
 
 * Bug #13285 fixed - There was no appropriate example of the syntax for scifunc_block_m GUI
@@ -88,6 +114,7 @@ Xcos Bug Fixes
 * Bug #13396 fixed - MBLOCK did not work with an external file containing the modelica class.
 
 
+
                      Changes between version 5.4.1 and 5.5.0
                      =======================================
 
index f72ced9..9617522 100644 (file)
@@ -2943,8 +2943,7 @@ to "yes", and re-run configure.
 END
     AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
   fi
-fi
-])
+fi])
 
 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
index bd564c7..a337d30 100755 (executable)
@@ -6079,8 +6079,7 @@ to "yes", and re-run configure.
 END
     as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
   fi
-fi
- # Not using -Werror because we override {C,F}FLAGS in order to disable optimisation
+fi # Not using -Werror because we override {C,F}FLAGS in order to disable optimisation
 
 
 
@@ -11049,7 +11048,7 @@ $as_echo "$ac_java_classpath" >&6; }
 $as_echo_n "checking to see if the java compiler works... " >&6; }
 
     cat << \EOF > conftest.java
-// #line 11052 "configure"
+// #line 11051 "configure"
 import java.util.regex.Pattern;
 
 
@@ -11136,7 +11135,7 @@ $as_echo_n "checking type of jvm... " >&6; }
     if test "x$ac_java_jvm_name" = "x" ; then
 
     cat << \EOF > conftest.java
-// #line 11139 "configure"
+// #line 11138 "configure"
 import java.util.regex.Pattern;
 
 import gnu.java.io.EncodingManager;
@@ -11220,7 +11219,7 @@ $as_echo_n "checking java API version... " >&6; }
     # The class java.nio.charset.Charset is new to 1.4
 
     cat << \EOF > conftest.java
-// #line 11223 "configure"
+// #line 11222 "configure"
 import java.util.regex.Pattern;
 
 import java.nio.charset.Charset;
@@ -11285,7 +11284,7 @@ EOF
     # The class java.lang.StringBuilder is new to 1.5
 
     cat << \EOF > conftest.java
-// #line 11288 "configure"
+// #line 11287 "configure"
 import java.util.regex.Pattern;
 
 import java.lang.StringBuilder;
@@ -11350,7 +11349,7 @@ EOF
     # The class java.util.ArrayDeque is new to 1.6
 
     cat << \EOF > conftest.java
-// #line 11353 "configure"
+// #line 11352 "configure"
 import java.util.regex.Pattern;
 
 import java.util.ArrayDeque;
@@ -11415,7 +11414,7 @@ EOF
     # The class java.nio.file.Path is new to 1.7
 
     cat << \EOF > conftest.java
-// #line 11418 "configure"
+// #line 11417 "configure"
 import java.util.regex.Pattern;
 
 import java.nio.file.Path;
@@ -11480,7 +11479,7 @@ EOF
     # The class java.util.stream.DoubleStream is new to 1.8
 
     cat << \EOF > conftest.java
-// #line 11483 "configure"
+// #line 11482 "configure"
 import java.util.regex.Pattern;
 
 import java.util.stream.DoubleStream;
@@ -12858,7 +12857,7 @@ $as_echo_n "checking jgraphx... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12861 "configure"
+// #line 12860 "configure"
 import java.util.regex.Pattern;
 
 import com.mxgraph.model.mxCell;
@@ -12965,7 +12964,7 @@ $as_echo_n "checking minimal version (2.0.0.1) of jgraphx... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 12968 "configure"
+// #line 12967 "configure"
 import java.util.regex.Pattern;
 
 import com.mxgraph.view.mxGraph;
@@ -13037,7 +13036,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 13040 "configure"
+// #line 13039 "configure"
 import java.util.regex.Pattern;
 
 import com.mxgraph.view.mxGraph;
@@ -13131,7 +13130,7 @@ $as_echo_n "checking scirenderer... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13134 "configure"
+// #line 13133 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.scirenderer.PackageInfo;
@@ -13238,7 +13237,7 @@ $as_echo_n "checking minimal version (1.1.0) of scirenderer... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 13241 "configure"
+// #line 13240 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.scirenderer.PackageInfo;
@@ -13310,7 +13309,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 13313 "configure"
+// #line 13312 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.scirenderer.PackageInfo;
@@ -13409,7 +13408,7 @@ $as_echo_n "checking flexdock... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13412 "configure"
+// #line 13411 "configure"
 import java.util.regex.Pattern;
 
 import org.flexdock.docking.DockingManager;
@@ -13516,7 +13515,7 @@ $as_echo_n "checking minimal version (1.2.4) of flexdock... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 13519 "configure"
+// #line 13518 "configure"
 import java.util.regex.Pattern;
 
 import org.flexdock.util.Utilities;
@@ -13588,7 +13587,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 13591 "configure"
+// #line 13590 "configure"
 import java.util.regex.Pattern;
 
 import org.flexdock.util.Utilities;
@@ -13679,7 +13678,7 @@ $as_echo_n "checking looks... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13682 "configure"
+// #line 13681 "configure"
 import java.util.regex.Pattern;
 
 import com.jgoodies.looks.common.MenuItemRenderer;
@@ -13796,7 +13795,7 @@ $as_echo_n "checking jgoodies-looks... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13799 "configure"
+// #line 13798 "configure"
 import java.util.regex.Pattern;
 
 import com.jgoodies.looks.common.MenuItemRenderer;
@@ -13914,7 +13913,7 @@ $as_echo_n "checking skinlf... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13917 "configure"
+// #line 13916 "configure"
 import java.util.regex.Pattern;
 
 import com.l2fprod.util.AccessUtils;
@@ -14031,7 +14030,7 @@ $as_echo_n "checking jogl2... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14034 "configure"
+// #line 14033 "configure"
 import java.util.regex.Pattern;
 
 import javax.media.opengl.glu.GLUnurbs;
@@ -14254,7 +14253,7 @@ $as_echo_n "checking gluegen2-rt... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14257 "configure"
+// #line 14256 "configure"
 import java.util.regex.Pattern;
 
 import jogamp.common.os.MachineDescriptionRuntime;
@@ -14428,7 +14427,7 @@ $as_echo_n "checking jhall... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14431 "configure"
+// #line 14430 "configure"
 import java.util.regex.Pattern;
 
 import javax.help.JHelp;
@@ -14524,10 +14523,8 @@ $as_echo "$as_me: WARNING: Could not find or use the Java package/jar jhall used
       fi
     fi
 
-                JHALL=$PACKAGE_JAR_FILE
-
                 # Named differently under Mandriva or Fedora
-                if test -z "$JHALL"; then
+                if test -z "$PACKAGE_JAR_FILE"; then
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking javahelp2" >&5
 $as_echo_n "checking javahelp2... " >&6; }
@@ -14545,7 +14542,7 @@ $as_echo_n "checking javahelp2... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14548 "configure"
+// #line 14545 "configure"
 import java.util.regex.Pattern;
 
 import javax.help.JHelp;
@@ -14641,8 +14638,8 @@ $as_echo "$as_me: WARNING: Could not find or use the Java package/jar javahelp2
       fi
     fi
 
-                    JHALL=$PACKAGE_JAR_FILE
                 fi
+                JHALL=$PACKAGE_JAR_FILE
 
 
                 # Console API
@@ -14663,7 +14660,7 @@ $as_echo_n "checking jrosetta-API... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14666 "configure"
+// #line 14663 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.interfaces.core.ConsoleConfiguration;
@@ -14759,8 +14756,7 @@ $as_echo "$as_me: WARNING: Could not find or use the Java package/jar jrosetta-A
       fi
     fi
 
-                JROSETTA_API=$PACKAGE_JAR_FILE
-        if test -z "$JROSETTA_API"; then
+                if test -z "$PACKAGE_JAR_FILE"; then
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking jrosetta-api" >&5
 $as_echo_n "checking jrosetta-api... " >&6; }
@@ -14778,7 +14774,7 @@ $as_echo_n "checking jrosetta-api... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14781 "configure"
+// #line 14777 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.interfaces.core.ConsoleConfiguration;
@@ -14874,8 +14870,8 @@ $as_echo "$as_me: WARNING: Could not find or use the Java package/jar jrosetta-a
       fi
     fi
 
-                    JROSETTA_API=$PACKAGE_JAR_FILE
-        fi
+                fi
+                JROSETTA_API=$PACKAGE_JAR_FILE
 
 
                 # Console Core
@@ -14896,7 +14892,7 @@ $as_echo_n "checking jrosetta-engine... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14899 "configure"
+// #line 14895 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.core.action.AbstractConsoleAction;
@@ -15002,7 +14998,7 @@ $as_echo_n "checking minimal version (1.0.4) of jrosetta-engine... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 15005 "configure"
+// #line 15001 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.util.ConfigurationBuilder;
@@ -15074,7 +15070,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 15077 "configure"
+// #line 15073 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.util.ConfigurationBuilder;
@@ -15167,7 +15163,7 @@ $as_echo_n "checking jeuclid-core... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15170 "configure"
+// #line 15166 "configure"
 import java.util.regex.Pattern;
 
 import net.sourceforge.jeuclid.LayoutContext;
@@ -15286,7 +15282,7 @@ $as_echo_n "checking fop... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15289 "configure"
+// #line 15285 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.fop.pdf.PDFInfo;
@@ -15410,7 +15406,7 @@ $as_echo_n "checking freehep-graphics2d... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15413 "configure"
+// #line 15409 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.graphics2d.VectorGraphics;
@@ -15527,7 +15523,7 @@ $as_echo_n "checking freehep-graphicsio-emf... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15530 "configure"
+// #line 15526 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.graphicsio.emf.EMFGraphics2D;
@@ -15644,7 +15640,7 @@ $as_echo_n "checking freehep-graphicsio... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15647 "configure"
+// #line 15643 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.graphicsio.VectorGraphicsIO;
@@ -15761,7 +15757,7 @@ $as_echo_n "checking freehep-io... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15764 "configure"
+// #line 15760 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.util.io.XMLSequence;
@@ -15878,7 +15874,7 @@ $as_echo_n "checking freehep-util... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15881 "configure"
+// #line 15877 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.util.StringUtilities;
@@ -15996,7 +15992,7 @@ $as_echo_n "checking batik-all... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15999 "configure"
+// #line 15995 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.batik.parser.Parser;
@@ -16113,7 +16109,7 @@ $as_echo_n "checking batik... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16116 "configure"
+// #line 16112 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.batik.parser.Parser;
@@ -16220,7 +16216,7 @@ $as_echo_n "checking minimal version (1.7) of batik... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 16223 "configure"
+// #line 16219 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.batik.Version;
@@ -16292,7 +16288,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 16295 "configure"
+// #line 16291 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.batik.Version;
@@ -16383,7 +16379,7 @@ $as_echo_n "checking commons-io... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16386 "configure"
+// #line 16382 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.commons.io.output.CountingOutputStream;
@@ -16500,7 +16496,7 @@ $as_echo_n "checking xmlgraphics-commons... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16503 "configure"
+// #line 16499 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.xmlgraphics.util.Service;
@@ -16617,7 +16613,7 @@ $as_echo_n "checking avalon-framework... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16620 "configure"
+// #line 16616 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.avalon.framework.configuration.ConfigurationException;
@@ -16734,7 +16730,7 @@ $as_echo_n "checking xml-apis-ext... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16737 "configure"
+// #line 16733 "configure"
 import java.util.regex.Pattern;
 
 import org.w3c.dom.svg.SVGDocument;
@@ -16851,7 +16847,7 @@ $as_echo_n "checking xml-commons-apis-ext... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16854 "configure"
+// #line 16850 "configure"
 import java.util.regex.Pattern;
 
 import org.w3c.dom.svg.SVGDocument;
@@ -16972,7 +16968,7 @@ $as_echo_n "checking commons-logging... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16975 "configure"
+// #line 16971 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.commons.logging.LogFactory;
@@ -17089,7 +17085,7 @@ $as_echo_n "checking jlatexmath... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17092 "configure"
+// #line 17088 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.jlatexmath.TeXFormula;
@@ -17196,7 +17192,7 @@ $as_echo_n "checking minimal version (1.0.3) of jlatexmath... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 17199 "configure"
+// #line 17195 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.jlatexmath.TeXFormula;
@@ -17268,7 +17264,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 17271 "configure"
+// #line 17267 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.jlatexmath.TeXFormula;
@@ -17359,7 +17355,7 @@ $as_echo_n "checking jlatexmath-fop... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17362 "configure"
+// #line 17358 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.jlatexmath.fop.JLaTeXMathObj;
@@ -17482,7 +17478,7 @@ $as_echo_n "checking checkstyle... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17485 "configure"
+// #line 17481 "configure"
 import java.util.regex.Pattern;
 
 import com.puppycrawl.tools.checkstyle.CheckStyleTask;
@@ -17599,7 +17595,7 @@ $as_echo_n "checking commons-beanutils... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17602 "configure"
+// #line 17598 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.commons.beanutils.Converter;
@@ -17716,7 +17712,7 @@ $as_echo_n "checking antlr... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17719 "configure"
+// #line 17715 "configure"
 import java.util.regex.Pattern;
 
 import antlr.TokenStreamException;
@@ -17833,7 +17829,7 @@ $as_echo_n "checking junit4... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17836 "configure"
+// #line 17832 "configure"
 import java.util.regex.Pattern;
 
 import org.junit.Assert;
@@ -17929,6 +17925,124 @@ $as_echo "$as_me: WARNING: Could not find or use the Java package/jar junit4 use
       fi
     fi
 
+        if test -z "$PACKAGE_JAR_FILE"; then
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking junit" >&5
+$as_echo_n "checking junit... " >&6; }
+    PACKAGE_JAR_FILE=
+    found_jar=no
+    saved_ac_java_classpath=$ac_java_classpath
+    DEFAULT_JAR_DIR="/usr/share/java /usr/lib/java /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(find /usr/share/java/ -maxdepth 1 -type d 2>/dev/null) $(find /usr/lib64/ -maxdepth 1 -type d 2>/dev/null) $(find  /usr/lib/ -maxdepth 1 -type d 2>/dev/null)  $(find /usr/share/*/lib -maxdepth 1 -type d 2>/dev/null)"
+    for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR; do
+      for jar in "$jardir/junit.jar" "$jardir/libjunit.jar" "$jardir/libjunit-java.jar" "$jardir/junit*.jar"; do
+
+# TODO check the behaviour when spaces
+        jars_resolved=`ls $jar 2>/dev/null`
+        for jar_resolved in $jars_resolved; do # If several jars matches
+          if test -e "$jar_resolved"; then
+            export ac_java_classpath="$jar_resolved:$ac_java_classpath"
+
+    cat << \EOF > conftest.java
+// #line 17946 "configure"
+import java.util.regex.Pattern;
+
+import org.junit.Assert;
+
+public class conftest {
+    public static void main(String[] argv) {
+
+    }
+
+    private static int compare(String v1, String v2) {
+        String s1 = normalisedVersion(v1);
+        String s2 = normalisedVersion(v2);
+        return s1.compareTo(s2);
+    }
+
+    private static String normalisedVersion(String version) {
+        return normalisedVersion(version, ".", 4);
+    }
+
+    private static String normalisedVersion(String version, String sep, int maxWidth) {
+        String[] split = Pattern.compile(sep, Pattern.LITERAL).split(version);
+        StringBuilder sb = new StringBuilder();
+        for (String s : split) {
+            sb.append(String.format("%" + maxWidth + 's', s));
+        }
+        return sb.toString();
+    }
+}
+EOF
+
+    CLASSPATH=$ac_java_classpath
+    export CLASSPATH
+    cmd="$JAVAC ${JAVAC_FLAGS} conftest.java"
+    if (echo $cmd >&5 ; eval $cmd >conftest.java.output 2>&5) ; then
+       if test ""no"" = "no"; then
+           echo "yes" >&5
+
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $jar_resolved" >&5
+$as_echo "$jar_resolved" >&6; }
+              found_jar=yes
+              PACKAGE_JAR_FILE=$jar_resolved
+              break 3
+
+       else
+              cmd="$JAVA conftest"
+              if (echo $cmd >&5 ; eval $cmd >conftest.java.output 2>&5); then
+               echo "yes" >&5
+
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $jar_resolved" >&5
+$as_echo "$jar_resolved" >&6; }
+              found_jar=yes
+              PACKAGE_JAR_FILE=$jar_resolved
+              break 3
+
+            else
+                echo "configure: failed program was:" >&5
+                cat conftest.java >&5
+                if test -s conftest.java.output; then
+                   STDOUT=`cat conftest.java.output`
+                fi
+                echo "configure: CLASSPATH was $CLASSPATH" >&5
+
+            ac_java_classpath=$saved_ac_java_classpath
+
+
+                            fi
+        fi
+        if test -f conftest.java.output; then
+           rm conftest.java.output
+        fi
+    else
+        echo "configure: failed program was:" >&5
+        cat conftest.java >&5
+        echo "configure: CLASSPATH was $CLASSPATH" >&5
+
+            ac_java_classpath=$saved_ac_java_classpath
+
+
+            fi
+
+          fi
+        done
+      done
+    done
+    if test "$found_jar" = "no"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+      if test ""yes"" = "yes"; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find or use the Java package/jar junit used by Junit4 -
+Unit tests (looking for package org.junit.Assert)" >&5
+$as_echo "$as_me: WARNING: Could not find or use the Java package/jar junit used by Junit4 -
+Unit tests (looking for package org.junit.Assert)" >&2;}
+      else
+          as_fn_error $? "Could not find or use the Java package/jar junit used by Junit4 -
+Unit tests (looking for package org.junit.Assert)" "$LINENO" 5
+      fi
+    fi
+
+        fi
         JUNIT4=$PACKAGE_JAR_FILE
 
 
@@ -17950,7 +18064,7 @@ $as_echo_n "checking cobertura... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17953 "configure"
+// #line 18067 "configure"
 import java.util.regex.Pattern;
 
 import net.sourceforge.cobertura.merge.Main;
@@ -18067,7 +18181,7 @@ $as_echo_n "checking asm3... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18070 "configure"
+// #line 18184 "configure"
 import java.util.regex.Pattern;
 
 import org.objectweb.asm.Type;
@@ -18163,8 +18277,6 @@ $as_echo "$as_me: WARNING: Could not find or use the Java package/jar asm3 used
       fi
     fi
 
-        ASM3=$PACKAGE_JAR_FILE
-
         if test -z "$ASM3"; then
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking asm" >&5
@@ -18183,7 +18295,7 @@ $as_echo_n "checking asm... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18186 "configure"
+// #line 18298 "configure"
 import java.util.regex.Pattern;
 
 import org.objectweb.asm.Type;
@@ -18279,8 +18391,9 @@ $as_echo "$as_me: WARNING: Could not find or use the Java package/jar asm used b
       fi
     fi
 
-                ASM3=$PACKAGE_JAR_FILE
         fi
+        ASM3=$PACKAGE_JAR_FILE
+
 
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking ecj" >&5
@@ -18299,7 +18412,7 @@ $as_echo_n "checking ecj... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18302 "configure"
+// #line 18415 "configure"
 import java.util.regex.Pattern;
 
 import org.eclipse.jdt.core.compiler.batch.BatchCompiler;
@@ -26842,7 +26955,7 @@ CPPFLAGS="$CPPFLAGS -I$CHK_TCL_INCLUDE_PATH"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later" >&5
 $as_echo_n "checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later... " >&6; }
 cat > conftest.$ac_ext <<EOF
-#line 26845 "configure"
+#line 26958 "configure"
 #include "confdefs.h"
 
 #include "$CHK_TCL_INCLUDE_PATH/$CHK_TCL_INC_NAME"
@@ -27153,7 +27266,7 @@ CPPFLAGS="$CPPFLAGS $TCL_INC_PATH -I$CHK_TK_INCLUDE_PATH $X_CFLAGS"
 $as_echo_n "checking if tk is version $CHK_TK_MAJOR.$CHK_TK_MINOR or later... " >&6; }
 
 cat > conftest.$ac_ext <<EOF
-#line 27156 "configure"
+#line 27269 "configure"
 #include "confdefs.h"
 
 #include "$CHK_TK_INCLUDE_PATH/$CHK_TK_INC_NAME"
@@ -27737,7 +27850,7 @@ $as_echo_n "checking saxon9he... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 27740 "configure"
+// #line 27853 "configure"
 import java.util.regex.Pattern;
 
 import net.sf.saxon.Version;
@@ -27852,7 +27965,7 @@ $as_echo_n "checking saxon... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 27855 "configure"
+// #line 27968 "configure"
 import java.util.regex.Pattern;
 
 import net.sf.saxon.Version;
@@ -27968,7 +28081,7 @@ $as_echo_n "checking saxon... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 27971 "configure"
+// #line 28084 "configure"
 import java.util.regex.Pattern;
 
 import com.icl.saxon.Loader;
index 0367a0b..e6423dc 100644 (file)
@@ -949,22 +949,19 @@ interface for JOGL2 - or libGL (OpenGL library) are installed and if the version
 
                 # Jhall
                 AC_JAVA_CHECK_PACKAGE([jhall],[javax.help.JHelp],[Scilab Help Browser],"yes")
-                JHALL=$PACKAGE_JAR_FILE
-
                 # Named differently under Mandriva or Fedora
-                if test -z "$JHALL"; then
+                if test -z "$PACKAGE_JAR_FILE"; then
                     AC_JAVA_CHECK_PACKAGE([javahelp2],[javax.help.JHelp],[Scilab Help Browser])
-                    JHALL=$PACKAGE_JAR_FILE
                 fi
+                JHALL=$PACKAGE_JAR_FILE
                 AC_SUBST(JHALL)
 
                 # Console API
                 AC_JAVA_CHECK_PACKAGE([jrosetta-API],[com.artenum.rosetta.interfaces.core.ConsoleConfiguration],[JRosetta : Console API Artenum / Scilab],"yes")
-                JROSETTA_API=$PACKAGE_JAR_FILE
-        if test -z "$JROSETTA_API"; then
+                if test -z "$PACKAGE_JAR_FILE"; then
                     AC_JAVA_CHECK_PACKAGE([jrosetta-api],[com.artenum.rosetta.interfaces.core.ConsoleConfiguration],[JRosetta : Console API Artenum / Scilab])
-                    JROSETTA_API=$PACKAGE_JAR_FILE
-        fi
+                fi
+                JROSETTA_API=$PACKAGE_JAR_FILE
                 AC_SUBST(JROSETTA_API)
 
                 # Console Core
@@ -1095,6 +1092,10 @@ interface for JOGL2 - or libGL (OpenGL library) are installed and if the version
 
         # Junit 4 (java unitary test)
         AC_JAVA_CHECK_PACKAGE([junit4],[org.junit.Assert],[Junit4 - Unit tests],"yes")
+        if test -z "$PACKAGE_JAR_FILE"; then
+                AC_JAVA_CHECK_PACKAGE([junit],[org.junit.Assert],[Junit4 -
+Unit tests],"yes")
+        fi
         JUNIT4=$PACKAGE_JAR_FILE
         AC_SUBST(JUNIT4)
 
@@ -1105,12 +1106,11 @@ interface for JOGL2 - or libGL (OpenGL library) are installed and if the version
 
         # ASM (a dependency of Cobertura)
         AC_JAVA_CHECK_PACKAGE([asm3],[org.objectweb.asm.Type],[Java bytecode manipulation (dep of cobertura)],"yes")
-        ASM3=$PACKAGE_JAR_FILE
-        AC_SUBST(ASM3)
         if test -z "$ASM3"; then
                 AC_JAVA_CHECK_PACKAGE([asm],[org.objectweb.asm.Type],[Java bytecode manipulation (dep of cobertura)],"yes")
-                ASM3=$PACKAGE_JAR_FILE
         fi
+        ASM3=$PACKAGE_JAR_FILE
+        AC_SUBST(ASM3)
 
         AC_JAVA_CHECK_PACKAGE([ecj],[org.eclipse.jdt.core.compiler.batch.BatchCompiler],[Eclipse Java compiler],"yes")
         ECJ=$PACKAGE_JAR_FILE
index 3bf96ec..0cf2736 100644 (file)
Binary files a/scilab/desktop/images/scilab-desktop.png and b/scilab/desktop/images/scilab-desktop.png differ
index 1742e89..e99100e 100644 (file)
Binary files a/scilab/desktop/images/scilab-plot.png and b/scilab/desktop/images/scilab-plot.png differ
diff --git a/scilab/desktop/images/scilab-scinotes.png b/scilab/desktop/images/scilab-scinotes.png
new file mode 100644 (file)
index 0000000..fb84aee
Binary files /dev/null and b/scilab/desktop/images/scilab-scinotes.png differ
index d1d4ae2..b44dfb1 100644 (file)
Binary files a/scilab/desktop/images/scilab-xcos.png and b/scilab/desktop/images/scilab-xcos.png differ
index ccd2dd6..3dbf935 100644 (file)
@@ -4,8 +4,8 @@
     <id type="desktop">scilab.desktop</id>
     <licence>CC0</licence>
     <description>
-        <p>Scilab includes hundreds of mathematical functions. It has a high level programming language allowing access to advanced data structures, 2-D and 3-D graphical functions.</p>
-        <p>A large number of functionalities is included in Scilab:</p>
+        <p>Scilab is free and open source software for numerical computation providing a powerful computing environment for engineering and scientific applications. Scilab includes hundreds of mathematical functions. It has a high level programming language allowing access to advanced data structures, 2-D and 3-D graphical functions. A large number of functionalities is included in Scilab:
+        </p>
         <ul>
             <li>Maths &amp; Simulation: For usual engineering and science applications</li>
             <li>2-D &amp; 3-D Visualization: Graphics functions to visualize, annotate and export data</li>
             <li>Application Development: Increase Scilab native functionalities and manage data exchanges</li>
             <li>Xcos - Hybrid dynamic systems modeler and simulator: Modeling physical systems, control systems</li>
         </ul>
+        <p>Thanks to its ability to interconnect with third-party technologies and applications, Scilab can also act as a unique platform to bring together codes written in different programming languages in a single, unified language, thus facilitating their distribution, their back-up and use.
+        </p>
     </description>
     <screenshots>
-        <screenshot type="default" width="800" height="600">http://cgit.scilab.org/cgit.cgi/scilab/plain/scilab/desktop/images/scilab-desktop.png</screenshot>
-        <screenshot width="800" height="600">http://cgit.scilab.org/cgit.cgi/scilab/plain/scilab/desktop/images/scilab-plot.png</screenshot>
-        <screenshot width="800" height="600">http://cgit.scilab.org/cgit.cgi/scilab/plain/scilab/desktop/images/scilab-xcos.png</screenshot>
+        <screenshot type="default" width="1200" height="675">http://cgit.scilab.org/cgit.cgi/scilab/plain/scilab/desktop/images/scilab-desktop.png</screenshot>
+        <screenshot width="1200" height="675">http://cgit.scilab.org/cgit.cgi/scilab/plain/scilab/desktop/images/scilab-plot.png</screenshot>
+        <screenshot width="1200" height="675">http://cgit.scilab.org/cgit.cgi/scilab/plain/scilab/desktop/images/scilab-xcos.png</screenshot>
+        <screenshot width="1200" height="675">http://cgit.scilab.org/cgit.cgi/scilab/plain/scilab/desktop/images/scilab-scinotes.png</screenshot>
     </screenshots>
     <url type="homepage">http://www.scilab.org</url>
     <updatecontact>dev@lists.scilab.org</updatecontact>
index 8426afb..265db2e 100644 (file)
@@ -50,7 +50,8 @@
     <path value="/usr/lib64/gluegen2/"/>
     
     <!-- Some distributions (like openSUSE) put gluegen-rt in /usr/lib instead pf /usr/lib/jni -->
-    <path value="/usr/lib" />
+    <path value="/usr/lib/" />
+    <path value="/usr/lib64/" />
     
     <!-- Make install with prefix -->
     <path value="$SCILAB/../../lib/scilab/"/>
index 635aca9..351fe80 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2007 - INRIA - Allan CORNET
+ * Copyright (C) 2014 - Scilab Enterprises - Anais AUBERT
  *
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -11,6 +12,7 @@
  */
 /*--------------------------------------------------------------------------*/
 #include <stdlib.h>
+#include <stdio.h>
 #include "clc.h"
 #include "scilabmode.h"
 #include "ClearConsole.h"
@@ -18,6 +20,8 @@
 #ifdef _MSC_VER
 #include "windows/clrscr_nw.h"
 #include "windows/clrscrPart_nw.h"
+#else
+#include "others/clrscr_nw.h"
 #endif
 /*--------------------------------------------------------------------------*/
 BOOL clc(int nblines)
@@ -32,19 +36,14 @@ BOOL clc(int nblines)
             clrscrPart_nw(nblines);
             bOK = TRUE;
 #else
-            /* impossible in this mode */
-            bOK = FALSE;
+            printf("\033[%dA\033[J", nblines + 2);
+            bOK = TRUE;
 #endif
         }
         else
         {
-#ifdef  _MSC_VER
             clrscr_nw();
             bOK = TRUE;
-#else
-            /* only on Windows */
-            bOK = FALSE;
-#endif
         }
     }
     else
index ea1ae2a..671a4b3 100644 (file)
@@ -86,10 +86,11 @@ static void caseHomeOrEndKey(wchar_t * commandLine, unsigned int *cursorLocation
 
 /*
  * If second key was L'['
- * It means this could be an arrow key or delete key.
+ * It means this could be an arrow key, a delete key or home/end key.
  */
 static void caseDelOrArrowKey(wchar_t ** commandLine, unsigned int *cursorLocation)
 {
+    int * cmd = *commandLine;
     switch (getwchar())
     {
         case L'A':
@@ -114,6 +115,13 @@ static void caseDelOrArrowKey(wchar_t ** commandLine, unsigned int *cursorLocati
                 updateTokenInScilabHistory(commandLine);
                 break;
             }
+        //home or end key in some consoles
+        case L'H':
+            begLine(cmd, cursorLocation);
+            break;
+        case L'F':
+            endLine(cmd, cursorLocation);
+            break;
     }
 }
 
@@ -138,6 +146,7 @@ static void caseMetaKey(wchar_t ** commandLine, unsigned int *cursorLocation)
         case L'O':
             caseHomeOrEndKey(*commandLine, cursorLocation);
             break;
+
     }
 }
 
@@ -209,7 +218,7 @@ static void getKey(wchar_t ** commandLine, unsigned int *cursorLocation)
 
     key = getwchar();
 
-    // Need to clear the stdin
+       // Need to clear the stdin
     if (key == WEOF && feof(stdin))
     {
         clearerr(stdin);
@@ -231,6 +240,7 @@ static void getKey(wchar_t ** commandLine, unsigned int *cursorLocation)
         case CTRL_D:
             rmChar(*commandLine, SCI_DELETE, cursorLocation);
             updateTokenInScilabHistory(commandLine);
+            exit(0);
             break;
         case CTRL_E:
             endLine(*commandLine, cursorLocation);
diff --git a/scilab/modules/console/tests/nonreg_tests/bug_10777.tst b/scilab/modules/console/tests/nonreg_tests/bug_10777.tst
new file mode 100644 (file)
index 0000000..e2f39e0
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 -Scilab Enterprises - Anais AUBERT
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- INTERACTIVE TEST -->
+// <-- TEST WITH CONSOLE -->
+//
+// <-- Non-regression test for bug 10777 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=10777
+//
+// <-- Short Description -->
+// In some consoles, home and end keys are not trapped
+
+// i) Have a console opened .
+// ii) Write anything
+// iii) Hit home key, cursor should move to the beginning of the line
+
+
index 3f746cc..d3768ba 100644 (file)
@@ -38,7 +38,7 @@ function edit(macroname,linenumber)
         else
             tmpfile = tmpdir + macroname + ".sci";
             if funptr(macroname)<>0 then
-                error(msprintf(gettext("%s: %s is a uneditable hard coded function.\n"), "edit", macroname));
+                error(msprintf(gettext("%s: %s is an uneditable hard coded function.\n"), "edit", macroname));
             end
             libr = whereis(macroname);
             if libr <> [] then // macroname is the name of a defined function
index d7b00d5..415873f 100644 (file)
@@ -1,10 +1,10 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) INRIA
-c 
+c
 c This file must be used under the terms of the CeCILL.
 c This source file is licensed as described in the file COPYING, which
 c you should have received as part of this distribution.  The terms
-c are also available at    
+c are also available at
 c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
 
       subroutine typ2cod(il,name,n)
@@ -20,7 +20,7 @@ c     following common defines the initial database of type names
       integer tp(maxtyp),ptr(maxtyp),ln(maxtyp),namrec(nmmax),ptmax
 cDEC$ IF DEFINED (FORDLL)
 cDEC$ ATTRIBUTES DLLIMPORT:: /typnams/
-cDEC$ ENDIF      
+cDEC$ ENDIF
       common /typnams/ tp,ptr,ln,namrec,ptmax
       integer name(*)
       integer iadr,sadr
@@ -56,7 +56,7 @@ c     look for itype in dynamically added types
          n=ln(it)
          call icopy(n,namrec(ptr(it)),1,name,1)
       endif
-c      
+c
       return
  9000 continue
       n=0
@@ -74,12 +74,12 @@ c     following common defines the initial database of type names
       integer tp(maxtyp),ptr(maxtyp),ln(maxtyp),namrec(nmmax),ptmax
 cDEC$ IF DEFINED (FORDLL)
 cDEC$ ATTRIBUTES DLLIMPORT:: /typnams/
-cDEC$ ENDIF      
+cDEC$ ENDIF
       common /typnams/ tp,ptr,ln,namrec,ptmax
       character*15 nam1
 c
       ierr=0
-c     
+c
       n=len(nam)
       if(n.gt.0) then
 c     add a type
@@ -115,7 +115,7 @@ c     .     check if new type is the same as old type
          call cvstr(n,namrec(ptmax),nam,0)
          ptmax=ptmax+n
       else
-c     supress a type
+c     suppress a type
          if(typ.le.20) then
             pos=typ
             if(ln(pos).eq.0) return
index 4104ee0..682b9eb 100644 (file)
         <title>Description</title>
         <para>
             This function returns a struct with the fields names
-            <varname>fields1</varname>, <varname>field2</varname>, ..., and the fields values
+            <varname>field1</varname>, <varname>field2</varname>, ..., and the fields values
             corresponding <varname>value1</varname>, <varname>value2</varname>, ...
         </para>
+        <para>
+            Note that <literal>type(st)</literal> returns <literal>17</literal>, and <literal>typeof(st)</literal> returns <literal>st</literal>.
+        </para>
     </refsection>
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
 //create a struct date
 date_st=struct('day',25,'month' ,'DEC','year',2006)
 //change the month
 date_st.month='AUG';
 //change the year
 date_st.year=1973;
 //change the day
 date_st.day=19;
 //add a new field
 date_st.semaine=32
+
+//create a structure test
+test=struct('list1',list('testlist',1,2), 'matrix1', [1 2 3; 4 5 6], 'boolean1', %t);
+//add a polynom
+s=poly(0,'s')
+test.pol1=s;
+//add a state-space
+A=[0,1;0,0]; B=[1;1];C=[1,1];
+test.ss1=syslin('c',A,B,C);
+//Show the list
+test.list1
+getfield(3,test)
+//Show the type
+type(test)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
@@ -71,6 +84,18 @@ date_st.semaine=32
             <member>
                 <link linkend="cell">cell</link>
             </member>
+            <member>
+                <link linkend="mlist">mlist</link>
+            </member>
+            <member>
+                <link linkend="tlist">tlist</link>
+            </member>
+            <member>
+                <link linkend="getfield">getfield</link>
+            </member>
+            <member>
+                <link linkend="setfield">setfield</link>
+            </member>
         </simplelist>
     </refsection>
 </refentry>
index 5f0f02d..fedbf16 100644 (file)
     <refsection>
         <title>Description</title>
         <para>
-            La fonction <literal>struc</literal>t retourne une struct avec des noms de
-            champs <literal>field1</literal>, <literal>field2</literal>, .., et dont les valeurs
-            respectives sont <literal>value</literal><literal>1</literal>, <literal>value2</literal>,
+            La fonction <function>struct</function> retourne une struct avec des noms de
+            champs <varname>field1</varname>, <varname>field2</varname>, .., et dont les valeurs
+            respectives sont <varname>value1</varname>, <varname>value2</varname>,
             ...
         </para>
+        <para>
+            Notez que <literal>type(st)</literal> retourne <literal>17</literal> et que <literal>typeof(st)</literal> retourne <literal>st</literal>.
+        </para>
     </refsection>
     <refsection>
         <title>Exemples</title>
@@ -49,6 +52,20 @@ date_st.annee=1973;
 
 // ajouter un champ 'semaine'
 date_st.semaine=32
+
+//creation d'une structure test
+test=struct('list1',list('testlist',1,2), 'matrix1', [1 2 3; 4 5 6], 'boolean1', %t);
+//ajout d'un polynôme
+s=poly(0,'s')
+test.pol1=s;
+//ajout d'un système linéaire (représentation d'état)
+A=[0,1;0,0]; B=[1;1];C=[1,1];
+test.ss1=syslin('c',A,B,C);
+//Affichage de la liste
+test.list1
+getfield(3,test)
+//Affichage du type
+type(test)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
@@ -57,6 +74,18 @@ date_st.semaine=32
             <member>
                 <link linkend="cell">cell</link>
             </member>
+            <member>
+                <link linkend="mlist">mlist</link>
+            </member>
+            <member>
+                <link linkend="tlist">tlist</link>
+            </member>
+            <member>
+                <link linkend="getfield">getfield</link>
+            </member>
+            <member>
+                <link linkend="setfield">setfield</link>
+            </member>
         </simplelist>
     </refsection>
 </refentry>
index 351d829..9656600 100644 (file)
@@ -39,32 +39,32 @@ function exeblackhole()
 
     //Simulation parameters
     speed = tlist(["sim_param", "name", "unit", "range", "default", "tag"], ...
-        "speed", ...
-        "m/s", ...
-        [0 100], ...
-        1, ...
-        "speed");
+    "speed", ...
+    "m/s", ...
+    [0 100], ...
+    1, ...
+    "speed");
 
     direction = tlist(["sim_param", "name", "unit", "range", "default", "tag"], ...
-        "direction", ...
-        "deg", ...
-        [0 100], ...
-        50, ...
-        "dir");
+    "direction", ...
+    "deg", ...
+    [0 100], ...
+    50, ...
+    "dir");
 
     r = tlist(["sim_param", "name", "unit", "range", "default", "tag"], ...
-        "r", ...
-        "m", ...
-        [4 100], ...
-        1, ...
-        "r");
+    "r", ...
+    "m", ...
+    [4 100], ...
+    1, ...
+    "r");
 
     theta = tlist(["sim_param", "name", "unit", "range", "default", "tag"], ...
-        "theta", ...
-        "deg", ...
-        [0 100], ...
-        1, ...
-        "theta");
+    "theta", ...
+    "deg", ...
+    [0 100], ...
+    1, ...
+    "theta");
 
     //Create the controls in the window bottom
     param_list = list(r, theta, speed, direction);
@@ -192,24 +192,24 @@ function blackhole_create_gui()
     gen_c = createConstraints("border", "bottom", [600 200]);
 
     //Create the layout options for the frame containing position and speed frames
-    //1by2 grid with 20 pixel horizontal space for minimum paddding
+    //1by2 grid with 20 pixel horizontal space for minimum padding
     posspeed_lay_opt = createLayoutOptions("grid", [1 2], [20 0]);
 
 
     gui_frame = uicontrol(my_figure_handle, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "layout", "border", ...
-        "constraint", gen_c);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "border", ...
+    "constraint", gen_c);
 
     //Frame containing position and speed
     gen_c.position = "center";
     frame_posspeed = uicontrol(gui_frame, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "layout", "grid", ...
-        "layout_options", posspeed_lay_opt, ...
-        "constraint", gen_c);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "grid", ...
+    "layout_options", posspeed_lay_opt, ...
+    "constraint", gen_c);
 
     //Borders and title around position or speed
     b_f_posspeed = createBorderFont("", 16);
@@ -225,28 +225,28 @@ function blackhole_create_gui()
     //vertical grid: speed_frame | 10 | direction_frame
     b_posspeed.title = "initial speed";
     frame_initspeed = uicontrol(frame_posspeed, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "layout", "gridbag", ...
-        "border", b_posspeed);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "gridbag", ...
+    "border", b_posspeed);
 
     //speed and direction in initspeed
     c = createConstraints("gridbag", [1 1 1 1], [1 1], "horizontal", "center", [0 0], [0 20]);
 
     speed_frame = uicontrol(frame_initspeed, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "layout", "gridbag", ...
-        "constraints", c);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "gridbag", ...
+    "constraints", c);
 
     createSliderFrame(speed_frame, "speed", "speed", "(m/s)");
 
     c.grid =  [1 2 1 1]
     direction_frame = uicontrol(frame_initspeed, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "layout", "gridbag", ...
-        "constraints", c);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "gridbag", ...
+    "constraints", c);
 
     createSliderFrame(direction_frame, "dir", "dir", "(deg)");
     //Frame initpositiono
@@ -254,38 +254,38 @@ function blackhole_create_gui()
     //vertical grid: r_frame | 10 | theta_frame
     b_posspeed.title = "initial position";
     frame_initposition = uicontrol(frame_posspeed, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "layout", "gridbag", ...
-        "border", b_posspeed);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "gridbag", ...
+    "border", b_posspeed);
 
     c.grid = [1 1 1 1]
     r_frame = uicontrol(frame_initposition, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "layout", "gridbag", ...
-        "constraints", c);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "gridbag", ...
+    "constraints", c);
 
     createSliderFrame(r_frame, "r", "r", "(m)");
 
     c.grid = [1 2 1 1]
     theta_frame = uicontrol(frame_initposition, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "layout", "gridbag", ...
-        "constraints", c);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "gridbag", ...
+    "constraints", c);
 
     createSliderFrame(theta_frame, "theta", "theta", "(deg)");
 
-    //Button frame 
+    //Button frame
     //esthetic | button 1 | est | button2 | est | button 3 | est
     gen_c.position = "bottom"
     gen_c.preferredsize = [0 30];
     button_frame = uicontrol(gui_frame, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "layout", "gridbag", ...
-        "constraints", gen_c);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "gridbag", ...
+    "constraints", gen_c);
 
     // Buttons
     // est | buttons | est
@@ -299,69 +299,69 @@ function blackhole_create_gui()
 
     //Esthetic Empty panel
     est_panel = uicontrol(button_frame, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "constraints", c_button);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "constraints", c_button);
 
-    //Buttons 
+    //Buttons
     buttonBorder = createBorder("line", "darkgrey", 3);
     c_button = createConstraints("gridbag", [2 1 1 1], [0 0], "both", "left", [0 0])
     //Button Start
     c_button.anchor = "left"
     start_button = uicontrol(button_frame, ...
-        "Style", "pushbutton", ...
-        "String", "Start", ...
-        "Fontsize", 14, ...
-        "BackgroundColor", [0.9 0.9 0.9], ...
-        "callback", "start_simu()", ...
-        "border", buttonBorder, ...
-        "tag", "start_button", ...
-        "constraints", c_button);
+    "Style", "pushbutton", ...
+    "String", "Start", ...
+    "Fontsize", 14, ...
+    "BackgroundColor", [0.9 0.9 0.9], ...
+    "callback", "start_simu()", ...
+    "border", buttonBorder, ...
+    "tag", "start_button", ...
+    "constraints", c_button);
 
     //Empty panel
     c_button = createConstraints("gridbag", [3 1 1 1], [0 0], "none", "center", [0 0], [20 0])
     est_panel = uicontrol(button_frame, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "constraints", c_button);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "constraints", c_button);
 
     //Button Stop
     c_button = createConstraints("gridbag", [4 1 1 1], [0 0], "both", "center", [0 0])
     stop_button = uicontrol(button_frame, ...
-        "Style", "pushbutton", ...
-        "String", "Stop", ...
-        "Fontsize", 14, ...
-        "BackgroundColor", [0.9 0.9 0.9], ...
-        "border", buttonBorder, ...
-        "callback", "stop_simu", ...
-        "tag", "stop_button", ...
-        "constraints", c_button);
-
-    //Empty panel    
+    "Style", "pushbutton", ...
+    "String", "Stop", ...
+    "Fontsize", 14, ...
+    "BackgroundColor", [0.9 0.9 0.9], ...
+    "border", buttonBorder, ...
+    "callback", "stop_simu", ...
+    "tag", "stop_button", ...
+    "constraints", c_button);
+
+    //Empty panel
     c_button = createConstraints("gridbag", [5 1 1 1], [0 0], "none", "center", [0 0], [20 0])
     est_panel = uicontrol(button_frame, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "constraints", c_button);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "constraints", c_button);
 
     //Button Clear
     c_button = createConstraints("gridbag", [6 1 1 1], [0 0], "both", "center", [0 0])
     clear_button = uicontrol(button_frame, ...
-        "Style", "pushbutton", ...
-        "String", "Clear", ...
-        "Fontsize", 14, ...
-        "BackgroundColor", [0.9 0.9 0.9], ...
-        "callback", "clear_simu", ...
-        "border", buttonBorder, ...
-        "tag", "clear_button", ...
-        "constraints", c_button);
+    "Style", "pushbutton", ...
+    "String", "Clear", ...
+    "Fontsize", 14, ...
+    "BackgroundColor", [0.9 0.9 0.9], ...
+    "callback", "clear_simu", ...
+    "border", buttonBorder, ...
+    "tag", "clear_button", ...
+    "constraints", c_button);
 
     //Empty panel
     c_button = createConstraints("gridbag", [7 1 1 1], [0 0], "none", "right", [100 0]);
     est_panel = uicontrol(button_frame, ...
-        "style", "frame", ...
-        "backgroundcolor", [1 1 1], ...
-        "constraints", c_button);
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "constraints", c_button);
 
     return
 endfunction
@@ -385,9 +385,9 @@ function change_r(r)
         r=slider_r.Value
         r=0.007+r*(2-0.08)/100
     end
-        value_r.String=msprintf("%.3f", r)
-        draw_initial_point(0.007+slider_r.Value*(2-0.08)/100, slider_theta.value*360/100, ...
-            slider_speed.Value*3/100, slider_dir.value*360/100, %F);
+    value_r.String=msprintf("%.3f", r)
+    draw_initial_point(0.007+slider_r.Value*(2-0.08)/100, slider_theta.value*360/100, ...
+    slider_speed.Value*3/100, slider_dir.value*360/100, %F);
 endfunction
 
 
@@ -407,9 +407,9 @@ function change_theta(theta)
         theta=slider_theta.Value
         theta=theta*360/100
     end
-        value_theta.String=msprintf("%.0f", theta)
-        draw_initial_point(0.007+slider_r.Value*(2-0.08)/100, slider_theta.value*360/100, ..
-        slider_speed.Value*3/100, slider_dir.value*360/100, %F);
+    value_theta.String=msprintf("%.0f", theta)
+    draw_initial_point(0.007+slider_r.Value*(2-0.08)/100, slider_theta.value*360/100, ..
+    slider_speed.Value*3/100, slider_dir.value*360/100, %F);
 endfunction
 
 function change_speed(speed)
@@ -450,7 +450,7 @@ function change_dir(dir)
 
     value_dir.String = msprintf("%.0f", dir)
     draw_initial_point(0.007 + slider_r.Value * (2 - 0.08) / 100, slider_theta.value * 360 / 100, ...
-        slider_speed.Value * 3 / 100, slider_dir.value * 360 / 100, %F);
+    slider_speed.Value * 3 / 100, slider_dir.value * 360 / 100, %F);
 endfunction
 
 function start_simu()
@@ -464,7 +464,7 @@ function start_simu()
     slider_dir   = get("slider_dir");
     t     = 0:0.02:15;
     Y = calculate_traj(0.007 + slider_r.Value * (2 - 0.08) / 100, slider_theta.value * 360 / 100, ...
-        slider_speed.Value * 3 / 100, slider_dir.value * 360 / 100, t)
+    slider_speed.Value * 3 / 100, slider_dir.value * 360 / 100, t)
     x = Y(1, :)
     y = Y(3, :)
     r = 0.1; //bias to have the curve above the surface
index 05263b0..cfa2c70 100644 (file)
@@ -162,7 +162,11 @@ function ilib_gen_Make_win32(name, ..
                 MEXCFLAGS = "-Dmexfunction_=mex" + table(i,2) + "_ -DmexFunction=mex_" + table(i,2);
                 MEXFFLAGS = "-Dmexfunction=mex" + table(i,2);
                 if table(i,3)=="cmex" then
-                    filenameMex = table(i,2) + ".c";
+                    if find(listfiles() == table(i,2)+".cpp") then
+                        filenameMex = table(i,2) + ".cpp";
+                    else
+                        filenameMex = table(i,2) + ".c";
+                    end
                 else
                     filenameMex = table(i,2) + ".f";
                 end
index 1a6d4e8..cd912cb 100644 (file)
@@ -65,10 +65,9 @@ void sciqsort(char *a, char *tab, int flag, int n, int es, int es1, int (*cmp)()
 {
     char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
     char *taba, *tabb, *tabc, *tabd, *tabl, *tabm, *tabn;
-    int d, dind, r, r1,  swap_cnt;
+    int d, dind, r, r1;
 
 loop:
-    swap_cnt = 0;
     if (n < 7)   /* Insertion sort on smallest arrays */
     {
         for (pm = a + es, tabm = tab + es1 ; pm < (char *) a + n * es; pm += es, tabm += es1 )
@@ -134,7 +133,6 @@ loop:
             if (r == 0)  /*The pivot and  value pointed to by pb are equal */
             {
                 /* store the equal value at the location pa and increase pa */
-                swap_cnt = 1;
                 swapind(taba, tabb);
                 taba += es1;
                 swap(pa, pb);
@@ -151,7 +149,6 @@ loop:
             if (r == 0)  /*The pivot and  value pointed to by pc are equal */
             {
                 /* store the equal value at the location pd and decrease pd */
-                swap_cnt = 1;
                 swapind(tabc, tabd);
                 tabd -= es1;
                 swap(pc, pd);
@@ -180,7 +177,6 @@ loop:
         tabb += es1;
         tabc -= es1;
         swap(pb, pc);
-        swap_cnt = 1;
         /* increase pb and decrease pc */
         pb += es;
         pc -= es;
@@ -190,18 +186,6 @@ loop:
         */
     }
 
-    if (swap_cnt == 0)    /* Switch to insertion sort */
-    {
-        for (pm = a + es, tabm = tab + es1 ; pm < (char *) a + n * es; pm += es, tabm += es1)
-        {
-            for (pl = pm, tabl = tabm ; pl > (char *) a && cmp(pl - es, pl, tabl - es1, tabl, flag) > 0;  pl -= es, tabl -= es1)
-            {
-                swapind(tabl, tabl - es1);
-                swap(pl, pl - es);
-            }
-        }
-        return;
-    }
     /* put the equal values in the middle */
     pn = a + n * es;
     r = (int)Min(pa - (char *)a, pb - pa);
diff --git a/scilab/modules/elementary_functions/tests/nonreg_tests/bug_13358.dia.ref b/scilab/modules/elementary_functions/tests/nonreg_tests/bug_13358.dia.ref
new file mode 100644 (file)
index 0000000..e0caf20
--- /dev/null
@@ -0,0 +1,45 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 13358-->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13358
+//
+// <-- Short Description -->
+// intersect and unique are slower due to gsort behaving in o(n^2) on sorted arrays
+//
+// <-- CLI SHELL MODE -->
+err = 0.15
+ err  =
+    0.15  
+seed = getdate("s");
+rand("seed", seed);
+nb_test = 5;
+A = 1:1E5;
+B = 2:2:2E5;
+delta_i = [];
+delta_u = [];
+delta_s = [];
+// Checks relative time between sort on a random table and a sorted one is within 15%
+for i = 1:nb_test
+    A_rand = rand(1, 1E5);
+    B_rand = rand(1, 1E5);
+    tic(); intersect(A, B); t_elapsed_sorted = toc();
+    tic(); intersect(A_rand, B_rand); t_elapsed_rand = toc();
+    delta_i = [delta_i, abs(t_elapsed_rand - t_elapsed_sorted) / (t_elapsed_rand + t_elapsed_sorted)];
+    tic(); unique(A); t_elapsed_sorted = toc();
+    tic(); unique(A_rand); t_elapsed_rand = toc();
+    delta_u = [delta_u, abs(t_elapsed_rand - t_elapsed_sorted) / (t_elapsed_rand + t_elapsed_sorted)];
+    tic(); gsort(1:1E6); t_elapsed_sorted = toc();
+    tic(); gsort(rand(1,1E6)); t_elapsed_rand = toc();
+    delta_s = [delta_s, abs(t_elapsed_rand - t_elapsed_sorted) / (t_elapsed_rand + t_elapsed_sorted)];
+end
+assert_checktrue(mean(delta_i) <= err);
+assert_checktrue(mean(delta_u) <= err);
+assert_checktrue(mean(delta_s) <= err);
diff --git a/scilab/modules/elementary_functions/tests/nonreg_tests/bug_13358.tst b/scilab/modules/elementary_functions/tests/nonreg_tests/bug_13358.tst
new file mode 100644 (file)
index 0000000..287fbbc
--- /dev/null
@@ -0,0 +1,48 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 13358-->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13358
+//
+// <-- Short Description -->
+// intersect and unique are slower due to gsort behaving in o(n^2) on sorted arrays
+//
+
+// <-- CLI SHELL MODE -->
+
+err = 0.15
+seed = getdate("s");
+rand("seed", seed);
+nb_test = 5;
+A = 1:1E5;
+B = 2:2:2E5;
+delta_i = [];
+delta_u = [];
+delta_s = [];
+
+// Checks relative time between sort on a random table and a sorted one is within 15%
+for i = 1:nb_test
+    A_rand = rand(1, 1E5);
+    B_rand = rand(1, 1E5);
+    tic(); intersect(A, B); t_elapsed_sorted = toc();
+    tic(); intersect(A_rand, B_rand); t_elapsed_rand = toc();
+    delta_i = [delta_i, abs(t_elapsed_rand - t_elapsed_sorted) / (t_elapsed_rand + t_elapsed_sorted)];
+
+    tic(); unique(A); t_elapsed_sorted = toc();
+    tic(); unique(A_rand); t_elapsed_rand = toc();
+    delta_u = [delta_u, abs(t_elapsed_rand - t_elapsed_sorted) / (t_elapsed_rand + t_elapsed_sorted)];
+
+    tic(); gsort(1:1E6); t_elapsed_sorted = toc();
+    tic(); gsort(rand(1,1E6)); t_elapsed_rand = toc();
+    delta_s = [delta_s, abs(t_elapsed_rand - t_elapsed_sorted) / (t_elapsed_rand + t_elapsed_sorted)];
+end
+
+assert_checktrue(mean(delta_i) <= err);
+assert_checktrue(mean(delta_u) <= err);
+assert_checktrue(mean(delta_s) <= err);
index 08191c5..df80a9f 100644 (file)
@@ -16,7 +16,7 @@
 // mget and mgetl accepted decimal values as number of lines.
 curdir = pwd();
 cd(TMPDIR);
-fd = mopen("test", "wr"); // Open a file
+fd = mopen("test", "w"); // Open a file
 refMsg = msprintf(_("%s: Wrong value for input argument #%d: A positive integer value expected.\n"), "mget", 1);
 assert_checkerror("mget(-1, ""d"", fd)", refMsg);
 refMsg = msprintf(_("%s: Wrong value for input argument #%d: A positive integer value expected.\n"), "mget", 1);
index 74206bc..5c96357 100644 (file)
@@ -18,7 +18,7 @@
 curdir = pwd();
 cd(TMPDIR);
 
-fd = mopen("test", "wr"); // Open a file
+fd = mopen("test", "w"); // Open a file
 
 refMsg = msprintf(_("%s: Wrong value for input argument #%d: A positive integer value expected.\n"), "mget", 1);
 assert_checkerror("mget(-1, ""d"", fd)", refMsg);
index 1b74c69..4cbeefd 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2008 - DIGITEO
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
 //
 // This file is released under the 3-clause BSD license. See COPYING-BSD.
 
@@ -7,36 +8,18 @@ funcprot(0);
 
 function demo_custom()
 
-    global margin_x;
-    global margin_y;
-
-    global padding_x;
-    global padding_y;
-
-    global frame_w;
-    global frame_h;
-
-    global plot_w;
-    global plot_h;
-
     // Parameters
     // =========================================================================
 
     frame_w      = 300;     // Frame width
     frame_h      = 765;     // Frame height
 
-    plot_w       = 600;     // Plot width
+    plot_w       = 500;     // Plot width
     plot_h       = frame_h; // Plot height
 
     margin_x     = 15;      // Horizontal margin between each elements
     margin_y     = 15;      // Vertical margin between each elements
 
-    padding_x    = 10;      // Horizontal padding between each elements
-    padding_y    = 10;      // Vertical padding between each elements
-
-    button_w     = 100;     // Button width
-    button_h     = 30;      // Button height
-
     defaultfont  = "arial"; // Default Font
 
     // Figure creation
@@ -45,64 +28,69 @@ function demo_custom()
     axes_w       = 3*margin_x + frame_w + plot_w; // axes width
     axes_h       = 2*margin_y + frame_h;          // axes height (100 => toolbar height)
 
-    demo_fig = figure(100001);
-    clf(demo_fig,"reset");
+    fig_handle = figure( ...
+    "infobar_visible", "off", ...
+    "menubar", "none", ...
+    "toolbar", "none", ...
+    "default_axes", "on", ...
+    "layout", "gridbag", ...
+    "visible", "off", ...
+    "background", -2, ...
+    "figure_position", [0 0], ...
+    "axes_size", [axes_w axes_h], ...
+    "figure_name", _("Customize your complex function"));
+
+    // The plot will be in the right 2/3 of the figure
+    a = gca();
+    a.axes_bounds = [1/3 1 2/3 1];
+    a.tight_limits = "on";
+
+    c = createConstraints("gridbag", [2 1 2 1], [1 1], "vertical", "right");
+    // Create an empty panel on the right to occupy the 3/4 of the screen (figure plot)
+    empty_frame = uicontrol(fig_handle, "style", "frame","constraints", c);
+
+    c = createConstraints("gridbag", [1 1 1 5], [0.25 1], "both", "left", [0 0], [150 0]);
+    u = uicontrol(fig_handle, ...
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "layout", "border", ...
+    "constraints", c);
+
+    // Add top and bottom empty panels to pad the upcoming control panel
+    c = createConstraints("border", "top", [0 20]);
+    top = uicontrol(u, "style", "frame", "backgroundcolor", [1 1 1], "constraints", c);
+    c = createConstraints("border", "bottom", [0 20]);
+    bottom = uicontrol(u, "style", "frame", "backgroundcolor", [1 1 1], "constraints", c);
+
+    // Border for the control parameters frame
+    b_f_controlParams = createBorderFont("", 18);
+    b_l_controlParams = createBorder("line", "navy", 2);
+    b_controlParams   = createBorder("titled", b_l_controlParams, _("Control panel"), "center", "top", b_f_controlParams, "navy");
+
+    control_frame = uicontrol(u, ...
+    "style", "frame", ...
+    "backgroundcolor", [1 1 1], ...
+    "border", b_controlParams, ...
+    "layout", "gridbag", ...
+    "tag", "control_frame");
+
     demo_viewCode("demo_custom.dem.sce");
 
-    demo_fig.background      = -2;
-    demo_fig.color_map       = jetcolormap(128);
-    demo_fig.figure_position = [0 0];
-    demo_fig.axes_size       = [axes_w axes_h];
-    demo_fig.figure_name     = gettext("Customize your complex function");
+    fig_handle.color_map = jetcolormap(128);
 
     // Frames creation [Control Panel]
     // =========================================================================
 
-    my_frame = uicontrol( ...
-    "parent"              , demo_fig,...
-    "relief"              , "groove",...
-    "style"               , "frame",...
-    "units"               , "pixels",...
-    "position"            , [ margin_x margin_y frame_w frame_h],...
-    "fontname"            , "arial",...
-    "fontunits"           , "points",...
-    "fontsize"            , 13,...
-    "fontweight"          , "bold", ...
-    "horizontalalignment" , "center", ...
-    "background"          , [1 1 1], ...
-    "tag"                 , "frame_control" ...
-    );
-
-    // Frame title
-    my_frame_title = uicontrol( ...
-    "parent"              , demo_fig,...
-    "style"               , "text",...
-    "string"              , "Control Panel",...
-    "units"               , "pixels",...
-    "position"            , [ 30+margin_x margin_y+frame_h-10 frame_w-60 20 ],...
-    "fontname"            , defaultfont,...
-    "fontunits"           , "points",...
-    "fontsize"            , 14,...
-    "horizontalalignment" , "center", ...
-    "background"          , [1 1 1], ...
-    "tag"                 , "title_frame_control" ...
-    );
-
-    // explanatory text
+    // Explanatory text
     // =========================================================================
 
-    my_exptext_w     = frame_w-2*padding_x
-    my_exptext_h     = 350;
-    my_exptext_pos_x = padding_x+margin_x;
-    my_exptext_pos_y = (margin_y+frame_h) - 4*padding_y - my_exptext_h;
-
     my_exptext_string = "";
 
     my_exptext_string = my_exptext_string + "<html>";
 
     my_exptext_string = my_exptext_string + "<center>";
     my_exptext_string = my_exptext_string + "<img src=""file:///"+SCI+"/modules/graphics/demos/cmplxfunc/warning.png"+""">";
-    my_exptext_string = my_exptext_string + "BE CAREFUL NOTHING IS PROTECTED";
+    my_exptext_string = my_exptext_string + "BE CAREFUL, NOTHING IS PROTECTED";
     my_exptext_string = my_exptext_string + "</center>";
 
     my_exptext_string = my_exptext_string + "<hr><br />";
@@ -112,52 +100,68 @@ function demo_custom()
     my_exptext_string = my_exptext_string + "<div style=''text-align:justify; margin-top:5px; width:260;''>";
 
     my_exptext_string = my_exptext_string + "1. define the  function by a correct ";
-    my_exptext_string = my_exptext_string + "string where  the complex var must ";
-    my_exptext_string = my_exptext_string + "be z ; also  as  the function will ";
-    my_exptext_string = my_exptext_string + "be evaluated  on  a matrix  don''t ";
-    my_exptext_string = my_exptext_string + "forget the . to operate in element ";
-    my_exptext_string = my_exptext_string + "wize meaning ; examples :";
+    my_exptext_string = my_exptext_string + "string where the complex var must ";
+    my_exptext_string = my_exptext_string + "be z. Also, as the function will ";
+    my_exptext_string = my_exptext_string + "be evaluated on a matrix, don''t forget ";
+    my_exptext_string = my_exptext_string + "the . to operate elementwise. Examples: ";
 
     my_exptext_string = my_exptext_string + "</div>";
 
 
-    my_exptext_string = my_exptext_string + "<pre>z.^2     (z+1).*(z-1)   (1)./(z+2)</pre>";
-    my_exptext_string = my_exptext_string + "<pre>sqrt(z)  (z+%i).*(z-%i) 1+2*z+z.^2</pre>";
+    my_exptext_string = my_exptext_string + "<pre>    z.^2       (z+1).*(z-1)     (1)./(z+2)</pre>";
+    my_exptext_string = my_exptext_string + "<pre>    sqrt(z)    (z+%i).*(z-%i)   1+2*z+z.^2</pre>";
 
     my_exptext_string = my_exptext_string + "<div style=''text-align:justify; margin-top:5px; width:260;''>";
-    my_exptext_string = my_exptext_string + "2. define the type of the domain string Square or Disk";
+    my_exptext_string = my_exptext_string + "2. define the type of the domain: Square or Disk,";
     my_exptext_string = my_exptext_string + "</div>";
 
 
     my_exptext_string = my_exptext_string + "<div style=''text-align:justify; margin-top:5px; width:260;''>";
-    my_exptext_string = my_exptext_string + "3. define the ""radius"" R of the domain"+ "<br />";
+    my_exptext_string = my_exptext_string + "3. define the ""radius"" R of the domain,"+ "<br />";
     my_exptext_string = my_exptext_string + "</div>";
 
 
     my_exptext_string = my_exptext_string + "<div style=''text-align:justify; margin-top:5px; width:260;''>";
-    my_exptext_string = my_exptext_string + "4. may be your function has a kind of ";
-    my_exptext_string = my_exptext_string + "discontinuity on Ox  or  Oy => put ";
-    my_exptext_string = my_exptext_string + "the string Ox or Oy or No if not";
+    my_exptext_string = my_exptext_string + "4. should your function have some kind of ";
+    my_exptext_string = my_exptext_string + "discontinuity on Ox or Oy => check ";
+    my_exptext_string = my_exptext_string + "Ox or Oy. Otherwise check No.";
     my_exptext_string = my_exptext_string + "</div>";
 
     my_exptext_string = my_exptext_string + "</html>";
 
 
-    // Function definition : frame
+    // Explanatory text : frame
 
+    b_f_expTxt = createBorderFont("", 12);
+    b_l_expTxt = createBorder("line", "navy", 1);
+    b_expTxt   = createBorder("titled", b_l_expTxt, _(""), "center", "top", b_f_expTxt, "navy");
+
+    // Border for the explanatory text frame
+    c = createConstraints("gridbag", [1 1 1 1], [1 1], "both", "upper");
+    my_exptext_frame = uicontrol( ...
+    "parent"              , control_frame,...
+    "style"               , "frame",...
+    "layout"              , "gridbag", ...
+    "border"              , b_expTxt, ...
+    "units"               , "pixels",...
+    "background"          , [1 1 1], ...
+    "constraint"          , c, ...
+    "tag"                 , "my_exptext_frame" ...
+    );
+
+    // Explanatory text : actual text
+
+    c = createConstraints("gridbag", [1 1 1 1], [1 1], "both", "upper");
     my_exptext_box = uicontrol( ...
-    "parent"              , demo_fig,...
-    "relief"              , "groove",...
+    "parent"              , my_exptext_frame,...
     "style"               , "text",...
     "units"               , "pixels",...
     "string"              , my_exptext_string,...
-    "position"            , [ my_exptext_pos_x my_exptext_pos_y my_exptext_w my_exptext_h],...
-    "fontname"            , "arial",...
+    "fontname"            , defaultfont,...
     "fontunits"           , "points",...
     "fontsize"            , 9,...
-    "horizontalalignment" , "left", ...
-    "verticalalignment"   , "top", ...
     "background"          , [1 1 1], ...
+    "constraint"          , c, ...
     "tag"                 , "my_exptext_box" ...
     );
 
@@ -165,276 +169,262 @@ function demo_custom()
     // Function definition
     // =========================================================================
 
-    my_fundef_frame_w     = frame_w-2*padding_x
-    my_fundef_frame_h     = 80;
-    my_fundef_frame_pos_x = padding_x+margin_x;
-    my_fundef_frame_pos_y = my_exptext_pos_y - 2*padding_y - my_fundef_frame_h;
-
     // Function definition : frame
 
+    // Border for the function definition frame
+    b_f_funDef = createBorderFont("", 12);
+    b_l_funDef = createBorder("line", "navy", 1);
+    b_funDef   = createBorder("titled", b_l_funDef, _("Function definition"), "center", "top", b_f_funDef, "navy");
+
+    c = createConstraints("gridbag", [1 2 1 1], [1 1], "both", "upper");
     my_fundef_frame = uicontrol( ...
-    "parent"              , demo_fig,...
-    "relief"              , "groove",...
+    "parent"              , control_frame,...
     "style"               , "frame",...
+    "layout"              , "gridbag", ...
+    "border"              , b_funDef, ...
     "units"               , "pixels",...
-    "position"            , [ my_fundef_frame_pos_x my_fundef_frame_pos_y my_fundef_frame_w my_fundef_frame_h],...
-    "fontname"            , "arial",...
+    "fontname"            , defaultfont,...
     "fontunits"           , "points",...
     "fontsize"            , 13,...
     "fontweight"          , "bold", ...
-    "horizontalalignment" , "center", ...
     "background"          , [1 1 1], ...
+    "constraints"         , c, ...
     "tag"                 , "my_fundef_frame" ...
     );
 
-    // Function definition : Frame title
+    // Function definition : Text "f(z) = "
 
-    my_fundef_frame_title = uicontrol( ...
-    "parent"              , demo_fig,...
-    "style"               , "text",...
-    "string"              , "Function definition",...
-    "units"               , "pixels",...
-    "position"            , [ 70+my_fundef_frame_pos_x my_fundef_frame_pos_y+my_fundef_frame_h-9 my_fundef_frame_w-140 18 ],...
-    "fontname"            , defaultfont,...
-    "fontunits"           , "points",...
-    "fontsize"            , 11,...
-    "horizontalalignment" , "center", ...
-    "background"          , [1 1 1], ...
-    "tag"                 , "my_fundef_frame_title" ...
-    );
+    c = createConstraints("gridbag", [1 1 1 1], [1/12 1], "both", "upper");
+    my_fundef_editbox = uicontrol( ...
+    "parent"             , my_fundef_frame,...
+    "style"              , "text",...
+    "string"              , "f(z) = ", ...
+    "fontname"           , defaultfont,...
+    "fontunits"          , "points",...
+    "fontsize"           , 11,...
+    "background"         , [1 1 1], ...
+    "constraint"         , c, ...
+    "tag"                , "my_fundef_editbox");
 
     // Function definition : Edit box
 
+    c = createConstraints("gridbag", [2 1 1 1], [12 1], "both", "upper");
     my_fundef_editbox = uicontrol( ...
-    "parent"             , demo_fig,...
+    "parent"             , my_fundef_frame,...
     "style"              , "edit",...
-    "position"           , [ my_fundef_frame_pos_x+10 my_fundef_frame_pos_y+my_fundef_frame_h-60 my_fundef_frame_w-25 30],...
-    "horizontalalignment", "left",...
     "fontname"           , defaultfont,...
     "fontunits"          , "points",...
     "fontsize"           , 11,...
     "string"             , "(1)./((z+2).*(2-z))", ...
     "callback"           , "update_fundef()",...
+    "constraint"         , c, ...
     "tag"                , "my_fundef_editbox");
 
+    // Function definition : message bar
+
+    c = createConstraints("gridbag", [1 2 2 1], [1 1], "both", "upper");
+    my_exptext_bar = uicontrol( ...
+    "parent"              , my_fundef_frame,...
+    "style"               , "text",...
+    "string"              , " ", ...
+    "units"               , "pixels",...
+    "fontname"            , defaultfont,...
+    "fontunits"           , "points",...
+    "fontsize"            , 11,...
+    "background"          , [1 1 1], ...
+    "constraint"          , c, ...
+    "tag"                 , "my_funDef_bar" ...
+    );
 
 
     // Domain type
     // =========================================================================
 
-    my_dt_frame_w     = frame_w-2*padding_x
-    my_dt_frame_h     = 60;
-    my_dt_frame_pos_x = padding_x+margin_x;
-    my_dt_frame_pos_y = my_fundef_frame_pos_y - 2*padding_y - my_dt_frame_h;
-
     // Domain type : frame
 
+    // Border for the domain type frame
+    b_f_domain = createBorderFont("", 12);
+    b_l_domain = createBorder("line", "navy", 1);
+    b_domain   = createBorder("titled", b_l_domain, _("Domain type"), "center", "top", b_f_domain, "navy");
+
+    c = createConstraints("gridbag", [1 3 1 1], [1 1], "both", "upper");
     my_dt_frame = uicontrol( ...
-    "parent"              , demo_fig,...
-    "relief"              , "groove",...
+    "parent"              , control_frame,...
     "style"               , "frame",...
+    "layout"              , "gridbag", ...
+    "border"              , b_domain, ...
     "units"               , "pixels",...
-    "position"            , [ my_dt_frame_pos_x my_dt_frame_pos_y my_dt_frame_w my_dt_frame_h],...
-    "fontname"            , "arial",...
+    "fontname"            , defaultfont,...
     "fontunits"           , "points",...
     "fontsize"            , 13,...
     "fontweight"          , "bold", ...
-    "horizontalalignment" , "center", ...
     "background"          , [1 1 1], ...
+    "constraint"          , c, ...
     "tag"                 , "my_dt_frame" ...
     );
 
-    // Domain type : Frame title
-
-    my_dt_frame_title = uicontrol( ...
-    "parent"              , demo_fig,...
-    "style"               , "text",...
-    "string"              , "Domain type",...
-    "units"               , "pixels",...
-    "position"            , [ 100+my_dt_frame_pos_x my_dt_frame_pos_y+my_dt_frame_h-9 my_dt_frame_w-200 18 ],...
-    "fontname"            , defaultfont,...
-    "fontunits"           , "points",...
-    "fontsize"            , 9,...
-    "horizontalalignment" , "center", ...
-    "background"          , [1 1 1], ...
-    "tag"                 , "my_dt_frame_title" ...
-    );
-
     // Domain type : square
 
+    c = createConstraints("gridbag", [1 1 1 1], [1 1], "both", "upper");
     square_radio = uicontrol( ...
-    "parent"             , demo_fig,...
+    "parent"             , my_dt_frame,...
     "style"              , "radiobutton",...
     "string"             , "Square",...
-    "position"           , [ my_dt_frame_pos_x+10 my_dt_frame_pos_y+my_dt_frame_h-42 ((my_dt_frame_w-25)/2) 20],...
-    "horizontalalignment", "left",...
     "fontname"           , defaultfont,...
     "fontunits"          , "points",...
-    "fontsize"           , 10,...
+    "fontsize"           , 11,...
     "value"              , 0, ...
-    "background"          , [1 1 1], ...
+    "background"         , [1 1 1], ...
     "callback"           , "update_domain_type();",...
+    "constraints"        , c, ...
     "tag"                , "square_radio");
 
     // Domain type : Disk
 
+    c = createConstraints("gridbag", [2 1 1 1], [1 1], "both", "upper");
     disk_radio = uicontrol( ...
-    "parent"             , demo_fig,...
+    "parent"             , my_dt_frame,...
     "style"              , "radiobutton",...
     "string"             , "Disk",...
-    "position"           , [ my_dt_frame_pos_x+(my_dt_frame_w/2) my_dt_frame_pos_y+my_dt_frame_h-42 ((my_dt_frame_w-25)/2) 20],...
-    "horizontalalignment", "left",...
     "fontname"           , defaultfont,...
     "fontunits"          , "points",...
-    "fontsize"           , 10,...
+    "fontsize"           , 11,...
     "value"              , 1, ...
     "background"          , [1 1 1], ...
     "callback"           , "update_domain_type();",...
+    "constraints"        , c, ...
     "tag"                , "disk_radio");
 
+
     // Radius of the domain
     // =========================================================================
 
-    my_radius_frame_w     = frame_w-2*padding_x
-    my_radius_frame_h     = 80;
-    my_radius_frame_pos_x = padding_x+margin_x;
-    my_radius_frame_pos_y = my_dt_frame_pos_y - 2*padding_y - my_radius_frame_h;
+    // Radius of the domain : frame
 
-    // Function definition : frame
+    // Border for the radius frame
+    b_f_radius = createBorderFont("", 12);
+    b_l_radius = createBorder("line", "navy", 1);
+    b_radius   = createBorder("titled", b_l_radius, _("Radius of the domain"), "center", "top", b_f_radius, "navy");
 
+    c = createConstraints("gridbag", [1 4 1 1], [1 1], "both", "upper");
     my_radius_frame = uicontrol( ...
-    "parent"              , demo_fig,...
-    "relief"              , "groove",...
+    "parent"              , control_frame,...
     "style"               , "frame",...
+    "layout"              , "gridbag", ...
+    "border"              , b_radius, ...
     "units"               , "pixels",...
-    "position"            , [ my_radius_frame_pos_x my_radius_frame_pos_y my_radius_frame_w my_radius_frame_h],...
-    "fontname"            , "arial",...
+    "fontname"            , defaultfont,...
     "fontunits"           , "points",...
     "fontsize"            , 13,...
     "fontweight"          , "bold", ...
-    "horizontalalignment" , "center", ...
     "background"          , [1 1 1], ...
+    "constraint"          , c, ...
     "tag"                 , "my_radius_frame" ...
     );
 
-    // Function definition : Frame title
-
-    my_radius_frame_title = uicontrol( ...
-    "parent"              , demo_fig,...
-    "style"               , "text",...
-    "string"              , "Radius of the domain",...
-    "units"               , "pixels",...
-    "position"            , [ 50+my_radius_frame_pos_x my_radius_frame_pos_y+my_radius_frame_h-9 my_radius_frame_w-100 18 ],...
-    "fontname"            , defaultfont,...
-    "fontunits"           , "points",...
-    "fontsize"            , 11,...
-    "horizontalalignment" , "center", ...
-    "background"          , [1 1 1], ...
-    "tag"                 , "my_radius_frame_title" ...
-    );
-
-    // Function definition : Edit box
+    // Radius of the domain : Edit box
 
+    c = createConstraints("gridbag", [1 1 1 1], [1 1], "both", "upper");
     my_radius_editbox = uicontrol( ...
-    "parent"             , demo_fig,...
+    "parent"             , my_radius_frame,...
     "style"              , "edit",...
-    "position"           , [ my_radius_frame_pos_x+10 my_radius_frame_pos_y+my_radius_frame_h-60 my_radius_frame_w-25 30],...
-    "horizontalalignment", "left",...
     "fontname"           , defaultfont,...
     "fontunits"          , "points",...
     "fontsize"           , 11,...
     "string"             , "1.9", ...
     "callback"           , "update_radius()",...
+    "constraint"         , c, ...
     "tag"                , "my_radius_editbox");
 
+    // Radius of the domain : message bar
+
+    c = createConstraints("gridbag", [1 2 1 1], [1 1], "both", "upper");
+    my_exptext_bar = uicontrol( ...
+    "parent"              , my_radius_frame,...
+    "style"               , "text",...
+    "string"              , " ", ...
+    "units"               , "pixels",...
+    "fontname"            , defaultfont,...
+    "fontunits"           , "points",...
+    "fontsize"            , 11,...
+    "background"          , [1 1 1], ...
+    "constraint"          , c, ...
+    "tag"                 , "my_radius_bar" ...
+    );
+
 
-    // Cut on axe
+    // Cut on axes
     // =========================================================================
 
-    my_coa_frame_w     = frame_w-2*padding_x
-    my_coa_frame_h     = 60;
-    my_coa_frame_pos_x = padding_x+margin_x;
-    my_coa_frame_pos_y = my_radius_frame_pos_y - 2*padding_y - my_coa_frame_h;
+    // Cut on axes : frame
 
-    // Cut on axe : frame
+    // Border for the cut on axes frame
+    b_f_cut = createBorderFont("", 12);
+    b_l_cut = createBorder("line", "navy", 1);
+    b_cut   = createBorder("titled", b_l_cut, _("Cut on axes"), "center", "top", b_f_cut, "navy");
 
+    c = createConstraints("gridbag", [1 5 1 1], [1 1], "both", "upper");
     my_coa_frame = uicontrol( ...
-    "parent"              , demo_fig,...
-    "relief"              , "groove",...
+    "parent"              , control_frame,...
     "style"               , "frame",...
+    "layout"              , "gridbag", ...
+    "border"              , b_cut, ...
     "units"               , "pixels",...
-    "position"            , [ my_coa_frame_pos_x my_coa_frame_pos_y my_coa_frame_w my_coa_frame_h],...
-    "fontname"            , "arial",...
+    "fontname"            , defaultfont,...
     "fontunits"           , "points",...
     "fontsize"            , 13,...
     "fontweight"          , "bold", ...
-    "horizontalalignment" , "center", ...
     "background"          , [1 1 1], ...
+    "constraint"          , c, ...
     "tag"                 , "my_coa_frame" ...
     );
 
-    // Cut on axe : Frame title
-
-    my_coa_frame_title = uicontrol( ...
-    "parent"              , demo_fig,...
-    "style"               , "text",...
-    "string"              , "Cut on axes",...
-    "units"               , "pixels",...
-    "position"            , [ 100+my_coa_frame_pos_x my_coa_frame_pos_y+my_coa_frame_h-9 my_coa_frame_w-200 18 ],...
-    "fontname"            , defaultfont,...
-    "fontunits"           , "points",...
-    "fontsize"            , 9,...
-    "horizontalalignment" , "center", ...
-    "background"          , [1 1 1], ...
-    "tag"                 , "my_coa_frame_title" ...
-    );
-
-    // Cut on axe : Ox
+    // Cut on axes : Ox
 
+    c = createConstraints("gridbag", [1 1 1 1], [1 1], "both", "upper");
     ox_radio = uicontrol( ...
-    "parent"             , demo_fig,...
+    "parent"             , my_coa_frame,...
     "style"              , "radiobutton",...
     "string"             , "Ox",...
-    "position"           , [ my_coa_frame_pos_x+10 my_coa_frame_pos_y+my_coa_frame_h-42 (my_coa_frame_w-25)/3 20],...
-    "horizontalalignment", "left",...
     "fontname"           , defaultfont,...
     "fontunits"          , "points",...
-    "fontsize"           , 10,...
+    "fontsize"           , 11,...
     "value"              , 0, ...
     "background"         , [1 1 1], ...
     "callback"           , "update_cao();",...
+    "constraint"         , c, ...
     "tag"                , "ox_radio");
 
-    // Cut on axe : Oy
+    // Cut on axes : Oy
 
+    c = createConstraints("gridbag", [2 1 1 1], [1 1], "both", "upper");
     oy_radio = uicontrol( ...
-    "parent"             , demo_fig,...
+    "parent"             , my_coa_frame,...
     "style"              , "radiobutton",...
     "string"             , "Oy",...
-    "position"           , [ my_coa_frame_pos_x+(my_coa_frame_w/3) my_coa_frame_pos_y+my_coa_frame_h-42 (my_coa_frame_w-25)/3 20],...
-    "horizontalalignment", "left",...
     "fontname"           , defaultfont,...
     "fontunits"          , "points",...
-    "fontsize"           , 10,...
+    "fontsize"           , 11,...
     "value"              , 0, ...
     "background"         , [1 1 1], ...
     "callback"           , "update_cao();",...
+    "constraint"          , c, ...
     "tag"                , "oy_radio");
 
-    // Cut on axe : No
+    // Cut on axes : No
 
+    c = createConstraints("gridbag", [3 1 1 1], [1 1], "both", "upper");
     no_radio = uicontrol( ...
-    "parent"             , demo_fig,...
+    "parent"             , my_coa_frame,...
     "style"              , "radiobutton",...
     "string"             , "No",...
-    "position"           , [ my_coa_frame_pos_x+(2*(my_coa_frame_w/3)) my_coa_frame_pos_y+my_coa_frame_h-42 (my_coa_frame_w-25)/3 20],...
-    "horizontalalignment", "left",...
     "fontname"           , defaultfont,...
     "fontunits"          , "points",...
-    "fontsize"           , 10,...
+    "fontsize"           , 11,...
     "value"              , 1, ...
     "background"         , [1 1 1], ...
     "callback"           , "update_cao();",...
+    "constraint"          , c, ...
     "tag"                , "no_radio");
 
     // Default Values
@@ -447,20 +437,19 @@ function demo_custom()
     global my_e;
 
 
-    my_fundef_val      = "(1)./((z+2).*(2-z))";
-    my_dt_val          = "Disk";
-    my_radius          = 1.9;
-    my_typeCut         = "No";
+    my_fundef_val = "(1)./((z+2).*(2-z))";
+    my_dt_val     = "Disk";
+    my_radius     = 1.9;
+    my_typeCut    = "No";
 
-    my_e               = 0.001;
-    theta              = -110;
-    alpha              = 75;
+    my_e          = 0.001;
+    theta         = -110;
+    alpha         = 75;
 
     deff("Z=f(z)","Z="+my_fundef_val);
 
-    demo_fig.immediate_drawing = "off";
     PlotCmplxFunc(my_radius,my_e,my_dt_val,my_typeCut,[40 20],"f",theta,alpha,[0;0]);
-    demo_fig.immediate_drawing = "on";
+    fig_handle.visible = "on";
 
 endfunction
 
@@ -472,7 +461,24 @@ function update_fundef()
     global my_typeCut;
     global my_e;
 
-    my_fundef_val = get(gcbo,"string");
+    my_fundef_val_tmp = get(gcbo,"string");
+
+    if strchr(my_fundef_val_tmp, "z") == "" then
+        updateStatusBar("my_funDef_bar", _("Function should contain ""z"""), [1 0 0]);
+        return
+    end
+
+    try // Try f(z) on a simple matrix
+        ieeeMode = ieee();
+        ieee(2);
+        execstr(strsubst(my_fundef_val_tmp, "z", "[1 2 3; 1 2 3]"));
+        ieee(ieeeMode);
+    catch
+        updateStatusBar("my_funDef_bar", _("Wrong definition of f(z)"), [1 0 0]);
+        return
+    end
+
+    my_fundef_val = my_fundef_val_tmp;
 
     // Delete the old plots
 
@@ -483,8 +489,8 @@ function update_fundef()
     a = gca(); delete(a);
     a = gca(); delete(a);
 
-    theta              = -110;
-    alpha              = 75;
+    theta = -110;
+    alpha = 75;
 
     deff("Z=f(z)","Z="+my_fundef_val);
 
@@ -520,8 +526,8 @@ function update_domain_type()
     a = gca(); delete(a);
     a = gca(); delete(a);
 
-    theta              = -110;
-    alpha              = 75;
+    theta = -110;
+    alpha = 75;
 
     deff("Z=f(z)","Z="+my_fundef_val);
 
@@ -549,7 +555,19 @@ function update_radius()
     global my_typeCut;
     global my_e;
 
-    my_radius = evstr(get(gcbo,"string"));
+    try
+        my_radius_tmp = evstr(get(gcbo,"string"));
+    catch
+        updateStatusBar("my_radius_bar", _("Radius should be real and finite"), [1 0 0]);
+        return
+    end
+
+    if ~isscalar(my_radius_tmp) | and(type(my_radius_tmp) <> [1 8]) | ~isreal(my_radius_tmp) | isinf(my_radius_tmp) then
+        updateStatusBar(_("Radius should be real and finite"), [1 0 0]);
+        return
+    else
+        my_radius = my_radius_tmp;
+    end
 
     // Delete the old plots
 
@@ -560,8 +578,8 @@ function update_radius()
     a = gca(); delete(a);
     a = gca(); delete(a);
 
-    theta              = -110;
-    alpha              = 75;
+    theta = -110;
+    alpha = 75;
 
     deff("Z=f(z)","Z="+my_fundef_val);
 
@@ -598,8 +616,8 @@ function update_cao()
     a = gca(); delete(a);
     a = gca(); delete(a);
 
-    theta              = -110;
-    alpha              = 75;
+    theta = -110;
+    alpha = 75;
 
     deff("Z=f(z)","Z="+my_fundef_val);
 
@@ -639,7 +657,7 @@ function []=PlotCmplxFunc(R,e,TypeDomain,TypeCut,n,StrFunc,theta,alpha,DomReal)
 
     // computes the facets
 
-    [xr,yr,zr,xi,yi,zi] = CmplxFacets(R,e,TypeDomain,TypeCut,n,StrFunc)
+    [xr,yr,zr,xi,yi,zi] = CmplxFacets(R,e,TypeDomain,TypeCut,n,StrFunc);
 
     // draw
     // ============================================
@@ -656,22 +674,22 @@ function []=PlotCmplxFunc(R,e,TypeDomain,TypeCut,n,StrFunc,theta,alpha,DomReal)
     Rs = string(R);
 
     if TypeDomain == "Square" then
-        end_title = " Function on [-"+Rs+","+Rs+"]x[-"+Rs+","+Rs+"]"
+        end_title = " function on [-"+Rs+","+Rs+"]x[-"+Rs+","+Rs+"]"
     else
-        end_title = " Function on D(0,R="+Rs+")"
+        end_title = " function on D(0,R="+Rs+")"
     end
 
     if StrFunc == "f" then
-        the_title = "Your Custom (named f) Complex" + end_title;
+        the_title = "Your custom (named f) complex" + end_title;
     else
-        the_title = "The Complex " + StrFunc + end_title;
+        the_title = "The complex " + StrFunc + end_title;
     end
 
     xtitle(the_title);
 
     my_title_axes.title.text       = the_title;
     my_title_axes.title.font_size  = 3;
-    my_title_axes.margins     = [ 0.08 0.08 0.08 0.08 ]
+    my_title_axes.margins     = [ 0.15 0.08 0.08 0.08 ]
 
     // plot Im(z)
     // ============================================
@@ -680,12 +698,13 @@ function []=PlotCmplxFunc(R,e,TypeDomain,TypeCut,n,StrFunc,theta,alpha,DomReal)
     plot3d(xi,yi,zi,theta,alpha,"Re(z)@Im(z)@",[2 6 4]);
 
     my_IM_axes = gca();
-    my_IM_axes.axes_bounds = [0.1, 0.05, 1, 0.5];
+    my_IM_axes.axes_bounds = [0.16, 0.05, 1, 0.5];
     my_IM_plot             = my_IM_axes.children;
     my_IM_plot.color_flag  = 1;
 
     xtitle("Im("+StrFunc+"(z))");
-    my_IM_axes.margins     = [0.2, 0.2, 0.2, 0.2];
+    my_IM_axes.margins      = [0.2, 0.2, 0.2, 0.2];
+    my_IM_axes.cube_scaling = "on";
 
     // plot Re(z) + the real restriction
     // ============================================
@@ -694,13 +713,13 @@ function []=PlotCmplxFunc(R,e,TypeDomain,TypeCut,n,StrFunc,theta,alpha,DomReal)
     plot3d(xr,yr,zr,theta,alpha,"Re(z)@Im(z)@",[2 6 4]);
 
     my_RE_axes = gca();
-    my_RE_axes.axes_bounds = [0.1, 0.5, 1, 0.5];
-    my_RE_axes.margins      = [ 0.2 0.2 0.2 0.2 ];
+    my_RE_axes.axes_bounds = [0.16, 0.5, 1, 0.5];
     my_RE_plot             = my_RE_axes.children;
     my_RE_plot.color_flag  = 1;
 
     xtitle("Re("+StrFunc+"(z))");
-    my_RE_axes.margins     = [ 0.2 0.2 0.2 0.2 ];
+    my_RE_axes.margins      = [0.2, 0.2, 0.2, 0.2];
+    my_RE_axes.cube_scaling = "on";
 
     // real function in yellow
     // ============================================
@@ -769,6 +788,32 @@ function [xr,yr,zr,xi,yi,zi] = CmplxFacets(R,e,TypeDomain,TypeCut,n,StrFunc)
 
 endfunction
 
+// =============================================================================
+// updateStatusBar
+// + Update the string in the text frame
+// =============================================================================
+function updateStatusBar(tag,msg, msg_color)
+    time_active = 2; //Time the message is active in s
+
+    if argn(2) == 0 then
+        set(tag, "String", " ");
+        return
+    end
+
+    h = gcf();
+    set(tag, "Foregroundcolor", msg_color, "String", msg);
+
+    delta_time = 0;
+    timer()
+    while delta_time < time_active
+        delta_time = delta_time + timer();
+    end
+
+    if is_handle_valid(h)
+        updateStatusBar();
+    end
+endfunction
+
 funcprot(1);
 
 demo_custom();
index 9591eca..afd2fe6 100644 (file)
@@ -33,9 +33,9 @@
     <refsection>
         <title>Description</title>
         <para>
-            <literal>titlepage</literal> displays the matrix of strings <literal>str</literal> in the middle of 
+            <function>titlepage</function> displays the matrix of strings <varname>str</varname> in the middle of 
             the current graphics window
-            with a font as big as possible.
+            with a font as big as possible, depending on the current axes and its geometry.
         </para>
     </refsection>
     
@@ -48,6 +48,28 @@ titlepage("This is the title of the page");
             titlepage("This is the title of the page");
         </scilab:image>
         
+        <programlisting role="example"><![CDATA[ 
+f=scf();
+a1=f.children;
+a1.margins(3)=0.61;
+a2=newaxes();
+a2.margins(4)=0.39;
+sca(a1);
+titlepage("Bottom title");
+sca(a2);
+titlepage("Top title");
+ ]]></programlisting>
+        <scilab:image localized="true">
+            f=scf();
+            a1=f.children;
+            a1.margins(3)=0.61;
+            a2=newaxes();
+            a2.margins(4)=0.39;
+            sca(a1);
+            titlepage("Bottom title");
+            sca(a2);
+            titlepage("Top title");
+        </scilab:image>
     </refsection>
     <refsection role="see also">
         <title>See Also</title>
index a85f629..535efd9 100644 (file)
@@ -23,8 +23,8 @@
     <refsection>
         <title>Description</title>
         <para>
-            <literal>titlepage</literal> affiche la matrice de chaînes de caractères <literal>str</literal> au milieu de  
-            la fenêtre graphique courante, avec la police la plus grande possible.
+            <function>titlepage</function> affiche la matrice de chaînes de caractères <varname>str</varname> au milieu de  
+            la fenêtre graphique courante, avec la police la plus grande possible, compte tenu de l'axe courant et de sa géométrie.
         </para>
     </refsection>
     
@@ -37,6 +37,28 @@ titlepage("Ceci est le titre de la page");
             titlepage("Ceci est le titre de la page");
         </scilab:image>
         
+        <programlisting role="example"><![CDATA[ 
+f=scf();
+a1=f.children;
+a1.margins(3)=0.61;
+a2=newaxes();
+a2.margins(4)=0.39;
+sca(a1);
+titlepage("Bottom title");
+sca(a2);
+titlepage("Top title");
+ ]]></programlisting>
+        <scilab:image localized="true">
+            f=scf();
+            a1=f.children;
+            a1.margins(3)=0.61;
+            a2=newaxes();
+            a2.margins(4)=0.39;
+            sca(a1);
+            titlepage("Titre du haut");
+            sca(a2);
+            titlepage("Titre du bas");
+        </scilab:image>
     </refsection>
     
     <refsection role="see also">
index 7391df5..6164fd3 100644 (file)
@@ -120,13 +120,16 @@ function [x,y,ok,gc]=edit_curv(x,y,job,tit,gc)
     execstr("Data_"+string(curwin)+"=Data");
     menubar(curwin,menus)
     //
-    f = gcf(); a = gca();
-    a.data_bounds = [rect(1),rect(2);rect(3),rect(4)]
-    a.axes_visible="on";
-    a.grid=[4 4];
+    edit_curv_figure = gcf();
+    edit_curv_figure.figure_name = "edit_curv";
+
+    edit_curv_axes = gca();
+    edit_curv_axes.data_bounds = [rect(1),rect(2);rect(3),rect(4)]
+    edit_curv_axes.axes_visible="on";
+    edit_curv_axes.grid=[4 4];
     if x<>[] then
         xpolys(x*[1 1],y*[1 1],[1,-1])
-        hdl=a.children.children
+        hdl=edit_curv_axes.children.children
     else
         hdl=[]
     end
@@ -155,15 +158,15 @@ function [x,y,ok,gc]=edit_curv(x,y,job,tit,gc)
             break
 
         case "Ok" then    //    -- ok menu
-            rect = matrix(a.data_bounds',1,4);
+            rect = matrix(edit_curv_axes.data_bounds',1,4);
             gc   = list(rect,axisdata);
-            delete(f)
+            delete(edit_curv_figure)
             return;
 
         case "Abort" then //    -- abort menu
             x = xsav
             y = ysav
-            delete(f)
+            delete(edit_curv_figure)
             ok = %f;
             return
 
@@ -195,7 +198,7 @@ function [x,y,ok,gc]=edit_curv(x,y,job,tit,gc)
                 if dx==0 then dx=max(xmx/2,1),xmn=xmn-dx/10;xmx=xmx+dx/10;end
                 if dy==0 then dy=max(ymx/2,1),ymn=ymn-dy/5;ymx=ymx+dy/10;end
                 rect=[xmn,ymn,xmx,ymx];
-                a.data_bounds=[rect(1),rect(2);rect(3),rect(4)]
+                edit_curv_axes.data_bounds=[rect(1),rect(2);rect(3),rect(4)]
             end
 
         case "Clear" then
@@ -215,7 +218,7 @@ function [x,y,ok,gc]=edit_curv(x,y,job,tit,gc)
                 xmn=0;ymn=0;xmx=1;ymx=1;dx=1;dy=1
             end
             rect=[xmn,ymn,xmx,ymx];
-            a.data_bounds=[rect(1),rect(2);rect(3),rect(4)]
+            edit_curv_axes.data_bounds=[rect(1),rect(2);rect(3),rect(4)]
             if x<>[]&y<>[] then
                 if hdl==[] then
                     xpolys(x(1)*[1 1],y(1)*[1 1],[1,-1])
@@ -298,7 +301,7 @@ function [x,y] = addpt(c1,x,y)
         x = c1(1);
         y = c1(2);
         xpolys(x*[1 1],y*[1 1],[1,-1]);
-        hdl = resume(a.children(1).children)
+        hdl = resume(edit_curv_axes.children(1).children)
     end
     //recherche des intervalles en x contenant l'abscisse designee
     kk=[]
@@ -361,31 +364,115 @@ endfunction
 
 
 function [x,y] = readxy()
-    fn=uigetfile("*.xy")
-    if fn<>emptystr() then
-        if execstr("load(fn)","errcatch")<>0 then
-            xy=read(fn,-1,2)
-            x=xy(:,1);y=xy(:,2)
+
+    function xy = findPolyline(children)
+        xy = [];
+        for i = 1:length(children)
+            select children(i).type,
+            case "Polyline" then
+                xy = children(i).data;
+                return
+            case "Axes" then
+                xy = findPolyline(children(i).children);
+                return
+            case "Compound" then
+                xy = findPolyline(children(i).children);
+                return
+            end
+        end
+    endfunction
+
+    fn=uigetfile(["*.scg";"*.sod";"*.xy"], "", _("Select a file to load"));
+    if fn <> "" then
+        [pth, fnm, ext] = fileparts(fn);
+        flname = fnm + ext;
+
+        select ext
+        case ".scg" then
+            loaded_figure=figure("visible", "off");
+            if execstr("xload(fn, loaded_figure.figure_id)","errcatch") == 0 then
+                loaded_figure.visible = "off";
+                scf(edit_curv_figure);
+                xy = findPolyline(loaded_figure.children);
+                delete(loaded_figure);
+                if xy <> [] then
+                    x=xy(:,1);y=xy(:,2);
+                else
+                    messagebox(msprintf(_("%s: The file "'%s"' does not " +..
+                    "contains any "'Polyline"' graphic entity.\n"), "edit_curve", flname));
+                    return
+                end
+            else
+                messagebox(msprintf(_("%s: Cannot open file "'%s"' " +..
+                "for reading.\n"), "edit_curv", flname), "modal");
+                return
+            end
+        case ".xy" then
+            if execstr("xy = read(fn,-1,2)","errcatch") == 0 then
+                x=xy(:,1);y=xy(:,2);
+            else
+                messagebox(msprintf(_("%s: Cannot open file "'%s"' " +..
+                "for reading.\n"), "edit_curv", flname), "modal");
+                return
+            end
+        case ".sod" then
+            if execstr("load(fn)","errcatch") == 0 then
+                x=xy(:,1);y=xy(:,2);
+            else
+                messagebox(msprintf(_("%s: Cannot open file "'%s"' " +..
+                "for reading.\n"), "edit_curv", flname), "modal");
+                return
+            end
         else
-            x=xy(:,1);y=xy(:,2)
+            messagebox(_("Error in file format."), "modal");
+            return
         end
     else
         x=x
         y=y
     end
-
 endfunction
 
 
 function savexy(x,y)
-    fn = uigetfile("*.xy")
-    if fn<>emptystr()  then
+    fn=uiputfile(["*.sod";"*.xy"], "", _("Select a file to write"));
+    if fn <> "" then
+        [pth, fnm, ext] = fileparts(fn);
+        flname = fnm + ext;
         xy = [x y];
-        fil=fn+".xy"
-        if execstr("save(fil,""xy"")","errcatch")<>0 then
-            messagebox(["Impossible to save in the selected file";
-            "Check file and directory access"],"modal");
-            return
+        fil = fn;
+
+        select ext
+        case "" then
+            fil = fil + ".xy";
+            ext = ".xy";
+        case ".xy" then
+            // empty case fil = fn
+        case ".sod" then
+            // empty case fil = fn
+        else
+            fil = pth + fnm + ".xy";
+            ext = ".xy";
+        end
+
+        select ext
+        case ".sod" then
+            if execstr("save(fil,""xy"")","errcatch")<>0 then
+                messagebox(msprintf(_("%s: The file "'%s"' " +..
+                "cannot be written.\n"), "edit_curv", flname), "modal");
+                return
+            end
+        case ".xy" then
+            isErr = execstr("write(fil,xy)","errcatch")
+            if isErr == 240 then
+                mdelete(fil); // write cannot overwrite an existing file
+                isErr = execstr("write(fil,xy)","errcatch");
+            end
+            if isErr <> 0 then
+                messagebox(msprintf(_("%s: The file "'%s"' " +..
+                "cannot be written.\n"), "edit_curv", flname), "modal");
+                return
+            end
         end
     end
 endfunction
index 5a6d80d..a52b9d6 100644 (file)
@@ -8,7 +8,6 @@
 
 
 function surf(varargin)
-
     [lhs,rhs]=argn(0);
 
     if ~rhs
@@ -171,8 +170,6 @@ function surf(varargin)
     end
 
 
-
-
     // P1 is the position of the first PropertyName field.
     Property = P1;
 
@@ -227,10 +224,10 @@ function surf(varargin)
         Property = Property+2;
     end
 
-
-
-
-
+    if isempty(XX) | isempty(YY) | isempty(ZZ) then
+        // Nothing will be drawn so return (see http://bugzilla.scilab.org/13180 )
+        return
+    end
 
     // surf is made now !
     // with default option to simulate the Matlab mode
@@ -250,12 +247,6 @@ function surf(varargin)
     e.cdata_mapping = "scaled"
 
 
-
-
-
-
-
-
     // F.Leray
     // Today: 17.03.05
     // XYZ-DataMode under Matlab seems really bugged (see following samples and read Matlab doc.):
@@ -341,8 +332,6 @@ function surf(varargin)
 
 endfunction
 
-
-
 //
 //function [C] = build_interp_color(C,colormap_size)
 //// C is considered as a data value in Matlab
@@ -369,13 +358,6 @@ function k=getIndexInStringTable(pattern,table)
 
 endfunction
 
-
-
-
-
-
-
-
 function [XX,YY,ZZ,CC] = CreateFacetsFromXYZ(X,Y,Z,current_figure, cur_draw_mode)
 
     if or(size(X)==1) & or(size(Y)==1) // X and Y are vector
@@ -488,10 +470,6 @@ function [XX,YY,ZZ,CC] = CreateFacetsFromXYZ(X,Y,Z,current_figure, cur_draw_mode
 
 endfunction
 
-
-
-
-
 function [XX,YY,ZZ,CC] = CreateFacetsFromXYZColor(X,Y,Z,C,current_figure, cur_draw_mode)
 
     if or(size(X)==1) & or(size(Y)==1) // X and Y are vector
@@ -634,7 +612,6 @@ function [XX,YY,ZZ,CC] = CreateFacetsFromXYZColor(X,Y,Z,C,current_figure, cur_dr
 
 endfunction
 
-
 // If an error occurs in the surf code, we need to catch it
 // order to reset some default values
 function processSurfError(cur_figure, cur_draw_mode)
index 759df01..fc54e11 100644 (file)
@@ -990,7 +990,7 @@ static void updateXYZDataBounds(int iSubwinUID, double rect[6])
     int * piFirstPlot = &firstPlot;
 
     getGraphicObjectProperty(iSubwinUID, __GO_FIRST_PLOT__, jni_bool, (void **)&piFirstPlot);
-    if (firstPlot != 0)
+    if (!firstPlot)
     {
         double * dataBounds = NULL;
         getGraphicObjectProperty(iSubwinUID, __GO_DATA_BOUNDS__, jni_double_vector, (void **)&dataBounds);
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_13180.dia.ref b/scilab/modules/graphics/tests/nonreg_tests/bug_13180.dia.ref
new file mode 100644 (file)
index 0000000..8a2edd0
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+// <-- Non-regression test for bug 13180 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13180
+//
+// <-- Short Description -->
+// surf macro did not handle degenerate cases.
+nx = 1;
+ny = 10;
+clf;
+x = 1:nx;
+y = 1:ny;
+y = y';
+surf(x, y, x.*.y);
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_13180.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_13180.tst
new file mode 100644 (file)
index 0000000..eb441d3
--- /dev/null
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+
+// <-- Non-regression test for bug 13180 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13180
+//
+// <-- Short Description -->
+// surf macro did not handle degenerate cases.
+
+nx = 1;
+ny = 10;
+clf;
+x = 1:nx;
+y = 1:ny;
+y = y';
+surf(x, y, x.*.y);
\ No newline at end of file
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_13351.dia.ref b/scilab/modules/graphics/tests/nonreg_tests/bug_13351.dia.ref
new file mode 100644 (file)
index 0000000..5c808d9
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+// <-- Non-regression test for bug 13351 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13351
+//
+// <-- Short Description -->
+// xstringb failed with LaTeX code
+str=["Scilab" "is";"$\sqrt{not}$" "elisaB"];
+plot2d(0,0,[-1,1],"010"," ",[0,0,1,1]);
+r=[0,0,1,0.5];
+xstringb(r(1),r(2),str,r(3),r(4),"fill");
+xrect(r(1),r(2)+r(4),r(3),r(4));
+r=[r(1),r(2)+r(4)+0.01,r(3),r(4)/2];
+xrect(r(1),r(2)+r(4),r(3),r(4))
+xstringb(r(1),r(2),str,r(3),r(4),"fill");
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_13351.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_13351.tst
new file mode 100644 (file)
index 0000000..89fe270
--- /dev/null
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+
+// <-- Non-regression test for bug 13351 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13351
+//
+// <-- Short Description -->
+// xstringb failed with LaTeX code
+
+str=["Scilab" "is";"$\sqrt{not}$" "elisaB"];
+plot2d(0,0,[-1,1],"010"," ",[0,0,1,1]);
+
+r=[0,0,1,0.5];
+xstringb(r(1),r(2),str,r(3),r(4),"fill");
+xrect(r(1),r(2)+r(4),r(3),r(4));
+
+r=[r(1),r(2)+r(4)+0.01,r(3),r(4)/2];
+xrect(r(1),r(2)+r(4),r(3),r(4))
+xstringb(r(1),r(2),str,r(3),r(4),"fill");
\ No newline at end of file
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_13365.dia.ref b/scilab/modules/graphics/tests/nonreg_tests/bug_13365.dia.ref
new file mode 100644 (file)
index 0000000..90f8d7e
--- /dev/null
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+// <-- Non-regression test for bug 13365 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13365
+//
+// <-- Short Description -->
+// Data bounds not correctly updated in 3D
+scf();
+param3d([0,1], [0,1], [0,1]);
+xsegs([2;3], [2;3], [2;3], 5);
+a=gca();
+assert_checkequal(a.data_bounds, [0 0 0; 3 3 3]);
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_13365.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_13365.tst
new file mode 100644 (file)
index 0000000..65b2a2d
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+
+// <-- Non-regression test for bug 13365 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13365
+//
+// <-- Short Description -->
+// Data bounds not correctly updated in 3D
+
+scf();
+param3d([0,1], [0,1], [0,1]);
+xsegs([2;3], [2;3], [2;3], 5);
+a=gca();
+
+assert_checkequal(a.data_bounds, [0 0 0; 3 3 3]);
\ No newline at end of file
index e7ff44d..92946a0 100755 (executable)
@@ -365,6 +365,7 @@ images/icons/16x16/mimetypes/text-csv.png \
 images/icons/16x16/mimetypes/text-html.png \
 images/icons/16x16/mimetypes/text-x-generic.png \
 images/icons/16x16/mimetypes/text-xml.png \
+images/icons/16x16/mimetypes/application-mat.png \
 images/icons/16x16/places/folder.png \
 images/icons/16x16/places/folder-saved-search.png \
 images/icons/16x16/places/scilab-folder.png \
index 2d33209..840179d 100644 (file)
@@ -1027,6 +1027,7 @@ images/icons/16x16/mimetypes/text-csv.png \
 images/icons/16x16/mimetypes/text-html.png \
 images/icons/16x16/mimetypes/text-x-generic.png \
 images/icons/16x16/mimetypes/text-xml.png \
+images/icons/16x16/mimetypes/application-mat.png \
 images/icons/16x16/places/folder.png \
 images/icons/16x16/places/folder-saved-search.png \
 images/icons/16x16/places/scilab-folder.png \
index 99b3839..71cff58 100644 (file)
     <!--
   <menu label="&amp;MVC">
     <submenu label="&amp;Log View (Trace all View notifications)">
-      <callback instruction='org.scilab.modules.graphic_objects.MVCDebugView.showLogView' type="3"/>
+      <callback instruction='org.scilab.modules.graphic_objects.graphicView.LogView.createLogView' type="3"/>
     </submenu>
     <separator/>
     <submenu label="&amp;All Objects View (All objects with properties)">
-      <callback instruction='org.scilab.modules.graphic_objects.MVCDebugView.showAllObjectsView' type="3"/>
+      <callback instruction='org.scilab.modules.graphic_objects.graphicView.FlattenTreeView.createView' type="3"/>
     </submenu>
     <separator/>
     <submenu label="&amp;Ged-like View (Future ged)">
-      <callback instruction='org.scilab.modules.graphic_objects.MVCDebugView.showGedView' type="3"/>
+      <callback instruction='org.scilab.modules.graphic_objects.graphicView.GedTreeView.create' type="3"/>
     </submenu>
     <separator/>
   </menu>
index e315d65..217ff18 100644 (file)
@@ -31,7 +31,7 @@
                         </listitem>
                         <listitem>
                             <para>
-                                "border": A <link linkend="border_constraints_properties">border layout constraint</link>. 
+                                "border": A <link linkend="border_constraints_properties">border layout constraint</link>.
                             </para>
                         </listitem>
                         <listitem>
@@ -61,7 +61,7 @@
     <refsection>
         <title>Description</title>
         <para>
-            This function creates the constraints structure for uicontrols <literal>constraints</literal> attribute. See <link linkend="uicontrol_properties">uicontrol properties.</link> for more details.
+            This function creates the constraints structure for uicontrols <literal>constraints</literal> attribute. See <link linkend="uicontrol_properties">uicontrol properties</link> for more details.
         </para>
     </refsection>
     <refsection role="see also">
diff --git a/scilab/modules/gui/images/icons/16x16/mimetypes/application-mat.png b/scilab/modules/gui/images/icons/16x16/mimetypes/application-mat.png
new file mode 100644 (file)
index 0000000..4cfd9ef
Binary files /dev/null and b/scilab/modules/gui/images/icons/16x16/mimetypes/application-mat.png differ
index b9a5318..0b944c3 100644 (file)
@@ -47,17 +47,17 @@ import org.scilab.modules.action_binding.highlevel.ScilabInterpreterManagement;
 
 
 /**
-* Point and click figure editor.
-*
-* Provides polyline selection by mouse click,
-* copy, cut, paste, delete, hide, unhide polylines
-* by popup menus and keyboard shortcuts.
-*
-* @author Caio Souza <caioc2bolado@gmail.com>
-* @author Pedro Souza <bygrandao@gmail.com>
-*
-* @since 2012-06-01
-*/
+ * Point and click figure editor.
+ *
+ * Provides polyline selection by mouse click,
+ * copy, cut, paste, delete, hide, unhide polylines
+ * by popup menus and keyboard shortcuts.
+ *
+ * @author Caio Souza <caioc2bolado@gmail.com>
+ * @author Pedro Souza <bygrandao@gmail.com>
+ *
+ * @since 2012-06-01
+ */
 
 public class Editor {
 
@@ -90,10 +90,10 @@ public class Editor {
         entityPicker = new EntityPicker();
         dataEditor = new DataEditor();
         dataEditor.setLeaveAction(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                leaveDataEditor();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    leaveDataEditor();
+                }
+            });
     }
 
     /**
@@ -158,35 +158,35 @@ public class Editor {
 
         if (!dataEditEnabled) {
             switch (event.getClickCount()) {
-                case 1:
-                    setSelected(tryPickAnyObject(lastClick));
-                    break;
-                case 2:
-                    /*there is a polyline selected? if yes start dataEditor*/
-                    if (selected != null && selectedType == SelectionType.POLYLINE && dataModifyEnabled) {
-                        enterDataEditor();
-                    }
-                    /*on double click over a legend or label open dialog*/
-                    else if (selectedLegend != null) {
-                        onClickInsert(selectedLegend.polyline);
-                    } else {
-                        /*try pick a label and open the dialog*/
-                        onClickLabel(EntityPicker.pickLabel(figureUid, lastClick));
-                    }
-                    break;
-                default:
-                    break;
+            case 1:
+                setSelected(tryPickAnyObject(lastClick));
+                break;
+            case 2:
+                /*there is a polyline selected? if yes start dataEditor*/
+                if (selected != null && selectedType == SelectionType.POLYLINE && dataModifyEnabled) {
+                    enterDataEditor();
+                }
+                /*on double click over a legend or label open dialog*/
+                else if (selectedLegend != null) {
+                    onClickInsert(selectedLegend.polyline);
+                } else {
+                    /*try pick a label and open the dialog*/
+                    onClickLabel(EntityPicker.pickLabel(figureUid, lastClick));
+                }
+                break;
+            default:
+                break;
             }
         } else { /*data editor is enabled, pass event to it*/
             switch (event.getClickCount()) {
-                case 1:
-                    dataEditor.onLeftMouseDown(event);
-                    break;
-                case 2:
-                    dataEditor.onLeftDoubleClick(event);
-                    break;
-                default:
-                    break;
+            case 1:
+                dataEditor.onLeftMouseDown(event);
+                break;
+            case 2:
+                dataEditor.onLeftDoubleClick(event);
+                break;
+            default:
+                break;
             }
         }
         dragClick[0] = lastClick[0];
@@ -238,46 +238,46 @@ public class Editor {
 
         if (event.isControlDown()) {
             switch (event.getKeyCode()) {
-                case KeyEvent.VK_C:
-                    if (getSelected() != null) {
-                        onClickCopy();
-                    }
-                    break;
-                case KeyEvent.VK_V:
-                    if (ScilabClipboard.getInstance().canPaste()) {
-                        onClickPaste();
-                    }
-                    break;
-                case KeyEvent.VK_X:
-                    onClickCut();
-                    break;
-                case KeyEvent.VK_Z:
-                    if (editorHistory.isUndoEnabled()) {
-                        onClickUndo();
-                    }
-                    break;
-                case KeyEvent.VK_N:
-                    try {
-                        ScilabInterpreterManagement.asynchronousScilabExec(null, "scf();");
-                    } catch (Exception e) {
-                        System.err.println(e);
-                    }
-                    break;
-                default:
-                    break;
+            case KeyEvent.VK_C:
+                if (getSelected() != null) {
+                    onClickCopy();
+                }
+                break;
+            case KeyEvent.VK_V:
+                if (ScilabClipboard.getInstance().canPaste()) {
+                    onClickPaste();
+                }
+                break;
+            case KeyEvent.VK_X:
+                onClickCut();
+                break;
+            case KeyEvent.VK_Z:
+                if (editorHistory.isUndoEnabled()) {
+                    onClickUndo();
+                }
+                break;
+            case KeyEvent.VK_N:
+                try {
+                    ScilabInterpreterManagement.asynchronousScilabExec(null, "scf();");
+                } catch (Exception e) {
+                    System.err.println(e);
+                }
+                break;
+            default:
+                break;
             }
         } else {
             switch (event.getKeyCode()) {
-                case KeyEvent.VK_DELETE:
-                    if (!dataEditEnabled) {
-                        onClickDelete();
-                    }
-                    break;
-                case KeyEvent.VK_ESCAPE:
-                    leaveDataEditor();
-                    break;
-                default:
-                    break;
+            case KeyEvent.VK_DELETE:
+                if (!dataEditEnabled) {
+                    onClickDelete();
+                }
+                break;
+            case KeyEvent.VK_ESCAPE:
+                leaveDataEditor();
+                break;
+            default:
+                break;
             }
         }
     }
@@ -333,118 +333,118 @@ public class Editor {
         pasteStyle.setToolTipText(Messages.gettext("Paste the copied style on these axes"));
 
         copy.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickCopy();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickCopy();
+                }
+            });
 
         cut.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickCut();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickCut();
+                }
+            });
 
         paste.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickPaste();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickPaste();
+                }
+            });
 
         delete.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickDelete();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickDelete();
+                }
+            });
 
         clear.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickClear();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickClear();
+                }
+            });
 
         hide.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickHide();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickHide();
+                }
+            });
 
         unhide.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickUnhide();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickUnhide();
+                }
+            });
 
         clipboardCopy.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickCCopy();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickCCopy();
+                }
+            });
 
         labelX.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickLabel(AxesHandler.axisTo.__X__);
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickLabel(AxesHandler.axisTo.__X__);
+                }
+            });
 
         labelY.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickLabel(AxesHandler.axisTo.__Y__);
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickLabel(AxesHandler.axisTo.__Y__);
+                }
+            });
 
         labelZ.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickLabel(AxesHandler.axisTo.__Z__);
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickLabel(AxesHandler.axisTo.__Z__);
+                }
+            });
 
         insert.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickInsert(getSelected());
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickInsert(getSelected());
+                }
+            });
 
         remove.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickRemove();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickRemove();
+                }
+            });
 
         ged.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickGED();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickGED();
+                }
+            });
 
         editdata.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                setDataModifyEnabled(true);
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    setDataModifyEnabled(true);
+                }
+            });
 
         undo.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickUndo();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickUndo();
+                }
+            });
 
         redo.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickRedo();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickRedo();
+                }
+            });
 
         copyStyle.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickCopyStyle();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickCopyStyle();
+                }
+            });
 
         pasteStyle.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent actionEvent) {
-                onClickPasteStyle();
-            }
-        });
+                public void actionPerformed(ActionEvent actionEvent) {
+                    onClickPasteStyle();
+                }
+            });
 
 
         labels.add(labelX);
@@ -550,8 +550,8 @@ public class Editor {
     }
 
     /**
-    * Implements copy menu item action(Callback).
-    */
+     * Implements copy menu item action(Callback).
+     */
     public void onClickCopy() {
         if (selectedType != SelectionType.LEGEND) {
             ScilabClipboard.getInstance().copy(getSelected());
@@ -562,7 +562,6 @@ public class Editor {
      * Implements paste menu item action(Callback).
      */
     public void onClickPaste() {
-
         Integer currentObject, newObject, currentParent, newParent;
         boolean isDuplicated = false;
 
@@ -571,8 +570,8 @@ public class Editor {
         Integer oldFigure = CommonHandler.getParentFigure(currentObject);
         if (!CommonHandler.cmpColorMap(figureUid, oldFigure)) {
             String msg =  "The colormap from source figure seems to be different from the destination figure." +
-                          "\nThis may influence the final appearance from the object." +
-                          "\nDo you want copy the color map too?";
+                "\nThis may influence the final appearance from the object." +
+                "\nDo you want copy the color map too?";
             int i = JOptionPane.showConfirmDialog(dialogComponent, Messages.gettext(msg), Messages.gettext("Warning"), JOptionPane.YES_NO_OPTION);
 
             if (i == JOptionPane.YES_OPTION) {
@@ -614,8 +613,8 @@ public class Editor {
     }
 
     /**
-    * Implements clear menu item action(Callback).
-    */
+     * Implements clear menu item action(Callback).
+     */
     public void onClickClear() {
         setSelected(null);
         Integer axesTo = AxesHandler.clickedAxes(figureUid, lastClick);
@@ -625,8 +624,8 @@ public class Editor {
     }
 
     /**
-    * Implements hide menu item action(Callback).
-    */
+     * Implements hide menu item action(Callback).
+     */
     public void onClickHide() {
         if (getSelected() != null) {
             CommonHandler.setVisible(selected, false);
@@ -654,18 +653,17 @@ public class Editor {
      * @param axis axis number.
      */
     public void onClickLabel(AxesHandler.axisTo axis) {
-
         Integer axes = AxesHandler.clickedAxes(figureUid, lastClick);
         if (axes != null && axis != null) {
             String text = LabelHandler.getLabelText(axes, axis);
             String s = (String)JOptionPane.showInputDialog(
-                           dialogComponent,
-                           Messages.gettext("Enter the text"),
-                           Messages.gettext("Set label text"),
-                           JOptionPane.PLAIN_MESSAGE,
-                           null,
-                           null,
-                           text);
+                dialogComponent,
+                Messages.gettext("Enter the text"),
+                Messages.gettext("Set label text"),
+                JOptionPane.PLAIN_MESSAGE,
+                null,
+                null,
+                text);
             if (s != null) {
                 String tmp[] = {s};
                 String[] oldText = {text};
@@ -680,24 +678,23 @@ public class Editor {
      * @param polyline Polyline to be inserted in the legend.
      */
     public void onClickInsert(Integer polyline) {
-
         Integer axes = AxesHandler.clickedAxes(figureUid, lastClick);
         if (axes != null) {
             String text = LegendHandler.getLegendText(axes, polyline);
             String s = (String)JOptionPane.showInputDialog(
-                           dialogComponent,
-                           Messages.gettext("Enter the text"),
-                           Messages.gettext("Set legend text"),
-                           JOptionPane.PLAIN_MESSAGE,
-                           null,
-                           null,
-                           text);
-            if (s != null) {
+                dialogComponent,
+                Messages.gettext("Enter the text"),
+                Messages.gettext("Set legend text"),
+                JOptionPane.PLAIN_MESSAGE,
+                null,
+                null,
+                text);
+            if (s != null && !s.equals(text)) {
                 Integer legend = LegendHandler.searchLegend(axes);
                 Integer[] links = LegendHandler.getLinks(legend);
                 String[] texts = LegendHandler.getText(legend);
                 Double[] position = LegendHandler.getPosition(legend);
-                LegendHandler.setLegend(axes, polyline, s);
+                LegendHandler.setLegend(legend, axes, polyline, s);
                 editorHistory.addAction(new ActionLegend(axes, links, texts, position));
             }
         }
@@ -707,7 +704,6 @@ public class Editor {
      * Implements legend remove action(Callback).
      */
     public void onClickRemove() {
-
         Integer axesTo = AxesHandler.clickedAxes(figureUid, lastClick);
         Integer legend = LegendHandler.searchLegend(axesTo);
         Integer[] links = LegendHandler.getLinks(legend);
@@ -738,8 +734,8 @@ public class Editor {
     }
 
     /**
-    * Starts the GED with the property selected by user.
-    */
+     * Starts the GED with the property selected by user.
+     */
     public void onClickGED() {
         if (DatatipManager.getFromUid(figureUid).pickAndHighlight(lastClick[0], lastClick[1])) {
             Inspector.getInspector(DatatipManager.getFromUid(figureUid).getSelectedTip());
@@ -750,22 +746,22 @@ public class Editor {
     }
 
     /**
-    * Implements Undo action(callBAck)
-    */
+     * Implements Undo action(callBAck)
+     */
     public void onClickUndo() {
         editorHistory.undo();
     }
 
     /**
-    * Implements Redo action(callBack)
-    */
+     * Implements Redo action(callBack)
+     */
     public void onClickRedo() {
         editorHistory.redo();
     }
 
     /**
-    * Implementes copyStyle action(callback)
-    */
+     * Implementes copyStyle action(callback)
+     */
     public void onClickCopyStyle() {
 
         Integer axes = AxesHandler.clickedAxes(figureUid, lastClick);
@@ -773,15 +769,15 @@ public class Editor {
     }
 
     /**
-    * Implementes pasteStyle action(callback)
-    */
+     * Implementes pasteStyle action(callback)
+     */
     public void onClickPasteStyle() {
         boolean flag = true;
         Integer axes = AxesHandler.clickedAxes(figureUid, lastClick);
         if (!AxesHandler.isAxesEmpty(axes)) {
             String msg =  "The axes which the style was copied is not in CubeView" +
-                          "\nIf you don't copy the data bounds the view angles can appear different" +
-                          "\nDo you want copy the data bounds too?(it can shrink/stretch the current view)";
+                "\nIf you don't copy the data bounds the view angles can appear different" +
+                "\nDo you want copy the data bounds too?(it can shrink/stretch the current view)";
             int i = JOptionPane.showConfirmDialog(dialogComponent, Messages.gettext(msg), Messages.gettext("Warning"), JOptionPane.YES_NO_OPTION);
 
             if (i == JOptionPane.NO_OPTION) {
index 215b4d4..d299827 100644 (file)
 
 package org.scilab.modules.gui.editor;
 
-import java.util.Arrays;
-import java.util.List;
 import java.util.ArrayList;
+
 import org.scilab.modules.graphic_objects.graphicController.GraphicController;
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties;
 
-import org.scilab.modules.gui.editor.ObjectSearcher;
-import org.scilab.modules.gui.editor.PolylineHandler;
-
 
 /**
-* Implements all legend manipulation functions for the editor.
-*
-* @author Caio Souza <caioc2bolado@gmail.com>
-* @author Pedro Souza <bygrandao@gmail.com>
-*
-* @since 2012-06-01
-*/
+ * Implements all legend manipulation functions for the editor.
+ *
+ * @author Caio Souza <caioc2bolado@gmail.com>
+ * @author Pedro Souza <bygrandao@gmail.com>
+ *
+ * @since 2012-06-01
+ */
 public class LegendHandler {
 
     public static Integer searchLegend(Integer uid) {
@@ -56,19 +52,18 @@ public class LegendHandler {
     }
 
     /**
-    * Set or create a legend for one polyline.
-    *
-    * @param axes The axes that will recieve the legend.
-    * @param polyline The polyline to set/create legend.
-    * @param text The text for the legend.
-    */
+     * Set or create a legend for one polyline.
+     *
+     * @param axes The axes that will recieve the legend.
+     * @param polyline The polyline to set/create legend.
+     * @param text The text for the legend.
+     */
 
-    public static void setLegend(Integer axes, Integer polyline, String text) {
-        if (text == null || text == "" || polyline == null || axes == null) {
+    public static void setLegend(Integer legend, Integer axes, Integer polyline, String text) {
+        if (text == null || text == "" || polyline == null || axes == null || legend == null) {
             return;
         }
 
-        Integer legend = searchLegend(axes);
         Integer[] dimension = { 0, 0 };
         ArrayList<String> texts = new ArrayList<String>();
         ArrayList<Integer> links = new ArrayList<Integer>();
@@ -78,15 +73,17 @@ public class LegendHandler {
             Integer[] linksOld = (Integer[])GraphicController.getController().getProperty(legend, GraphicObjectProperties.__GO_LINKS__);
             int length = linksOld.length;
             for (int i = 0; i < length; i++) {
-                if (polyline != linksOld[i]) {
-                    texts.add(textOld[i]);
-                    links.add(linksOld[i]);
-                } else {
-                    removeLegend(axes, polyline);
-                    setLegend(axes, polyline, text);
+                if (linksOld[i].equals(polyline)) {
+                    textOld[length - i - 1] = text;
+                    GraphicController.getController().setProperty(legend, GraphicObjectProperties.__GO_TEXT_STRINGS__, textOld);
                     return;
                 }
             }
+
+            for (Integer i = 0; i < length; i++) {
+                texts.add(textOld[i]);
+                links.add(linksOld[i]);
+            }
             CommonHandler.delete(legend);
         }
         legend = GraphicController.getController().askObject(GraphicObject.getTypeFromName(GraphicObjectProperties.__GO_LEGEND__));
@@ -109,11 +106,11 @@ public class LegendHandler {
     }
 
     /**
-    * Remove a legend from axes.
-    *
-    * @param axes The axes to remove the legend.
-    * @param polyline The polyline that is linked to the legend.
-    */
+     * Remove a legend from axes.
+     *
+     * @param axes The axes to remove the legend.
+     * @param polyline The polyline that is linked to the legend.
+     */
 
     public static void removeLegend(Integer axes, Integer polyline) {
         if (polyline == null || axes == null) {
@@ -161,12 +158,12 @@ public class LegendHandler {
     }
 
     /**
-    * Get the text of the legend.
-    *
-    * @param axes The axes where is the legend.
-    * @param polyline The polyline that is linked to the legend.
-    * @return The text of the legend.
-    */
+     * Get the text of the legend.
+     *
+     * @param axes The axes where is the legend.
+     * @param polyline The polyline that is linked to the legend.
+     * @return The text of the legend.
+     */
 
     public static String getLegendText(Integer axes, Integer polyline) {
         if (polyline != null && axes != null) {
@@ -187,12 +184,12 @@ public class LegendHandler {
     }
 
     /**
-    * Drag the given legend.
-    *
-    * @param legend  the legend uid.
-    * @param position click position (x,y).
-    * @param nextPosition dragged position (x,y).
-    */
+     * Drag the given legend.
+     *
+     * @param legend  the legend uid.
+     * @param position click position (x,y).
+     * @param nextPosition dragged position (x,y).
+     */
 
     public static void dragLegend(Integer legend, Integer[] position, Integer[] nextPosition) {
         ObjectSearcher searcher = new ObjectSearcher();
@@ -219,11 +216,11 @@ public class LegendHandler {
     }
 
     /**
-    * Get the links of a Legend
-    *
-    * @param legend The legend to get the links
-    * @return Links of the legend
-    */
+     * Get the links of a Legend
+     *
+     * @param legend The legend to get the links
+     * @return Links of the legend
+     */
     public static Integer[] getLinks(Integer legend) {
         if (legend == null) {
             return null;
@@ -233,11 +230,11 @@ public class LegendHandler {
     }
 
     /**
-    * Get the text of a Legend
-    *
-    * @param legend The legend to get the text
-    * @return Text of the legend
-    */
+     * Get the text of a Legend
+     *
+     * @param legend The legend to get the text
+     * @return Text of the legend
+     */
     public static String[] getText(Integer legend) {
         if (legend == null) {
             return null;
@@ -247,11 +244,11 @@ public class LegendHandler {
     }
 
     /**
-    * Get the position of a Legend
-    *
-    * @param legend The legend to get the position
-    * @return The legend position
-    */
+     * Get the position of a Legend
+     *
+     * @param legend The legend to get the position
+     * @return The legend position
+     */
     public static Double[] getPosition(Integer legend) {
         if (legend == null) {
             return null;
index d2a8edd..d681bb2 100644 (file)
@@ -1177,7 +1177,11 @@ taucs_chget_1.png=32b07f989646e18d80927a37e9a75ac5
 text_properties_1.png=e89c2e3ef82bc25441ef577e5ea69c6
 title_1.png=43bf4550c7c9b2de76ddd4eddb479b2b
 titlepage_1.png=917be99c9df0964672daa45c284de115
+titlepage_2.png=4442891fd6f287a8fb39b92006ff40c5
+titlepage_en_US_2.png=4442891fd6f287a8fb39b92006ff40c5
 titlepage_fr_FR_1.png=f76157d643854ea8716178823dd2680e
+titlepage_fr_FR_2.png=b709d54b9476c67d4272f1e086f33909
+titlepage_ru_RU_2.png=4442891fd6f287a8fb39b92006ff40c5
 trans_1.png=a5ddde2263a28ffaba21606bcfc2232
 unwrap_1.png=b55bd8834f6ed873c3c614d5b81a7484
 wavread_1.png=7f4fa7fd3215e86c6beac1b99ed5c107
index 623f0ac..e93f6de 100644 (file)
Binary files a/scilab/modules/helptools/images/LOGICAL_OP.png and b/scilab/modules/helptools/images/LOGICAL_OP.png differ
index 07d64fc..8e3b9bb 100644 (file)
Binary files a/scilab/modules/helptools/images/RELATIONALOP.png and b/scilab/modules/helptools/images/RELATIONALOP.png differ
diff --git a/scilab/modules/helptools/images/titlepage_en_US_2.png b/scilab/modules/helptools/images/titlepage_en_US_2.png
new file mode 100644 (file)
index 0000000..585327f
Binary files /dev/null and b/scilab/modules/helptools/images/titlepage_en_US_2.png differ
diff --git a/scilab/modules/helptools/images/titlepage_fr_FR_2.png b/scilab/modules/helptools/images/titlepage_fr_FR_2.png
new file mode 100644 (file)
index 0000000..368b6cc
Binary files /dev/null and b/scilab/modules/helptools/images/titlepage_fr_FR_2.png differ
diff --git a/scilab/modules/helptools/images/titlepage_ru_RU_2.png b/scilab/modules/helptools/images/titlepage_ru_RU_2.png
new file mode 100644 (file)
index 0000000..585327f
Binary files /dev/null and b/scilab/modules/helptools/images/titlepage_ru_RU_2.png differ
index 7f1eb18..378f077 100644 (file)
@@ -2,6 +2,7 @@
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2007-2008 - INRIA - Allan CORNET
 * Copyright (C) 2011 - DIGITEO - Allan CORNET
+* Copyright (C) 2014 - Scilab Enterprises - Anais AUBERT
 *
 * This file must be used under the terms of the CeCILL.
 * This source file is licensed as described in the file COPYING, which
@@ -61,6 +62,7 @@ int sci_historysize(char *fname, unsigned long fname_len)
                 else
                 {
                     Scierror(999, _("%s: Memory allocation error.\n"), fname);
+                    return 0;
                 }
             }
             else
index be8b26b..22497e3 100644 (file)
@@ -977,9 +977,9 @@ maintainer-clean-generic:
        @echo "it deletes files that may require special tools to rebuild."
        -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 @JAVASCI_FALSE@install-html-local:
+@JAVASCI_FALSE@install-data-local:
 @JAVASCI_FALSE@clean-local:
 @JAVASCI_FALSE@distclean-local:
-@JAVASCI_FALSE@install-data-local:
 clean: clean-am
 
 clean-am: clean-generic clean-libtool clean-local \
index 4725bba..458ea69 100644 (file)
@@ -15,7 +15,7 @@
 ilib_name  = "libmex"
 
 // objects files (but do not give mexfiles here)
-files = ["temptst2.o"];
+files = ["temptst2.cpp"];
 
 // other libs needed for linking (must be shared library names)
 libs  = [];
index 970ce56..1f246b1 100644 (file)
@@ -4,7 +4,8 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-// <-- Non-regression test for bug 3070, 3089 & 3568 -->
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 3070, 3089 and 3568 -->
 //
 // <-- Bugzilla URL -->
 // http://bugzilla.scilab.org/show_bug.cgi?id=3070
@@ -15,8 +16,8 @@
 mprintf("°\n\n");
 °
 
-printf('µ m\n');
+printf("µ m\n");
 µ m
-mprintf('Torbjørn Pettersen');
+mprintf("Torbjørn Pettersen");
 Torbjørn Pettersenmprintf("清除控制台");
 清除控制台mprintf("모든 인간은 태어날 때부터 자유로우며 그 존엄과 권리에 있어 동등하다. 인간은 천부적으로 이성과 양심을 부여받았으며 서로 형제애의 정신으로 행동하여야 한다.");
index 761c9b4..5d25af6 100644 (file)
@@ -7,7 +7,7 @@
 
 // <-- CLI SHELL MODE -->
 
-// <-- Non-regression test for bug 3070, 3089 & 3568 -->
+// <-- Non-regression test for bug 3070, 3089 and 3568 -->
 //
 // <-- Bugzilla URL -->
 // http://bugzilla.scilab.org/show_bug.cgi?id=3070
@@ -20,9 +20,9 @@
 
 mprintf("°\n\n");
 
-printf('µ m\n');
+printf("µ m\n");
 
-mprintf('Torbjørn Pettersen');
+mprintf("Torbjørn Pettersen");
 
 mprintf("清除控制台");
 mprintf("모든 인간은 태어날 때부터 자유로우며 그 존엄과 권리에 있어 동등하다. 인간은 천부적으로 이성과 양심을 부여받았으며 서로 형제애의 정신으로 행동하여야 한다.");
index 964e979..4622796 100644 (file)
@@ -84,23 +84,7 @@ public class TextObjectSpriteDrawer implements TextureDrawer {
         Color textColor = ColorFactory.createColor(colorMap, textObject.getFont().getColor());
         Font font = computeFont(textObject);
 
-        loop: {
-            for (String[] textLine : stringArray) {
-                for (String text : textLine) {
-                    if (text != null) {
-                        if (!latexSet && isLatex(text)) {
-                            latexSet = true;
-                            LoadClassPath.loadOnUse("graphics_latex_textrendering");
-                        } else if (!mathmlSet && isMathML(text)) {
-                            LoadClassPath.loadOnUse("graphics_mathml_textrendering");
-                        } else if (latexSet && mathmlSet) {
-                            break loop;
-                        }
-                    }
-                }
-            }
-        }
-
+        loadDeps(stringArray);
         fillEntityMatrix(stringArray, fractionalFont, textColor, font);
 
         this.width  = sum(columnWidth) + HMARGIN * (columnNumber + 1) + 2 * thickness + SPACEWIDTH * (columnNumber - 1);
@@ -132,6 +116,7 @@ public class TextObjectSpriteDrawer implements TextureDrawer {
         Font font = computeFont(textObject, scaleFactor);
 
         /* Fill the entity matrix */
+        loadDeps(stringArray);
         fillEntityMatrix(stringArray, fractionalFont, textColor, font);
 
         this.width  = (int)((double)sum(columnWidth) + scaleFactor * (double)(HMARGIN * (columnNumber + 1)) + 2 * thickness + scaleFactor * (double)(SPACEWIDTH * (columnNumber - 1)));
@@ -139,6 +124,29 @@ public class TextObjectSpriteDrawer implements TextureDrawer {
     }
 
     /**
+     * Load JLaTeXMath or JEuclid if mandatory
+     * @param stringArray the text to check
+     */
+    protected void loadDeps(String[][] stringArray) {
+    loop: {
+            for (String[] textLine : stringArray) {
+                for (String text : textLine) {
+                    if (text != null) {
+                        if (!latexSet && isLatex(text)) {
+                            latexSet = true;
+                            LoadClassPath.loadOnUse("graphics_latex_textrendering");
+                        } else if (!mathmlSet && isMathML(text)) {
+                            LoadClassPath.loadOnUse("graphics_mathml_textrendering");
+                        } else if (latexSet && mathmlSet) {
+                            break loop;
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
      * Fills the entity matrix
      * @param stringArray the matrix of text strings used to fill the entity matrix.
      * @param fractionalFont specifies whether a fractional font is used or not.
@@ -370,14 +378,14 @@ public class TextObjectSpriteDrawer implements TextureDrawer {
      */
     protected float computeAlignmentFactor(Text text) {
         switch (text.getAlignmentAsEnum()) {
-            case LEFT:
-                return 0f;
-            case CENTER:
-                return 1f / 2f;
-            case RIGHT:
-                return 1f;
-            default:
-                return 0f;
+        case LEFT:
+            return 0f;
+        case CENTER:
+            return 1f / 2f;
+        case RIGHT:
+            return 1f;
+        default:
+            return 0f;
         }
     }
 
index c86d8d7..2235c86 100644 (file)
@@ -250,7 +250,7 @@ function Info = scicos_simulate(scs_m, Info, updated_vars, flag, Ignb)
         error(["Incorrect context definition, " + lasterror()])
     end
 
-    // perform block supression only on partial compilation and full compilation
+    // perform block suppression only on partial compilation and full compilation
     if needcompile > 1 then
         need_suppress  =%t
     else
index 45da709..c678ae6 100644 (file)
@@ -155,7 +155,7 @@ function [scs_m,DEL,DELL]=do_delete1(scs_m,K,gr)
                         end
                         o1.to=o2.to;
 
-                        DEL = [DEL connected(1)] // supress one link
+                        DEL = [DEL connected(1)] // suppress one link
                         DELL=[DELL  connected(1)]
                         scs_m.objs(connected(2))=o1 //change link
 
@@ -203,7 +203,7 @@ function [scs_m,DEL,DELL]=do_delete1(scs_m,K,gr)
                         o1.to=o2.to;
 
 
-                        DEL=[DEL connected(1)] // supress one link
+                        DEL=[DEL connected(1)] // suppress one link
                         DELL=[DELL  connected(1)]
                         scs_m.objs(connected(2))=o1 //change link
 
@@ -251,5 +251,3 @@ function [scs_m,DEL,DELL]=do_delete1(scs_m,K,gr)
         scs_m.objs(k) = mlist("Deleted"); //** mark the object as "Deleted"
     end
 endfunction
-
-
index bc76864..c06c633 100644 (file)
@@ -134,6 +134,6 @@ function [x,y,typ]=LOGICAL_OP(job,arg1,arg2)
 
         exprs=[string(nin);string(ipar)]
         gr_i=[]
-        x=standard_define([2 2],model,exprs,gr_i)
+        x=standard_define([3 2],model,exprs,gr_i)
     end
 endfunction
index 1dc73fb..a4db6e5 100644 (file)
@@ -47,7 +47,6 @@ function [x,y,typ] = RELATIONALOP(job,arg1,arg2)
             end
             if (rule<0)|(rule>5) then
                 message("Incorrect operator "+string(rule)+" ; must be 0 to 5.")
-                ok=%f;
             end
             if (Datatype==1) then
                 model.sim=list("relational_op",4)
@@ -75,21 +74,7 @@ function [x,y,typ] = RELATIONALOP(job,arg1,arg2)
                 [model,graphics,ok]=set_io(model,graphics,list(in,it),list(out,ot),[],[])
             end
             if ok then
-                if rule == 0 then
-                    label = "==";
-                elseif rule == 1 then
-                    label = "~=";
-                elseif rule == 2 then
-                    label = "&lt";
-                elseif rule == 3 then
-                    label = "&lt=";
-                elseif rule == 4 then
-                    label = "&gt";
-                elseif rule == 5 then
-                    label = "&gt=";
-                end
                 graphics.exprs=exprs;
-                graphics.style=["fontSize=13;fontStyle=1;displayedLabel="+label];
                 model.ipar=[rule],
                 model.nzcross=zcr,
                 model.nmode=zcr,
@@ -100,7 +85,6 @@ function [x,y,typ] = RELATIONALOP(job,arg1,arg2)
         end
     case "define" then
         ipar=[2]
-        label="&lt";
         model=scicos_model()
         model.sim=list("relationalop",4)
         model.in=[1;1]
@@ -108,9 +92,9 @@ function [x,y,typ] = RELATIONALOP(job,arg1,arg2)
         model.ipar=ipar
         model.blocktype="c"
         model.dep_ut=[%t %f]
+
         exprs=[string(ipar);string(0)]
         gr_i=[]
-        x=standard_define([2 2],model,exprs,gr_i)
-        x.graphics.style=["fontSize=13;fontStyle=1;displayedLabel="+label];
+        x=standard_define([3 2],model,exprs,gr_i)
     end
 endfunction
index eadf00b..7da23a4 100644 (file)
@@ -7,58 +7,10 @@
 // =============================================================================
 w=%pi/4; // angular frequency
 T=0.1; // period
-t=0:T:5
- t  =
-         column  1 to 10
-    0.    0.1    0.2    0.3    0.4    0.5    0.6    0.7    0.8    0.9  
-         column 11 to 20
-    1.    1.1    1.2    1.3    1.4    1.5    1.6    1.7    1.8    1.9  
-         column 21 to 30
-    2.    2.1    2.2    2.3    2.4    2.5    2.6    2.7    2.8    2.9  
-         column 31 to 40
-    3.    3.1    3.2    3.3    3.4    3.5    3.6    3.7    3.8    3.9  
-         column 41 to 50
-    4.    4.1    4.2    4.3    4.4    4.5    4.6    4.7    4.8    4.9  
-         column 51
-    5.  
+t=0:T:5;
 signal=cos(w*t);
 // Sinusoid with noise
-v=0:1:50
- v  =
-         column  1 to 11
-    0.    1.    2.    3.    4.    5.    6.    7.    8.    9.    10.  
-         column 12 to 21
-    11.    12.    13.    14.    15.    16.    17.    18.    19.    20.  
-         column 22 to 31
-    21.    22.    23.    24.    25.    26.    27.    28.    29.    30.  
-         column 32 to 41
-    31.    32.    33.    34.    35.    36.    37.    38.    39.    40.  
-         column 42 to 51
-    41.    42.    43.    44.    45.    46.    47.    48.    49.    50.  
+v=0:1:50;
 y=signal+v;
 // System
 n=2; // system order
index c4e09b7..e7bce01 100644 (file)
@@ -8,10 +8,10 @@
 
 w=%pi/4; // angular frequency
 T=0.1; // period
-t=0:T:5
+t=0:T:5;
 signal=cos(w*t);
 // Sinusoid with noise
-v=0:1:50
+v=0:1:50;
 y=signal+v;
 // System
 n=2; // system order
index a0da0ef..fc1ca0b 100644 (file)
@@ -47,6 +47,7 @@ public final class FileUtils {
     private static final Icon UPICON = new ImageIcon(FindIconHelper.findIcon("dynamic-blue-up"));
     private static final Icon SCIICON = new ImageIcon(FindIconHelper.findIcon("scilab-folder"));
     private static final Icon OPENSCIICON = new ImageIcon(FindIconHelper.findIcon("scilab-folder-open"));
+    private static final Icon MATICON = new ImageIcon(FindIconHelper.findIcon("application-mat"));
 
     private static final int CHARTOREAD = 128;
 
@@ -75,6 +76,7 @@ public final class FileUtils {
         extToIcon.put("htm", HTMLICON);
         extToIcon.put("xml", XMLICON);
         extToIcon.put("csv", CSVICON);
+        extToIcon.put("mat", MATICON);
     }
 
     /**
index a453616..5511404 100644 (file)
@@ -87,6 +87,7 @@ public class ScilabFileSelectorFilter extends JPanel {
             }
         });
         validate.setIcon(VALIDATE);
+        validate.setToolTipText(UiDataMessages.RUNFILTER);
 
         caseSensitive = new JCheckBox(UiDataMessages.CASESENSITIVE, !isWindows);
         regexp = new JCheckBox(UiDataMessages.REGEXP, false);
index 2592b1e..bd7bc15 100644 (file)
@@ -52,6 +52,7 @@ import org.scilab.modules.ui_data.filebrowser.actions.ChangeCWDAction;
 import org.scilab.modules.ui_data.filebrowser.actions.EditFileWithDefaultAppAction;
 import org.scilab.modules.ui_data.filebrowser.actions.ExecuteFileInConsoleAction;
 import org.scilab.modules.ui_data.filebrowser.actions.ExecuteFileInXcosAction;
+import org.scilab.modules.ui_data.filebrowser.actions.ExecuteMatFileAction;
 import org.scilab.modules.ui_data.filebrowser.actions.LoadFileAsGraphAction;
 import org.scilab.modules.ui_data.filebrowser.actions.LoadFileInScilabAction;
 import org.scilab.modules.ui_data.filebrowser.actions.OpenFileInSciNotesAction;
@@ -359,6 +360,7 @@ public class SwingScilabTreeTable extends JTable {
         final ActionMap actions = getActionMap();
         actions.put("scinotes", new OpenFileInSciNotesAction(this));
         actions.put("xcos", new ExecuteFileInXcosAction(this));
+        actions.put("mat", new ExecuteMatFileAction(this));
         actions.put("console", new ExecuteFileInConsoleAction(this));
         actions.put("load", new LoadFileInScilabAction(this));
         actions.put("graph", new LoadFileAsGraphAction(this));
index 69b64f2..904f981 100644 (file)
@@ -55,6 +55,7 @@ public class ChangeCWDAction extends CommonCallBack {
      */
     public JButton createButton() {
         JButton button = new JButton();
+        button.setToolTipText(UiDataMessages.SELECTDIR);
         button.addActionListener(new CommonCallBack(null) {
             public void callBack() {
                 SwingScilabFileChooser filechooser = new SwingScilabFileChooser();
@@ -80,6 +81,7 @@ public class ChangeCWDAction extends CommonCallBack {
      */
     public JButton createParentDirButton() {
         JButton button = new JButton();
+        button.setToolTipText(UiDataMessages.PARENTDIR);
         button.addActionListener(new CommonCallBack(null) {
             public void callBack() {
                 File f = new File(table.getComboBox().getBaseDir());
diff --git a/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/actions/ExecuteMatFileAction.java b/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/actions/ExecuteMatFileAction.java
new file mode 100644 (file)
index 0000000..11c7b00
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2011 - DIGITEO - Calixte DENIZET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+package org.scilab.modules.ui_data.filebrowser.actions;
+
+import org.scilab.modules.ui_data.filebrowser.SwingScilabTreeTable;
+
+/**
+ * Action to load the mat file
+ * @author Calixte DENIZET
+ */
+@SuppressWarnings(value = { "serial" })
+public class ExecuteMatFileAction extends ExecuteCommandAction {
+
+    private static final String MAT = "loadmatfile('%s')";
+
+    /**
+     * {@inheritDoc}
+     */
+    public ExecuteMatFileAction(SwingScilabTreeTable table) {
+        super(table, MAT);
+    }
+}
index 7a88555..f9114b1 100644 (file)
@@ -55,6 +55,7 @@ public class ValidateAction extends CommonCallBack {
         ext.put("sav", actions.get("load"));
         ext.put("sod", actions.get("load"));
         ext.put("graph", actions.get("graph"));
+        ext.put("mat", actions.get("mat"));
     }
 
     /**
index 5749b65..c00d014 100644 (file)
 package org.scilab.modules.ui_data.utils;
 
 import java.awt.event.MouseEvent;
-
 import javax.swing.SwingUtilities;
 
 import org.scilab.modules.localization.Messages;
 
-
 /**
  * All localized messages/menus labels used in Editvar and Browsevar
  */
@@ -129,6 +127,9 @@ public final class UiDataMessages {
 
     public static final String PREVIOUSDIR = Messages.gettext("Previous directory");
     public static final String NEXTDIR = Messages.gettext("Next directory");
+    public static final String PARENTDIR = Messages.gettext("Parent directory");
+    public static final String SELECTDIR = Messages.gettext("Select a directory");
+    public static final String RUNFILTER = Messages.gettext("Run filter");
 
     /** This class is a static singleton, thus it must not be instantiated */
     private UiDataMessages() { }
index 020458d..5913814 100644 (file)
         <add as="fillColor" value="white"/>
     </add>
     <add as="RELATIONALOP" extend="blockWithLabel">
-        <add as="displayedLabel"/>
-        <!-- value for the label defined in the interface function of block -->  
+        <!-- FIXME : Show parameters over block  -->
+        <add as="displayedLabel" value="Relational&lt;BR&gt;         op : &amp;&lt;"/>
     </add>
     <add as="TEXT_f" extend="Label">
         <!-- <add as="displayedLabel" value="Text"/>  -->
index 623f0ac..42568f0 100644 (file)
Binary files a/scilab/modules/xcos/images/palettes/LOGICAL_OP.png and b/scilab/modules/xcos/images/palettes/LOGICAL_OP.png differ
index 07d64fc..315c7a9 100644 (file)
Binary files a/scilab/modules/xcos/images/palettes/RELATIONALOP.png and b/scilab/modules/xcos/images/palettes/RELATIONALOP.png differ
index ba661a4..0983ffd 100644 (file)
@@ -7,7 +7,7 @@ includedir=@includedir@/scilab
 Name: libscilab
 Description: Scilab Library
 URL: http://www.scilab.org
-Version: 5.0
+Version: @SCILAB_BINARY_VERSION@
 Requires: libxml-2.0 libpcre
 Libs: -L${libdir} -lscilab
-Cflags: -I${includedir} -lieee -lSM -lncurses -ltk8.4 -ltcl8.4 -ldl
\ No newline at end of file
+Cflags: -I${includedir} -lieee -lSM -lncurses @TCLTK_LIBS@