Initial import of atoms
Delphine Gasc [Wed, 19 Nov 2008 15:24:46 +0000 (16:24 +0100)]
69 files changed:
scilab/modules/atoms/Makefile.am [new file with mode: 0644]
scilab/modules/atoms/Makefile.in [new file with mode: 0644]
scilab/modules/atoms/etc/atoms.quit [new file with mode: 0644]
scilab/modules/atoms/etc/atoms.start [new file with mode: 0644]
scilab/modules/atoms/help/en_US/addchapter.sce [new file with mode: 0644]
scilab/modules/atoms/help/en_US/checkToolbox.xml [new file with mode: 0644]
scilab/modules/atoms/help/en_US/infoToolbox.xml [new file with mode: 0644]
scilab/modules/atoms/help/en_US/installToolbox.xml [new file with mode: 0644]
scilab/modules/atoms/help/en_US/installToolboxCategory.xml [new file with mode: 0644]
scilab/modules/atoms/help/en_US/listToolboxes.xml [new file with mode: 0644]
scilab/modules/atoms/help/en_US/removeToolbox.xml [new file with mode: 0644]
scilab/modules/atoms/help/en_US/searchToolboxes.xml [new file with mode: 0644]
scilab/modules/atoms/help/en_US/updateToolbox.xml [new file with mode: 0644]
scilab/modules/atoms/help/fr_FR/addchapter.sce [new file with mode: 0644]
scilab/modules/atoms/macros/atomsCheckConflict.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsCompareVersion.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsConstant.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsDecoupVersion.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsDisplayMessage.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsDlInstall.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsExtractValue.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsListDescription.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsReadDesc.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsReadDescFunctions.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsReadFile.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsRegisterToolbox.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsSelectPosition.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsSeparateSignVersion.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsSeparateVersionDep.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsSplitValue.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsSubstituteString.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsToolboxDirectory.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsToolboxMirror.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsUnregisterToolbox.sci [new file with mode: 0644]
scilab/modules/atoms/macros/atomsVerifVersionScilab.sci [new file with mode: 0644]
scilab/modules/atoms/macros/buildmacros.bat [new file with mode: 0644]
scilab/modules/atoms/macros/buildmacros.sce [new file with mode: 0644]
scilab/modules/atoms/macros/checkToolbox.sci [new file with mode: 0644]
scilab/modules/atoms/macros/cleanmacros.bat [new file with mode: 0644]
scilab/modules/atoms/macros/getInstalledToolboxes.sci [new file with mode: 0644]
scilab/modules/atoms/macros/getToolboxes.sci [new file with mode: 0644]
scilab/modules/atoms/macros/infoToolbox.sci [new file with mode: 0644]
scilab/modules/atoms/macros/installToolbox.sci [new file with mode: 0644]
scilab/modules/atoms/macros/installToolboxCategory.sci [new file with mode: 0644]
scilab/modules/atoms/macros/listToolboxes.sci [new file with mode: 0644]
scilab/modules/atoms/macros/removeToolbox.sci [new file with mode: 0644]
scilab/modules/atoms/macros/searchToolboxes.sci [new file with mode: 0644]
scilab/modules/atoms/macros/updateToolbox.sci [new file with mode: 0644]
scilab/modules/atoms/macros/with_toolbox.sci [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/testfonctions.dia.ref [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/testfonctions.tst [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/conflitB/DESCRIPTION [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/conflitB/DESCRIPTION-FUNCTIONS [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/local1/DESCRIPTION [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/local1/DESCRIPTION-FUNCTIONS [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/local2/DESCRIPTION [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/local2/DESCRIPTION-FUNCTIONS [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testA/DESCRIPTION [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testA/DESCRIPTION-FUNCTIONS [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testB/DESCRIPTION [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testB/DESCRIPTION-FUNCTIONS [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testC/DESCRIPTION [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testC/DESCRIPTION-FUNCTIONS [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testD/DESCRIPTION [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testD/DESCRIPTION-FUNCTIONS [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testE/DESCRIPTION [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/testE/DESCRIPTION-FUNCTIONS [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/truc/DESCRIPTION [new file with mode: 0644]
scilab/modules/atoms/tests/unit_tests/toolboxes/truc/DESCRIPTION-FUNCTIONS [new file with mode: 0644]

diff --git a/scilab/modules/atoms/Makefile.am b/scilab/modules/atoms/Makefile.am
new file mode 100644 (file)
index 0000000..103109c
--- /dev/null
@@ -0,0 +1,6 @@
+modulename=atoms
+
+include $(top_srcdir)/Makefile.incl.am
+
+libsciatoms_la_etcdir = $(mydatadir)/etc
+libsciatoms_la_etc_DATA = etc/atoms.quit etc/atoms.start
diff --git a/scilab/modules/atoms/Makefile.in b/scilab/modules/atoms/Makefile.in
new file mode 100644 (file)
index 0000000..50d324c
--- /dev/null
@@ -0,0 +1,707 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
+# Copyright (C) 2008      - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
+#
+# This file must be used under the terms of the CeCILL.
+# This source file is licensed as described in the file COPYING, which
+# you should have received as part of this distribution.  The terms
+# are also available at
+# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+#
+
+##########
+### Makefile included stuff
+### Target, variable, suffixes which are supposed to be usefull in every makefile.am
+##########
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+       $(top_srcdir)/Makefile.incl.am
+@GUI_TRUE@am__append_1 = java
+@SWIG_TRUE@am__append_2 = swig
+@GIWS_TRUE@am__append_3 = giws
+subdir = modules/atoms
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/fftw.m4 \
+       $(top_srcdir)/m4/fortran.m4 $(top_srcdir)/m4/giws.m4 \
+       $(top_srcdir)/m4/intel_compiler.m4 $(top_srcdir)/m4/java.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/libs_by_debian.m4 \
+       $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/matio.m4 \
+       $(top_srcdir)/m4/ocaml.m4 $(top_srcdir)/m4/pcre.m4 \
+       $(top_srcdir)/m4/pvm.m4 $(top_srcdir)/m4/relocatable.m4 \
+       $(top_srcdir)/m4/sciman.m4 $(top_srcdir)/m4/swig.m4 \
+       $(top_srcdir)/m4/symlinks.m4 $(top_srcdir)/m4/tcltk.m4 \
+       $(top_srcdir)/m4/umfpack.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libsciatoms_la_etcdir)"
+libsciatoms_la_etcDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(libsciatoms_la_etc_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+ANT = @ANT@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BATIK = @BATIK@
+BLAS_LIBS = @BLAS_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMMONS_LOGGING = @COMMONS_LOGGING@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FFTW3_LIB = @FFTW3_LIB@
+FFTW_ENABLE = @FFTW_ENABLE@
+FLEXDOCK = @FLEXDOCK@
+FLIBS = @FLIBS@
+FOP = @FOP@
+GIWS_BIN = @GIWS_BIN@
+GLUEGEN_RT = @GLUEGEN_RT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
+JAVAC = @JAVAC@
+JAVAH = @JAVAH@
+JAVA_G = @JAVA_G@
+JAVA_HOME = @JAVA_HOME@
+JAVA_JNI_INCLUDE = @JAVA_JNI_INCLUDE@
+JAVA_JNI_LIBS = @JAVA_JNI_LIBS@
+JDB = @JDB@
+JEUCLID_CORE = @JEUCLID_CORE@
+JHALL = @JHALL@
+JOGL = @JOGL@
+JROSETTA_API = @JROSETTA_API@
+JROSETTA_ENGINE = @JROSETTA_ENGINE@
+LAPACK_LIBS = @LAPACK_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANGENERATOR = @MANGENERATOR@
+MATIO_CFLAGS = @MATIO_CFLAGS@
+MATIO_ENABLE = @MATIO_ENABLE@
+MATIO_LIB = @MATIO_LIB@
+MKDIR_P = @MKDIR_P@
+MSGCAT = @MSGCAT@
+MSGFMT = @MSGFMT@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+OCAMLC = @OCAMLC@
+OCAMLDEP = @OCAMLDEP@
+OCAMLLEX = @OCAMLLEX@
+OCAMLOPT = @OCAMLOPT@
+OCAMLYACC = @OCAMLYACC@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCRE_CFLAGS = @PCRE_CFLAGS@
+PCRE_CONFIG = @PCRE_CONFIG@
+PCRE_LIBS = @PCRE_LIBS@
+PCRE_VERSION = @PCRE_VERSION@
+POW_LIB = @POW_LIB@
+PVMARCH = @PVMARCH@
+PVMGETARCH = @PVMGETARCH@
+PVM_ENABLE = @PVM_ENABLE@
+PVM_INCLUDE = @PVM_INCLUDE@
+PVM_LIB = @PVM_LIB@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELOCATABLE = @RELOCATABLE@
+RT_LIB = @RT_LIB@
+SAXON = @SAXON@
+SCICOS_ENABLE = @SCICOS_ENABLE@
+SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SET_RELOCATABLE = @SET_RELOCATABLE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SWIG_BIN = @SWIG_BIN@
+SWIG_JAVA = @SWIG_JAVA@
+SWIG_RUNTIME_LIBS_DIR = @SWIG_RUNTIME_LIBS_DIR@
+TCLTK_LIBS = @TCLTK_LIBS@
+TCL_INC_PATH = @TCL_INC_PATH@
+TERMCAP_LIB = @TERMCAP_LIB@
+TK_INC_PATH = @TK_INC_PATH@
+UMFPACK_ENABLE = @UMFPACK_ENABLE@
+UMFPACK_LIB = @UMFPACK_LIB@
+VERSION = @VERSION@
+WITH = @WITH@
+WITH_OCAML = @WITH_OCAML@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XML_CONFIG = @XML_CONFIG@
+XML_FLAGS = @XML_FLAGS@
+XML_LIBS = @XML_LIBS@
+XML_VERSION = @XML_VERSION@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cxx_present = @cxx_present@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+modulename = atoms
+
+# Where all the Scilab stuff is installed (macros, help, ...)
+mydatadir = $(pkgdatadir)/modules/$(modulename)
+
+########################### JAVA ######################################
+#### We are delegating java compilation to ant... Thanks to that
+#### the procedure will be the same with Microsoft Windows (C)
+#### and Linux/Unix
+#######################################################################
+TARGETS_ALL = $(am__append_1) $(am__append_2) $(am__append_3)
+
+################ MACROS ######################
+# Rule to build a macro
+# NOT USED  AT THE MOMENT
+SUFFIXES = .sci 
+
+########### INSTALL DOCUMENTATION ###################
+
+# Install HTML files into the right target
+# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because
+# automake needs the html files to be present which is not the case when
+# we are building Scilab
+
+# Where it should be installed
+pkgdocdir = $(mydatadir)
+
+# Which directories we have to install
+DOCDIRS = help/fr_FR help/en_US
+
+# What is the mask of the help output
+DOCMASK = *.htm
+
+# Which directories we have to install
+DOCIMGDIRS = help/images
+# What is the mask of the help images
+DOCIMGMASK = *
+
+# What is the mask of the help source
+DOCMASKXML = *.xml
+
+# Chapter file
+HELP_CHAPTERFILE = addchapter.sce
+
+########### INSTALL DATA ###################
+# Install macros
+# Where it should be installed
+pkgmacrosdir = $(mydatadir)
+# Which directory we process
+MACRODIRS = macros/
+# Mask of the Scilab sources macros
+MACROMASK = *.sci
+# Mask of the Scilab executable sources macros
+MACROBUILDMASK = *.sce
+# Mask of the Scilab compiled macros
+MACROBINMASK = *.bin
+# List of the function of a module
+TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests
+# Where to export JAVA files (.jar)
+JARDIR = jar/
+# JAR files
+JARMASK = *.jar
+libsciatoms_la_etcdir = $(mydatadir)/etc
+libsciatoms_la_etc_DATA = etc/atoms.quit etc/atoms.start
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .sci .bin
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  modules/atoms/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --foreign  modules/atoms/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-libsciatoms_la_etcDATA: $(libsciatoms_la_etc_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(libsciatoms_la_etcdir)" || $(MKDIR_P) "$(DESTDIR)$(libsciatoms_la_etcdir)"
+       @list='$(libsciatoms_la_etc_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f=$(am__strip_dir) \
+         echo " $(libsciatoms_la_etcDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(libsciatoms_la_etcdir)/$$f'"; \
+         $(libsciatoms_la_etcDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(libsciatoms_la_etcdir)/$$f"; \
+       done
+
+uninstall-libsciatoms_la_etcDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libsciatoms_la_etc_DATA)'; for p in $$list; do \
+         f=$(am__strip_dir) \
+         echo " rm -f '$(DESTDIR)$(libsciatoms_la_etcdir)/$$f'"; \
+         rm -f "$(DESTDIR)$(libsciatoms_la_etcdir)/$$f"; \
+       done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+       $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(DATA) all-local
+installdirs:
+       for dir in "$(DESTDIR)$(libsciatoms_la_etcdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-libsciatoms_la_etcDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am: install-html-local
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libsciatoms_la_etcDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am check-local clean \
+       clean-generic clean-libtool clean-local distclean \
+       distclean-generic distclean-libtool distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-data-local install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-html-local install-info install-info-am \
+       install-libsciatoms_la_etcDATA install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-libsciatoms_la_etcDATA
+
+
+# This target enables tests for Scilab
+check-local: $(top_builddir)/scilab-bin
+       @if test -f build.xml; then \
+               $(ANT) checkstyle; \
+       fi;\
+       COMMAND="test_run('$(modulename)');quit";\
+       export LANG=C;\
+       $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"
+@GUI_TRUE@java:
+# Some configurations needs to export JAVA_HOME in the current env
+@GUI_TRUE@     @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+@GUI_TRUE@     if test -f build.xml; then \
+@GUI_TRUE@             $(ANT) jar; \
+@GUI_TRUE@     fi
+
+@GUI_TRUE@clean-java:
+# Some configurations needs to export JAVA_HOME in the current env
+@GUI_TRUE@     @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+@GUI_TRUE@     if test -f build.xml; then \
+@GUI_TRUE@             $(ANT) clean; \
+@GUI_TRUE@     fi
+# If the user request for the SWIG generation of the wrappers Java => C/C++ 
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+@SWIG_TRUE@swig: $(SWIG_WRAPPERS)
+@SWIG_TRUE@    @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \
+@SWIG_TRUE@    SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \
+@SWIG_TRUE@    if test ! -z "$(SWIG_WRAPPERS)"; then \
+@SWIG_TRUE@            for file in $(SWIG_WRAPPERS) ; do \
+@SWIG_TRUE@                    echo "Swig process of $$file ..."; \
+@SWIG_TRUE@                    $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME  -outdir $$SWIG_OUTDIR $$file; \
+@SWIG_TRUE@            done; \
+@SWIG_TRUE@    fi
+
+# If the user request for the SWIG generation of the wrappers Java => C/C++ 
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+@GIWS_TRUE@giws: $(GIWS_WRAPPERS)
+@GIWS_TRUE@    @GIWS_OUTPUTDIR=src/jni/;\
+@GIWS_TRUE@    if test ! -z "$(GIWS_WRAPPERS)"; then \
+@GIWS_TRUE@            for file in $(GIWS_WRAPPERS) ; do \
+@GIWS_TRUE@                    echo "GIWS process of $$file ..."; \
+@GIWS_TRUE@                    $(GIWS_BIN) --output-dir $$GIWS_OUTPUTDIR --description-file $$file; \
+@GIWS_TRUE@            done; \
+@GIWS_TRUE@    fi
+
+macros:
+       -@( if test ! -x $(top_builddir)/scilab-bin; then \
+               echo "Error : Cannot build $< : Scilab has not been built"; \
+       else \
+               $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\
+       fi)
+
+# Removes the macros
+clean-macros:
+# Removes macros (*.bin generated from .sci)
+       @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+               echo "rm -f $(srcdir)/$$dir/$(MACROBINMASK)"; \
+               rm -f $(srcdir)/$$dir/$(MACROBINMASK); \
+       done
+
+all-local: $(TARGETS_ALL)
+
+.sci.bin:
+       -@( if test ! -x $(top_builddir)/scilab-bin; then \
+       echo "Error : Cannot build $< : Scilab has not been build"; \
+       else \
+       echo "Creating $@"; \
+       $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \
+       fi )
+
+install-html-local:
+       @echo "-- Install of htm help files --"; \
+       $(mkinstalldirs) $(DESTDIR)$(pkgdocdir); \
+       for dir in $(DOCDIRS) ; do \
+               if test -d $$dir; then \
+                       $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
+                       if ls -lLd $(srcdir)/$$dir/$(DOCMASK) >/dev/null 2>&1; then \
+                               for file in $(srcdir)/$$dir/$(DOCMASK) ; do \
+                                       echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$$dir" ; \
+                                       $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$$dir ; \
+                               done ; \
+                       fi; \
+                       if ls -lLd $(srcdir)/$$dir/$(HELP_CHAPTERFILE) >/dev/null 2>&1; then \
+                               for file in $(srcdir)/$$dir/$(HELP_CHAPTERFILE) ; do \
+                                       echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$$dir" ; \
+                                       $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$$dir ; \
+                               done ; \
+                       fi; \
+               fi; \
+       done
+       @echo "-- Install of images help files --"; \
+       $(mkinstalldirs) $(DESTDIR)$(pkgdocdir); \
+       for dir in $(DOCIMGDIRS) ; do \
+        if test -d $$dir; then \
+         $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
+               if ls -lLd $(srcdir)/$$dir/$(DOCIMGMASK) >/dev/null 2>&1; then \
+                 for file in $(srcdir)/$$dir/$(DOCIMGMASK) ; do \
+                   echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$$dir" ; \
+               $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$$dir ; \
+                 done ; \
+               fi; \
+        fi; \
+       done
+
+# If the user wants the help sources to be installed
+@INSTALL_HELP_XML_TRUE@        @echo "-- Install of XML sources of help files --"; \
+@INSTALL_HELP_XML_TRUE@        for dir in $(DOCDIRS) ; do \
+@INSTALL_HELP_XML_TRUE@         if test -d $$dir; then \
+@INSTALL_HELP_XML_TRUE@          $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
+@INSTALL_HELP_XML_TRUE@                if ls -lLd $(srcdir)/$$dir/$(DOCMASKXML) >/dev/null 2>&1; then \
+@INSTALL_HELP_XML_TRUE@                  for file in $(srcdir)/$$dir/$(DOCMASKXML) ; do \
+@INSTALL_HELP_XML_TRUE@                    echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$$dir" ; \
+@INSTALL_HELP_XML_TRUE@                $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$$dir ; \
+@INSTALL_HELP_XML_TRUE@                  done ; \
+@INSTALL_HELP_XML_TRUE@                fi; \
+@INSTALL_HELP_XML_TRUE@         fi; \
+@INSTALL_HELP_XML_TRUE@        done
+install-data-local:
+# Install the tests
+       @echo "-- Install tests (if any) --"; \
+       for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \
+         if test -d $(srcdir)/$$dir/; then \
+           $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+                 for file in `find $(srcdir)/$$dir | grep -v '\.svn' | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
+                   if test -d "$(srcdir)/$$dir/$$file"; then \
+                         echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \
+                         $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \
+                   else \
+                     echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+                 $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+                   fi \
+                 done; \
+         fi; \
+       done 
+# Install the macros
+       @echo "-- Install macros (if any) --"; \
+       for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+         $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+               if test -d $(srcdir)/$$dir/; then \
+                       FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\
+                       for specialExt in $(MACROSSPECIALEXT); do \
+                               specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \
+                       done; \
+                       FILELIST="$$FILELIST $$specialExtDir"; \
+                 for file in `ls -1 $$FILELIST 2>/dev/null`; do \
+                   echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \
+               $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \
+                 done; \
+               fi; \
+       done
+# Install java files (.jar)
+       @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \
+       echo "-- Install jar files --"; \
+    $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \
+         for file in $(srcdir)/$(JARDIR)$(JARMASK); do\
+                   echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \
+               $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \
+         done ; \
+       fi
+
+########### CLEAN ###################
+# Clean macros and help (generated automatically by Scilab)
+@GUI_TRUE@clean-local: clean-java clean-macros
+@GUI_FALSE@clean-local: clean-macros
+# Removes documentation (*.htm generated from .xml) 
+       @for dir in $(DOCDIRS) ; do \
+                if test -d $$dir -a -z "$(DISABLE_HELP_CLEAN)"; then \
+                       echo "rm -f $(srcdir)/$$dir/$(DOCMASK)"; \
+                       rm -f $(srcdir)/$$dir/$(DOCMASK); \
+               fi; \
+       done
+
+.PHONY: macros java swig giws
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/scilab/modules/atoms/etc/atoms.quit b/scilab/modules/atoms/etc/atoms.quit
new file mode 100644 (file)
index 0000000..78dfe46
--- /dev/null
@@ -0,0 +1,15 @@
+// ====================================================================
+// This file contains command to be executed at the end 
+// of a scilab session for atoms module
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA  - Delphine Gasc (2008)
+// 
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at    
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// ====================================================================
+// delete help chapter
+del_help_chapter('atoms',%T);
+// ====================================================================
diff --git a/scilab/modules/atoms/etc/atoms.start b/scilab/modules/atoms/etc/atoms.start
new file mode 100644 (file)
index 0000000..e22b362
--- /dev/null
@@ -0,0 +1,19 @@
+// ====================================================================
+// atoms module initialisation file 
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - Delphine Gasc (2008)
+// 
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at    
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// ====================================================================
+//Load  functions librarie
+load('SCI/modules/atoms/macros/lib');
+// ====================================================================
+//add help chapter
+add_module_help_chapter('atoms');
+// ====================================================================
+// Create user's toolboxes directory
+mkdir(atomsToolboxDirectory());
diff --git a/scilab/modules/atoms/help/en_US/addchapter.sce b/scilab/modules/atoms/help/en_US/addchapter.sce
new file mode 100644 (file)
index 0000000..fc50901
--- /dev/null
@@ -0,0 +1,10 @@
+// ====================================================================
+// help atoms module
+// Add chapter
+// Copyright INRIA 2008
+// Delphine Gasc
+// ====================================================================
+path = SCI+'/modules/atoms/help/'+getdefaultlanguage();
+add_help_chapter("Atoms",path,%T);
+clear path add_help_chapter;
+// ====================================================================
diff --git a/scilab/modules/atoms/help/en_US/checkToolbox.xml b/scilab/modules/atoms/help/en_US/checkToolbox.xml
new file mode 100644 (file)
index 0000000..c2a801c
--- /dev/null
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - 
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry version="5.0-subset Scilab" xml:id="checkToolbox" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <pubdate>$LastChangedDate: 2008-06-10 11:00:00 +0200 (Tue, 10 Jun 2008)
+    $</pubdate>
+  </info>
+
+  <refnamediv>
+    <refname>checkToolbox</refname>
+
+    <refpurpose>Verify the good construction of a Toolbox</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <title>Calling Sequence</title>
+
+    <synopsis>checkToolbox(name)</synopsis>
+  </refsynopsisdiv>
+
+  <refsection>
+    <title>Parameters</title>
+
+    <variablelist>
+      <varlistentry>
+        <term>name</term>
+
+        <listitem>
+          <para>A character string.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsection>
+
+  <refsection>
+    <title>Description</title>
+
+    <para>This function check if all the needed informations are present.</para>
+  </refsection>
+
+  <refsection>
+    <title>Examples</title>
+
+    <programlisting role="example">
+
+checkToolbox("maToolbox")
+
+  </programlisting>
+  </refsection>
+
+  <refsection>
+    <title>See Also</title>
+
+    <simplelist type="inline">
+      <member><link linkend="installToolbox">installToolbox</link></member>
+    </simplelist>
+  </refsection>
+</refentry>
diff --git a/scilab/modules/atoms/help/en_US/infoToolbox.xml b/scilab/modules/atoms/help/en_US/infoToolbox.xml
new file mode 100644 (file)
index 0000000..3081571
--- /dev/null
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - 
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry version="5.0-subset Scilab" xml:id="infoToolbox" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <pubdate>$LastChangedDate: 2008-06-10 11:00:00 +0200 (Tue, 10 Jun 2008)
+    $</pubdate>
+  </info>
+
+  <refnamediv>
+    <refname>infoToolbox</refname>
+
+    <refpurpose>give information about a Toolbox</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <title>Calling Sequence</title>
+
+    <synopsis>infoToolbox(name)</synopsis>
+  </refsynopsisdiv>
+
+  <refsection>
+    <title>Parameters</title>
+
+    <variablelist>
+      <varlistentry>
+        <term>name</term>
+
+        <listitem>
+          <para>A character string.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsection>
+
+  <refsection>
+    <title>Description</title>
+
+    <para>This function give information (version, description, functions,
+    etc) about a Toolbox.</para>
+  </refsection>
+
+  <refsection>
+    <title>Examples</title>
+
+    <programlisting role="example">
+
+infoToolbox("maToolbox")
+
+  </programlisting>
+  </refsection>
+
+  <refsection>
+    <title>See Also</title>
+
+    <simplelist type="inline">
+      <member><link linkend="installToolbox">installToolbox</link></member>
+
+      <member><link linkend="listToolboxes">listToolboxes</link></member>
+    </simplelist>
+  </refsection>
+</refentry>
diff --git a/scilab/modules/atoms/help/en_US/installToolbox.xml b/scilab/modules/atoms/help/en_US/installToolbox.xml
new file mode 100644 (file)
index 0000000..8dd223a
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - 
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="installToolbox">
+  <info>
+    <pubdate>$LastChangedDate: 2008-06-10 11:00:00 +0200 (Tue, 10 Jun 2008) $</pubdate>
+  </info>
+  <refnamediv>
+    <refname>installToolbox</refname>
+    <refpurpose>download the Toolbox on the operating system</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <title>Calling Sequence</title>
+    <synopsis>installToolbox(name)</synopsis>
+  </refsynopsisdiv>
+  <refsection>
+    <title>Parameters</title>
+    <variablelist>
+      <varlistentry>
+        <term>name</term>
+        <listitem>
+          <para>A character string.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsection>
+  <refsection>
+    <title>Description</title>
+    <para>This function download the Toolbox with the dependencies.</para>
+  </refsection>
+  <refsection>
+    <title>Examples</title>
+    <programlisting role="example"><![CDATA[
+
+installToolbox("maToolbox")
+
+  ]]></programlisting>
+  </refsection>
+  <refsection>
+    <title>See Also</title>
+    <simplelist type="inline">
+      <member>
+        <link linkend="infoToolbox">infoToolbox</link>
+      </member>
+      <member>
+        <link linkend="removeToolboxes">removeToolboxes</link>
+      </member>
+      <member>
+        <link linkend="installToolboxCategory">installToolboxCategory</link>
+      </member>
+    </simplelist>
+  </refsection>
+</refentry>
diff --git a/scilab/modules/atoms/help/en_US/installToolboxCategory.xml b/scilab/modules/atoms/help/en_US/installToolboxCategory.xml
new file mode 100644 (file)
index 0000000..7f52a6c
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - 
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="installToolboxCategory">
+  <info>
+    <pubdate>$LastChangedDate: 2008-06-10 11:00:00 +0200 (Tue, 10 Jun 2008) $</pubdate>
+  </info>
+  <refnamediv>
+    <refname>installToolboxCategory</refname>
+    <refpurpose>download all the Toolbox about a category in the operating system</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <title>Calling Sequence</title>
+    <synopsis>installToolboxCategory(cat, sscat)</synopsis>
+  </refsynopsisdiv>
+  <refsection>
+    <title>Parameters</title>
+    <variablelist>
+      <varlistentry>
+        <term>cat</term>
+        <listitem>
+          <para>A character string.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>sscat</term>
+        <listitem>
+          <para>A character string.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsection>
+  <refsection>
+    <title>Description</title>
+    <para>This function download Toolboxes that have cat and sscat parametre</para>
+  </refsection>
+  <refsection>
+    <title>Examples</title>
+    <programlisting role="example"><![CDATA[
+
+installToolboxCategory("biology", "genetic")
+
+  ]]></programlisting>
+  </refsection>
+  <refsection>
+    <title>See Also</title>
+    <simplelist type="inline">
+      <member>
+        <link linkend="infoToolbox">infoToolbox</link>
+      </member>
+      <member>
+        <link linkend="removeToolboxes">removeToolboxes</link>
+      </member>
+      <member>
+        <link linkend="installToolbox">installToolbox</link>
+      </member>
+    </simplelist>
+  </refsection>
+</refentry>
diff --git a/scilab/modules/atoms/help/en_US/listToolboxes.xml b/scilab/modules/atoms/help/en_US/listToolboxes.xml
new file mode 100644 (file)
index 0000000..96f177e
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - 
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="listToolboxes">
+  <info>
+    <pubdate>$LastChangedDate: 2008-06-10 11:00:00 +0200 (Tue, 10 Jun 2008) $</pubdate>
+  </info>
+  <refnamediv>
+    <refname>listToolboxes</refname>
+    <refpurpose>give all the toolboxes installed in the system</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <title>Calling Sequence</title>
+    <synopsis>listToolboxes()</synopsis>
+  </refsynopsisdiv>
+  <refsection>
+    <title>Description</title>
+    <para>This function give all the toolboxes installed in the system</para>
+  </refsection>
+  <refsection>
+    <title>Examples</title>
+    <programlisting role="example"><![CDATA[
+
+listToolboxes()
+
+  ]]></programlisting>
+  </refsection>
+  <refsection>
+    <title>See Also</title>
+    <simplelist type="inline">
+      <member>
+        <link linkend="infoToolbox">infoToolbox</link>
+      </member>
+      <member>
+        <link linkend="installToolbox">installToolbox</link>
+      </member>
+    </simplelist>
+  </refsection>
+</refentry>
diff --git a/scilab/modules/atoms/help/en_US/removeToolbox.xml b/scilab/modules/atoms/help/en_US/removeToolbox.xml
new file mode 100644 (file)
index 0000000..43f1a3a
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - 
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="removeToolbox">
+  <info>
+    <pubdate>$LastChangedDate: 2008-06-10 11:00:00 +0200 (Tue, 10 Jun 2008) $</pubdate>
+  </info>
+  <refnamediv>
+    <refname>removeToolbox</refname>
+    <refpurpose>delete the toolbox installed in the system</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <title>Calling Sequence</title>
+    <synopsis>removeToolbox(name)</synopsis>
+  </refsynopsisdiv>
+  <refsection>
+    <title>Parameters</title>
+    <variablelist>
+      <varlistentry>
+        <term>name</term>
+        <listitem>
+          <para>A character string.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsection>
+  <refsection>
+    <title>Description</title>
+    <para>This function delete the toolbox installed in the system</para>
+  </refsection>
+  <refsection>
+    <title>Examples</title>
+    <programlisting role="example"><![CDATA[
+
+removeToolbox("maToolbox")
+removeToolbox("all")
+
+  ]]></programlisting>
+  </refsection>
+  <refsection>
+    <title>See Also</title>
+    <simplelist type="inline">
+      <member>
+        <link linkend="installToolbox">installToolbox</link>
+      </member>
+    </simplelist>
+  </refsection>
+</refentry>
diff --git a/scilab/modules/atoms/help/en_US/searchToolboxes.xml b/scilab/modules/atoms/help/en_US/searchToolboxes.xml
new file mode 100644 (file)
index 0000000..39e86a0
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - 
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="searchToolboxes">
+  <info>
+    <pubdate>$LastChangedDate: 2008-06-10 11:00:00 +0200 (Tue, 10 Jun 2008) $</pubdate>
+  </info>
+  <refnamediv>
+    <refname>searchToolboxes</refname>
+    <refpurpose>search a Toolbox</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <title>Calling Sequence</title>
+    <synopsis>searchToolboxes(keyWord, typeSearch)</synopsis>
+  </refsynopsisdiv>
+  <refsection>
+    <title>Parameters</title>
+    <variablelist>
+      <varlistentry>
+        <term>keyWord</term>
+        <listitem>
+          <para>A character string.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>typeSearch</term>
+        <listitem>
+          <para>A character string.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsection>
+  <refsection>
+    <title>Description</title>
+    <para>This function search Toolboxes that have keyWord in their Description</para>
+  </refsection>
+  <refsection>
+    <title>Examples</title>
+    <programlisting role="example"><![CDATA[
+
+searchToolboxes("toto", "author")
+searchToolboxes("inria", "entity")
+searchToolboxes("modelisation 3D", "function")
+searchToolboxes("toto inria modelisation")
+
+  ]]></programlisting>
+  </refsection>
+  <refsection>
+    <title>See Also</title>
+    <simplelist type="inline">
+      <member>
+        <link linkend="installToolbox">installToolbox</link>
+      </member>
+      <member>
+        <link linkend="infoToolbox">infoToolbox</link>
+      </member>
+    </simplelist>
+  </refsection>
+</refentry>
diff --git a/scilab/modules/atoms/help/en_US/updateToolbox.xml b/scilab/modules/atoms/help/en_US/updateToolbox.xml
new file mode 100644 (file)
index 0000000..2038e2d
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA - 
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="updateToolbox">
+  <info>
+    <pubdate>$LastChangedDate: 2008-06-10 11:00:00 +0200 (Tue, 10 Jun 2008) $</pubdate>
+  </info>
+  <refnamediv>
+    <refname>updateToolbox</refname>
+    <refpurpose>update a Toolbox</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <title>Calling Sequence</title>
+    <synopsis>updateToolbox(name)</synopsis>
+  </refsynopsisdiv>
+  <refsection>
+    <title>Parameters</title>
+    <variablelist>
+      <varlistentry>
+        <term>name</term>
+        <listitem>
+          <para>A character string.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsection>
+  <refsection>
+    <title>Description</title>
+    <para>This function update the version of a Toolbox</para>
+  </refsection>
+  <refsection>
+    <title>Examples</title>
+    <programlisting role="example"><![CDATA[
+
+updateToolbox("maToolbox")
+updateToolbox("all")
+
+  ]]></programlisting>
+  </refsection>
+  <refsection>
+    <title>See Also</title>
+    <simplelist type="inline">
+      <member>
+        <link linkend="installToolbox">installToolbox</link>
+      </member>
+      <member>
+        <link linkend="infoToolbox">infoToolbox</link>
+      </member>
+    </simplelist>
+  </refsection>
+</refentry>
diff --git a/scilab/modules/atoms/help/fr_FR/addchapter.sce b/scilab/modules/atoms/help/fr_FR/addchapter.sce
new file mode 100644 (file)
index 0000000..fc50901
--- /dev/null
@@ -0,0 +1,10 @@
+// ====================================================================
+// help atoms module
+// Add chapter
+// Copyright INRIA 2008
+// Delphine Gasc
+// ====================================================================
+path = SCI+'/modules/atoms/help/'+getdefaultlanguage();
+add_help_chapter("Atoms",path,%T);
+clear path add_help_chapter;
+// ====================================================================
diff --git a/scilab/modules/atoms/macros/atomsCheckConflict.sci b/scilab/modules/atoms/macros/atomsCheckConflict.sci
new file mode 100644 (file)
index 0000000..8cdde6f
--- /dev/null
@@ -0,0 +1,108 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Building of the dependancies list 
+
+function listeDep = atomsCheckConflict(nom, version, checkVersionScilab)
+  global conflictLocal
+  global conflictingList
+  global nomconflictLocal
+  global conflictVersion
+  // If there is no version
+  if argn(2) == 1
+    version = ""
+  end
+  clearglobal conflictingList
+  listeDep = checkDependencies(nom, version)
+  [n, m] = size(listeDep)
+  for i=1:n-1
+    // We compare name
+    [nom1, version1] = atomsSeparateVersionDep(listeDep(i))
+    [nom2, version2] = atomsSeparateVersionDep(listeDep(i+1))
+    if nom1 == nom2
+      // If there are 2 versions possible, there is necessary a dependancies <=
+      // If there is, this maximum version must match with the authers dep
+      // We install in local, and if the conflictLocal tag is 1, there is a version conflict, else is ok
+      v1 = atomsDecoupVersion(version1)
+      v2 = atomsDecoupVersion(version2)
+      if atomsCompareVersion(v1, v2) == 1 | atomsCompareVersion(v1, v2) == 0
+        atomsDlInstall(nom1, version2)
+      else
+        atomsDlInstall(nom1, version1)
+      end
+      clearglobal conflictLocal
+      clearglobal conflictingList
+      clearglobal nomconflictLocal
+      clearglobal conflictVersion
+      listeDep2 = checkDependencies(nom, version)
+      if conflictLocal == 1
+        conflictVersion = 1
+        rep = atomsToolboxDirectory()
+        rmdir(rep + nom1, "s")
+      end
+    end
+  end
+endfunction
+
+function listeDep = checkDependencies(nom, version)
+  // To avoid redundancies and loops
+  global conflictingList
+  global conflictLocal
+  global nomconflictLocal
+  global conflictVersion
+  // If there is no version
+  if argn(2) == 1
+    version = ""
+  end
+  // Reading of the description file
+  desc = atomsReadDesc(nom)
+  // Selection of the position toolbox in the disponible list toolboxes.
+  position = atomsSelectPosition(desc, nom, version, checkVersionScilab)
+  // Case where the the toolbox is not present
+  if position == 0
+    atomsDisplayMessage("Toolbox " + nom + " not find")
+    listeDep = ""
+    return listeDep
+  elseif position == 0.1
+    conflictLocal = 1
+    nomconflictLocal = nom
+    listeDep = ""
+    return listeDep
+  end
+  // If the toolbox with this version have been already found, it's useless to build again the dependencies tree
+  if find(conflictingList == (desc("Toolbox")(position) + " (" + desc("Version")(position) + ")"))
+    resume
+  end
+  listeDep = desc("Toolbox")(position) + " (" + desc("Version")(position) + ")"
+  [a, b] = size(conflictingList)
+  conflictingList(a+1) = desc("Toolbox")(position) + " (" + desc("Version")(position) + ")"
+  // Recuperation of the dependancies
+  depends = atomsExtractValue("Depends", desc, position)
+  // If there is no dependancies
+  if depends == " " | depends == ""
+       return listeDep
+  end
+  // If there is many dependancies, we split it in many string
+  depends = atomsSplitValue(depends, ',')
+  // Addition in the toolboxes list to install
+  [n, m] = size(depends)
+  for i=1:n
+       [nb, x] = size(listeDep)
+       // Separation of the version and the dependancie
+       [depend, version] = atomsSeparateVersionDep(depends(i))
+       // Research of dependancies
+       deps = checkDependencies(depend, version)
+       [o, p] = size(deps)
+       for i=1:o
+      listeDep(nb+i)=deps(i)
+    end        
+  end
+  listeDep = unique(listeDep)
+  return listeDep
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsCompareVersion.sci b/scilab/modules/atoms/macros/atomsCompareVersion.sci
new file mode 100644 (file)
index 0000000..ae2e466
--- /dev/null
@@ -0,0 +1,25 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Compare two versions ; returns 0 on equality, 1 if the first is greater
+// than the second, -1 else
+
+function result = atomsCompareVersion(v1, v2)
+  if strtod(v1(1)) > strtod(v2(1))
+    result = 1
+  elseif strtod(v1(1)) < strtod(v2(1))
+    result = -1
+  else
+    if size(v1, 1) >= 2 & size(v2, 1) >= 2
+      result = atomsCompareVersion(v1(2:$), v2(2:$))
+    else
+      result = sign(size(v1, 1) - size(v2, 1))
+    end
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsConstant.sci b/scilab/modules/atoms/macros/atomsConstant.sci
new file mode 100644 (file)
index 0000000..2e8fe92
--- /dev/null
@@ -0,0 +1,18 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Recup of the basics informations
+
+// Fields present in the DESCRIPTION file
+function [listeObl, listeOpt] = atomsConstant()
+  // Compulsory field
+  listeObl = ["Toolbox","Version","Title","Author","Maintainer","Description","License","Category","ScilabVersion"]
+  // Optionnal field
+  listeOpt = ["Date","Depends","ExternalDepends","URL","Entity"]
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsDecoupVersion.sci b/scilab/modules/atoms/macros/atomsDecoupVersion.sci
new file mode 100644 (file)
index 0000000..a6de0e8
--- /dev/null
@@ -0,0 +1,17 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Division of the version in 2 or 3 numbers
+
+function version = atomsDecoupVersion(version)
+  index = strindex(version, ".")
+  version = strsplit(version,index)
+  version = strsubst(version, ".", "")
+  version = strsubst(version, " ", "")
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsDisplayMessage.sci b/scilab/modules/atoms/macros/atomsDisplayMessage.sci
new file mode 100644 (file)
index 0000000..328ba05
--- /dev/null
@@ -0,0 +1,20 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// april 2008 by Delphine
+
+function atomsDisplayMessage(mess)
+       // If Scilab is running in GUI mode
+       if (getscilabmode() == "STD")
+               result = messagebox(mess,"Information","info")
+       else
+               // In the shell
+               disp(mess)
+       end
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsDlInstall.sci b/scilab/modules/atoms/macros/atomsDlInstall.sci
new file mode 100644 (file)
index 0000000..c746d1e
--- /dev/null
@@ -0,0 +1,79 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Download and install
+
+function result = atomsDlInstall(nom, version)
+  rep = atomsToolboxDirectory()
+  arch = nom + "." + version + ".tar.gz"
+  // Download of the archive
+  cd (rep)
+  listMirror = atomsToolboxMirror()
+  if dlArchive(listMirror, 1, arch)
+    // Unzip
+    if dezipp(arch)
+      // Delete the archive
+      if removeFile(arch)
+        result = %t
+        return result
+      else
+        result = %f
+        return result
+      end
+    else
+      result = %f
+      return result
+    end
+  else
+    result = %f
+    return result  
+  end
+endfunction
+
+// Recup the archive in the web
+function result = dlArchive(listWeb, position, name)
+  [rep,stat,err] = unix_g("wget " + listWeb(position) + "/" + name)
+  // If the file is not present
+  if stat <> 0
+    [n, m] = size(listWeb)
+    // If we exceed the list size
+    if (position + 1) > m
+      atomsDisplayMessage("Check the validity of the repository")
+      result = %f
+      return result
+    else
+      result = dlArchive(listWeb, position+1, name)
+    end
+  else 
+    result = %t
+  end
+  return result  
+endfunction
+
+// Unzip
+function result = dezipp(fileD)
+  if getos() == "Windows"
+    [rep,stat,err] = unix_g("zcat " + fileD + " | tar -xvf -")
+  else // linux and mac
+    [rep,stat,err] = unix_g("tar -zxvf " + fileD)
+  end
+  if stat <> 0
+    result = %f
+    return result
+  else
+    result = %t
+    return result
+  end
+endfunction
+
+// Delete function of the file
+function result = removeFile(fileR)
+  result = deletefile(fileR)
+  return result
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsExtractValue.sci b/scilab/modules/atoms/macros/atomsExtractValue.sci
new file mode 100644 (file)
index 0000000..0c23e7c
--- /dev/null
@@ -0,0 +1,14 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Recup a particular field of the description for the toolbox
+
+function fieldValue = atomsExtractValue(field, listdDesc, position)
+  fieldValue = listdDesc(field)(position)
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsListDescription.sci b/scilab/modules/atoms/macros/atomsListDescription.sci
new file mode 100644 (file)
index 0000000..795b1b1
--- /dev/null
@@ -0,0 +1,22 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Creation of a list packaging the informations of the DESCRIPTION file
+
+function listDesc = atomsListDescription()
+  [listeObl, listeOpt] = atomsConstant()
+  [n, m] = size(listeObl)
+  for i=1:m
+    listDesc(listeObl(i))= []
+  end
+  [n, o] = size(listeOpt)
+  for i=1:o
+    listDesc(listeOpt(i))= []
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsReadDesc.sci b/scilab/modules/atoms/macros/atomsReadDesc.sci
new file mode 100644 (file)
index 0000000..b9da7b9
--- /dev/null
@@ -0,0 +1,171 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Parsing of the Description file
+
+function desc = atomsReadDesc(nom)
+  // We go to the directory with the toolboxes
+  rep = atomsToolboxDirectory()
+  d = rep + nom
+  // Support of the different OS 
+  if getos() == "Windows"
+    directory = d + "\DESCRIPTION"
+  else // linux and mac
+    directory = d + "/DESCRIPTION"
+  end
+  // If we find the repertory in local and the DESCRIPTION file is present
+  if (isdir(d) & ls(directory) <> [])
+    cd (d)
+    // Reading of the DESCRIPTION file which we stock in a array
+    tab = atomsReadFile("DESCRIPTION")
+    // Creation of a "hash table"
+    desc = atomsListDescription()
+    // Filling of the hash table
+    desc = hashTable(desc, tab)
+    // Treatment of the file name (special characteres) to insure the validity of the name file and the PATH 
+    desc("Toolbox") = atomsSubstituteString(desc("Toolbox"))
+    // We add the function field
+    clearglobal numberFunction
+    desc("Function") = atomsReadDescFunctions(nom)
+  // Else we search in the net
+  else
+       cd (rep)
+       // Creation of a "hash table"
+       desc = atomsListDescription()
+       // Sites list to cross
+       listMirror = atomsToolboxMirror()
+       [n, m] = size(listMirror)
+       clearglobal numberFunction
+       global numberFunction
+       numberFunction = 0
+       for i=1:m
+         // We recup the file in the net and we put a copy in the directory under the name TOOLBOXES
+         if dlFile(listMirror(i), "TOOLBOXES")
+        // Reading of the TOOLBOXES file which we stock in a array
+        tab = atomsReadFile("TOOLBOXES")
+        // We delete the temporary file created
+        if ~removeFile("TOOLBOXES")
+             disp("Please delete the file TOOLBOXES of your courant repertory")
+           end
+        // We fill the array with the different toolboxes
+        desc = hashTable2(desc, tab)
+        // Treatment of the file name (special characteres) to insure the validity of the name file and the PATH 
+        [a, b] = size(desc("Toolbox"))
+        for j=1:a
+          desc("Toolbox")(j) = atomsSubstituteString(desc("Toolbox")(j))
+        end
+      else
+        result = %f
+        return result
+      end
+    end
+  end
+  result = %t
+  return result
+endfunction
+
+// Recuperation of the file in the web
+function result = dlFile(web, fileWeb)
+       [rep,stat,err] = unix_g("wget " + web + "/TOOLBOXES" + " -O " + fileWeb)
+       // If the file is not present
+       if stat <> 0
+         atomsDisplayMessage("Please check the validity of the repository")
+         if ~removeFile(fileWeb)
+           disp("Please delete the file " + fileWeb + "in your courant repertory ")
+         end
+         result = %f
+         return result
+       end
+       result = %t
+       return result
+endfunction
+
+// Delete function of the file
+function result = removeFile(fileR)
+  result = deletefile(fileR)
+  return result
+endfunction
+
+// Easy filling of the hash table (DESCRIPTION file)
+function listDesc = hashTable(listDesc, tabDesc)
+  [listeObl, listeOpt] = atomsConstant()
+  // We create all the values for all the keys so that even if one optional field is not present in the array, there is no error.
+  [o, p] = size(listeOpt)
+  for i=1:p
+    listDesc(listeOpt(i))= ""
+  end
+  [n, m] = size(tabDesc)
+  for i=1:n
+    ind = strindex(tabDesc(i),':')
+    // If ind = [] we are always in the previous field
+    if ind == []
+      listDesc(temp(1)) = listDesc(temp(1)) + tabDesc(i)
+    else
+      // ind+1 to remove the space before the second field
+      temp = strsplit(tabDesc(i),ind+1)
+      // We remove the ": "
+      temp(1) = strsubst(temp(1), ": ", "")
+      listDesc(temp(1))= temp(2)
+    end
+  end
+endfunction
+
+// Filling of the hash table (TOOLBOX file)
+function listDesc = hashTable2(listDesc, tabDesc)
+  global numberFunction
+  [listeObl, listeOpt] = atomsConstant()
+  [n, m] = size(tabDesc)
+  [nbTool, m] = size(listDesc("Toolbox"))
+  [o, p] = size(listeOpt)
+  inFunct = %f
+  for i=1:n
+    // We create a flag to know if we are in the function part
+    if tabDesc(i) == "--"
+      inFunct = %t
+    elseif tabDesc(i) == "//"
+      inFunct = %f
+    end
+    if tabDesc(i) <> "//" & ~inFunct
+      ind = strindex(tabDesc(i),':')
+      // ind+1 to remove the space before the second field
+      temp = strsplit(tabDesc(i),ind+1)
+      // We remove the ": "
+      temp(1) = strsubst(temp(1), ": ", "")
+      listDesc(temp(1))(nbTool+1)= temp(2)
+    elseif tabDesc(i) == "--"
+      clear tmp
+      nbFunct = 0
+    elseif tabDesc(i) <> "--" & inFunct
+      ind = strindex(tabDesc(i),'-')
+      // If ind = [] we are always in the previous field
+      if ind == []
+        tmp(string(nbFunct)) = tmp(string(nbFunct)) + tabDesc(i)
+      else
+        nbFunct = nbFunct + 1
+        tmp(string(nbFunct)) = tabDesc(i)
+        if numberFunction < nbFunct
+          numberFunction = nbFunct
+        end
+      end
+    elseif tabDesc(i) == "//"
+      // If a toolbox doesn't have functions, to avoid the bug : "Undefined variable: tmp"
+      if isdef("tmp")
+        listDesc("Function")(nbTool+1)= tmp
+      end
+      // We create all the values for all the keys so that even if one optional field is not present in the array, there is no error
+      // But only if the // is followed by other things
+      if i <> n
+        for j=1:p
+          listDesc(listeOpt(j))(nbTool+2) = ""
+        end
+      end
+      nbTool=nbTool+1
+    end
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsReadDescFunctions.sci b/scilab/modules/atoms/macros/atomsReadDescFunctions.sci
new file mode 100644 (file)
index 0000000..6072a29
--- /dev/null
@@ -0,0 +1,45 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Parsing of the Description-Function file
+
+function descFunct = atomsReadDescFunctions(nom)
+  global numberFunction
+  rep = atomsToolboxDirectory()
+  d = rep + nom
+  // Support of the different OS 
+  if getos() == "Windows"
+    directory = d + "\DESCRIPTION-FUNCTIONS"
+  else // linux and mac
+    directory = d + "/DESCRIPTION-FUNCTIONS"
+  end
+  // If we find the local directory and the DESCRIPTION-FUNCTIONS file is present
+  if (isdir(d) & ls(directory) <> [])
+    cd (d)
+    // Reading of thedescription file which we stock in a array
+    tab = atomsReadFile("DESCRIPTION-FUNCTIONS")
+    // Creation of a liste
+    [n, m] = size(tab)
+    numberFunction = 0
+    for i=1:n
+      ind = strindex(tab(i),'-')
+      // If ind = [] we are always in the previous field
+      if ind == []
+        descFunct(string(numberFunction)) = descFunct(string(numberFunction)) + tab(i)
+      else
+        numberFunction = numberFunction + 1
+        descFunct(string(numberFunction)) = tab(i)
+      end
+    end
+  else
+    atomsDisplayMessage("The DESCRIPTION-FUNCTIONS file of the toolbox " + nom + " is missing")
+    descFunct = ""
+  end
+  return descFunct
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsReadFile.sci b/scilab/modules/atoms/macros/atomsReadFile.sci
new file mode 100644 (file)
index 0000000..763fc3d
--- /dev/null
@@ -0,0 +1,18 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Reading function file line to line
+
+function tab = atomsReadFile(nom)
+  // We verify the presence of the file before
+  // We must verify we have the read acces
+  fd = mopen(nom,"r")
+  [n, tab] = mfscanf(-1, fd, '%80[^\n]\n')
+  mclose(fd)
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsRegisterToolbox.sci b/scilab/modules/atoms/macros/atomsRegisterToolbox.sci
new file mode 100644 (file)
index 0000000..26d8f59
--- /dev/null
@@ -0,0 +1,24 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Pierre MARECHAL
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Add a toolbox to the list of registered toolboxes
+
+function atomsRegisterToolbox(name,path)
+       
+       if fileinfo(TMPDIR+"/loaded_toolboxes") <> [] then
+               load(TMPDIR+"/loaded_toolboxes","loaded_toolboxes");
+       else
+               loaded_toolboxes = [];
+       end
+       
+       loaded_toolboxes = [ loaded_toolboxes ; name path ];
+       
+       save(TMPDIR+"/loaded_toolboxes",loaded_toolboxes);
+       
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsSelectPosition.sci b/scilab/modules/atoms/macros/atomsSelectPosition.sci
new file mode 100644 (file)
index 0000000..e21960a
--- /dev/null
@@ -0,0 +1,65 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Selection of the toolbox position in the available toolboxes list .
+
+function position = atomsSelectPosition(listDesc, nomToolbox, versionToolbox, checkVersionScilab)
+  [n, m] = size(listDesc("Toolbox"))
+  if versionToolbox <> ""
+    [signeToolbox, versionToolbox] = atomsSeparateSignVersion(versionToolbox)
+    versionToolbox = atomsDecoupVersion(versionToolbox)
+  end
+  for i=1:n
+    if (atomsVerifVersionScilab(listDesc("ScilabVersion")(i)) & checkVersionScilab) | ~checkVersionScilab
+      if versionToolbox == "" & listDesc("Toolbox")(i) == nomToolbox
+        position = i
+        // Research of a more recent version
+        for j=i+1:n
+          if (atomsVerifVersionScilab(listDesc("ScilabVersion")(j)) & checkVersionScilab) | ~checkVersionScilab
+            if listDesc("Toolbox")(j) == nomToolbox
+              vi = atomsDecoupVersion(listDesc("Version")(position))
+              vj = atomsDecoupVersion(listDesc("Version")(j))
+                     if atomsCompareVersion(vj, vi) == 1
+                       position = j
+                     end
+            end
+          end      
+        end
+        return position
+      elseif listDesc("Toolbox")(i) == nomToolbox
+        cmp = atomsCompareVersion(atomsDecoupVersion(listDesc("Version")(i)), versionToolbox);
+        if (signeToolbox == "<=" & cmp <= 0) | (signeToolbox == ">=" & cmp >= 0) | (signeToolbox == "=" & cmp == 0)
+          position = i
+          // Research of a more recent version
+          for j=i+1:n
+            if (atomsVerifVersionScilab(listDesc("ScilabVersion")(j)) & checkVersionScilab) | ~checkVersionScilab
+              cmp = atomsCompareVersion(atomsDecoupVersion(listDesc("Version")(j)), versionToolbox);
+              if listDesc("Toolbox")(j) == nomToolbox & ((signeToolbox == "<=" & cmp <= 0) | (signeToolbox == ">=" & cmp >= 0) | (signeToolbox == "=" & cmp == 0))
+                vi = atomsDecoupVersion(listDesc("Version")(position))
+                vj = atomsDecoupVersion(listDesc("Version")(j))
+                       if atomsCompareVersion(vj, vi) >= 0
+                         position = j
+                       end
+              end
+            end
+          end
+          return position
+        end
+      end
+    end
+  end
+  // Toolbox not found
+  // Case where we have searched in local
+  if n == 1
+    position = 0.1
+  // Case where we have searched in the repositories
+  else
+    position = 0
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsSeparateSignVersion.sci b/scilab/modules/atoms/macros/atomsSeparateSignVersion.sci
new file mode 100644 (file)
index 0000000..0b50a3b
--- /dev/null
@@ -0,0 +1,17 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Separation of the sign >=, <= or =  of the version version
+
+function [signe, version] = atomsSeparateSignVersion(version)
+  index = strindex(version, "=")
+  version = strsplit(version,index)
+  signe = version(1)
+  version = version(2)
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsSeparateVersionDep.sci b/scilab/modules/atoms/macros/atomsSeparateVersionDep.sci
new file mode 100644 (file)
index 0000000..19e54df
--- /dev/null
@@ -0,0 +1,26 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Separation of the dependancie and the version
+
+function [depend, version] = atomsSeparateVersionDep(depend)
+  version = ""
+  index = strindex(depend, "(")
+  if index > 0
+    // index-1 to keep the ( with the version
+    temp = strsplit(depend,index-1) 
+    depend = temp(1)
+    version = temp(2)
+    // we remove the brackets and the spaces
+    version = strsubst(version, "(", "")
+    version = strsubst(version, ")", "")
+    version = strsubst(version, " ", "")
+    depend = strsubst(depend, " ", "")
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsSplitValue.sci b/scilab/modules/atoms/macros/atomsSplitValue.sci
new file mode 100644 (file)
index 0000000..f791909
--- /dev/null
@@ -0,0 +1,20 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// If there are many values we split in some string
+
+function fieldValue = atomsSplitValue(fieldValue, separate)
+  index = strindex(fieldValue, separate)
+  if length(index) > 0
+    fieldValue = strsplit(fieldValue,index)
+    // We remove the separator and the spaces which are in the field end
+    fieldValue = strsubst(fieldValue, separate, "")
+    fieldValue = strsubst(fieldValue, " ", "")
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsSubstituteString.sci b/scilab/modules/atoms/macros/atomsSubstituteString.sci
new file mode 100644 (file)
index 0000000..38529bf
--- /dev/null
@@ -0,0 +1,26 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Substitution of special characters in the toolbox's name
+
+function str = atomsSubstituteString(str)
+    str = strsubst(str, " ", "_")
+    str = strsubst(str, "é", "e")
+    str = strsubst(str, "è", "e")
+    str = strsubst(str, "ê", "e")
+    str = strsubst(str, "à", "a")
+    str = strsubst(str, "â", "a")
+    str = strsubst(str, "ù", "u")
+    str = strsubst(str, "ô", "o")
+    str = strsubst(str, "î", "i")
+    str = strsubst(str, "ç", "c")
+    str = strsubst(str, "/", "")
+    str = strsubst(str, "\", "")
+    return str
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsToolboxDirectory.sci b/scilab/modules/atoms/macros/atomsToolboxDirectory.sci
new file mode 100644 (file)
index 0000000..a4de723
--- /dev/null
@@ -0,0 +1,14 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Recuparation of the repertory with the toolboxes
+
+function rep = atomsToolboxDirectory()
+  rep = pathconvert([SCIHOME+"/atoms"; "SCI/contrib"]);
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsToolboxMirror.sci b/scilab/modules/atoms/macros/atomsToolboxMirror.sci
new file mode 100644 (file)
index 0000000..cd76317
--- /dev/null
@@ -0,0 +1,18 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Recuperation of the Mirror list
+
+function listMirror = atomsToolboxMirror()
+  if getos() == "Windows"
+    listMirror = ["http://128.93.23.238/scilab/bin/windows/contrib"]
+  else // linux and mac
+    listMirror = ["http://128.93.23.238/scilab/src/contrib"]
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsUnregisterToolbox.sci b/scilab/modules/atoms/macros/atomsUnregisterToolbox.sci
new file mode 100644 (file)
index 0000000..c1e10c7
--- /dev/null
@@ -0,0 +1,28 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Pierre MARECHAL
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Remove a toolbox from the list of registered toolboxes
+
+function atomsUnregisterToolbox(name)
+       
+       if fileinfo(TMPDIR+"/loaded_toolboxes") <> [] then
+               load(TMPDIR+"/loaded_toolboxes","loaded_toolboxes");
+       else
+               return;
+       end
+       
+       toolbox_num = find( loaded_toolboxes == name );
+       
+       if toolbox_num<>[] then
+               loaded_toolboxes(toolbox_num,:)   = []; // delete the name
+       end
+       
+       save(TMPDIR+"/loaded_toolboxes",loaded_toolboxes);
+       
+endfunction
diff --git a/scilab/modules/atoms/macros/atomsVerifVersionScilab.sci b/scilab/modules/atoms/macros/atomsVerifVersionScilab.sci
new file mode 100644 (file)
index 0000000..2d801d0
--- /dev/null
@@ -0,0 +1,94 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Selection of the toolboxes corresponding at the good scilab version
+
+function result = atomsVerifVersionScilab(scilabVersion)
+  // we get back the software version
+  currentVersion = getversion()
+  index = strindex(currentVersion, "-")
+  currentVersion = strsplit(currentVersion,index)
+  [a, b]=size(index)
+  // If there is more than one "-" it is trunk or a alpha/beta/rc
+  if b == 3 
+    modifCurrentVersion = currentVersion(3) + currentVersion(4) 
+  end
+  currentVersion = currentVersion(2)
+  currentVersion = strsubst(currentVersion, "-", "")
+  // We shape the toolbox scilab version
+  scilabVersion = strsubst(scilabVersion, " ", "")
+  [signeScilab, versionScilab] = atomsSeparateSignVersion(scilabVersion)
+  // We check also here if it's a alpha/beta/rc
+  index = strindex(versionScilab, "-")
+  if index <> []
+    versionScilab = strsplit(versionScilab,index)
+    modifVersionScilab = versionScilab(2) + versionScilab(3)
+    versionScilab = versionScilab(1)
+    versionScilab = strsubst(versionScilab, "-", "")
+  end
+  // We check the different versions to know if the versions match
+  if currentVersion == "trunk"
+    if signeScilab == ">="
+      result = %T
+    else
+      result = %F
+    end
+  else
+    if atomsCompareVersion(atomsDecoupVersion(versionScilab), atomsDecoupVersion(currentVersion)) == 0
+      // We check if we have different versions
+      if isdef("modifCurrentVersion") & isdef("modifVersionScilab")
+        if verifVersionModif(modifCurrentVersion, modifVersionScilab) == 0
+          result = %T
+        elseif signeScilab == "<=" & verifVersionModif(modifCurrentVersion, modifVersionScilab) == -1
+          result = %T
+        elseif signeScilab == ">=" & verifVersionModif(modifCurrentVersion, modifVersionScilab) == 1
+          result = %T
+        else
+          result = %F
+        end
+      elseif isdef("modifCurrentVersion") & ~isdef("modifVersionScilab") & signeScilab == "<="
+        result = %T
+      elseif ~isdef("modifCurrentVersion") & isdef("modifVersionScilab") & signeScilab == ">="
+        result = %T
+      else
+        result = %F
+      end
+    elseif signeScilab == "<=" & atomsCompareVersion(atomsDecoupVersion(versionScilab), atomsDecoupVersion(currentVersion)) == 1
+      result = %T
+    elseif signeScilab == ">=" & atomsCompareVersion(atomsDecoupVersion(versionScilab), atomsDecoupVersion(currentVersion)) == -1
+      result = %T
+    else
+      result = %F
+    end
+  end
+endfunction
+
+function result = verifVersionModif(vScilab, vTool)
+  index = strindex(vScilab, "-")
+  vScilab = strsplit(vScilab,index)
+  index = strindex(vTool, "-")
+  vTool = strsplit(vTool,index)
+  // We compare versions : 1 if vScilab > vTool; 0 if vScilab = vTool; -1 if vScilab < vTool
+  // alpha < beta < rc
+  if length(vScilab(1)) > length(vTool(1))
+    return -1
+  elseif length(vScilab(1)) < length(vTool(1))
+    return 1
+  else
+    if strtod(vScilab(2)) > strtod(vTool(2))
+      return 1
+    elseif strtod(vScilab(2)) < strtod(vTool(2))
+      return -1
+    else
+      return 0
+    end
+  end
+endfunction
+
+
diff --git a/scilab/modules/atoms/macros/buildmacros.bat b/scilab/modules/atoms/macros/buildmacros.bat
new file mode 100644 (file)
index 0000000..a04e797
--- /dev/null
@@ -0,0 +1 @@
+@..\..\..\bin\scilex -nwni -ns -e exec('buildmacros.sce');quit;
diff --git a/scilab/modules/atoms/macros/buildmacros.sce b/scilab/modules/atoms/macros/buildmacros.sce
new file mode 100644 (file)
index 0000000..2718c27
--- /dev/null
@@ -0,0 +1,16 @@
+//------------------------------------
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - Delphine Gasc (2008)
+// 
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at    
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+//------------------------------------
+if (isdef('genlib') == %f) then
+  exec(SCI+'/modules/functions/scripts/buildmacros/loadgenlib.sce');
+end
+//------------------------------------
+genlib('atomslib','SCI/modules/atoms/macros');
+//------------------------------------
diff --git a/scilab/modules/atoms/macros/checkToolbox.sci b/scilab/modules/atoms/macros/checkToolbox.sci
new file mode 100644 (file)
index 0000000..2e93426
--- /dev/null
@@ -0,0 +1,249 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Verification that the toolbox is build correctly
+
+function result = checkToolbox(nom)
+  // We remove the special caracters
+  nom = atomsSubstituteString(nom)
+  // We go in the repectory with toolboxes
+  rep = atomsToolboxDirectory()
+  d = rep + nom
+  // If the repertory doesn't exist
+  if ~(isdir(d))
+    atomsDisplayMessage("The toolbox directory" + nom + " doesn''t exist or the name is false")
+    result = %f
+    return result
+  end
+  cd (d)
+  if ~checkDescription()
+    atomsDisplayMessage("The DESCRIPTION file isn''t valid")
+    result = %f
+    return result
+  end
+    if ~checkDescriptionFunctions()
+    atomsDisplayMessage("The DESCRIPTION-FUNCTIONS file isn''t valid")
+    result = %f
+    return result
+  end
+  if ~checkLoader()
+    atomsDisplayMessage("The loader.sce file isn''t present")
+    result = %f
+    return result
+  end
+  if ~checkTest()
+    atomsDisplayMessage("It would be interesting that tests are available")
+  end
+  if ~checkHelp()
+    atomsDisplayMessage("It would be interesting that a help is available")
+  end
+  if ~checkDemo()
+    atomsDisplayMessage("It would be interesting that a demonstration is available")
+  end
+  if ~checkReadme()
+    atomsDisplayMessage("It would be interesting that the readme file is present")
+  end
+  if ~checkLicense()
+    atomsDisplayMessage("It would be interesting that the license file is present")
+  end
+  result = %t
+  return result
+endfunction
+
+function result = checkDescription()
+  // If the DESCRIPTION file is present
+  if ls("DESCRIPTION") <> []
+    // Reading of the description file which we stock in an array
+    tab = atomsReadFile("DESCRIPTION")
+    // Creation of a "hash table"
+    desc = atomsListDescription()
+    // Check of the presence of only one space after the :
+    [n, m] = size(desc)
+      for i=1:n
+        ind = strindex(tab(i),':')
+        if (part([tab(i)],[ind+1]) <> " " | part([tab(i)],[ind+2])== " ")
+          atomsDisplayMessage("The field "  + tab(i) + " should have one and only one whitespace after the :")
+          result = %f
+          return result
+        end
+      end
+    // Filling of the hash table
+    desc = hashTable(desc, tab)
+    // Check if all the compulsory fields are filled 
+    [listeObl, listeOpt] = atomsConstant()
+    for i=1:7
+      if desc(listeObl(i)) == []
+        atomsDisplayMessage("The field " + listeObl(i) + " is missing in the DESCRIPTION file")
+        result = %f
+        return result
+      end
+    end
+    // Check if the name correspond
+    if desc("Toolbox") <> nom
+      atomsDisplayMessage("The toolbox name present in the DESCRIPTION file is false")
+      result = %f
+      return result
+    end
+    // Check if the version has a good format
+    v = desc("Version")
+    if regexp(v, '/[0-9]+\.[0-9]+\.?[0-9]*$/') <> 1
+      disp("The version is a sequence of at least two (and usually three) non-negative integers separated by single ''.'' characters.")
+      result = %f
+      return result
+    end
+  // If the DESCRIPTION file doesn't exist 
+  else
+    atomsDisplayMessage("The DESCRIPTION file doesn''t exist or isn''t at the good place")
+    result = %f
+    return result
+  end
+  result = %t
+  return result
+endfunction
+
+function result = checkDescriptionFunctions()
+  result = %t
+  // If the DESCRIPTION-FUNCTIONS file is présent
+  if ls("DESCRIPTION-FUNCTIONS") <> []
+    // Reading of the description file which we stock in an array
+    tab = atomsReadFile("DESCRIPTION-FUNCTIONS")
+    // Creation of a list
+    [n, m] = size(tab)
+    numberFunction = 0
+    for i=1:n
+      ind = strindex(tab(i),'-')
+      // If ind = [] we are always in the previous field
+      if ind == []
+        descFunct(string(numberFunction)) = descFunct(string(numberFunction)) + tab(i)
+      else
+        descFunct(string(numberFunction + 1)) = tab(i)
+        numberFunction = numberFunction + 1
+      end
+    end
+    // Check if no function have the name of a Scilab function
+    // Recuperation of the Scilab functions
+    scilabFunction = listPrimitives()
+    // Recuperation of each function name
+    for i=1:numberFunction
+      ind = strindex(descFunct(string(i)),'-')
+      funct = strsplit(descFunct(string(i)), ind)
+      funct = funct(1)
+      funct = strsubst(funct, "-", "")
+      funct = strsubst(funct, " ", "")
+      // We search the name of the function in the Scilab functions list
+      if strindex(scilabFunction, " " + funct + " ") <> []
+        atomsDisplayMessage("The function " + funct + " already exist in Scilab. Thanks to change the name.")
+        result = %f
+      end
+    end
+  // If the DESCRIPTION-FUNCTIONS file doesn't exist
+  else
+    atomsDisplayMessage("The file DESCRIPTION-FUNCTIONS doesn''t exist or isn''t at the good place")
+    result = %f
+  end
+  return result
+endfunction
+
+// Filling of a list with the DESCRIPTION file
+function listDesc = hashTable(listDesc, tabDesc)
+  [listeObl, listeOpt] = atomsConstant()
+  // We create all the values for all the keys so that even if one optional field is not present in the array, there is no error.
+  [o, p] = size(listeOpt)
+  for i=1:p
+    listDesc(listeOpt(i))= ""
+  end
+  [n, m] = size(tabDesc)
+  for i=1:n
+    ind = strindex(tabDesc(i),':')
+    // If ind = [] we are always in the previous field
+    if ind == []
+      listDesc(temp(1)) = listDesc(temp(1)) + tabDesc(i)
+    else
+      // ind+1 to remove the space before the second field
+      temp = strsplit(tabDesc(i),ind+1)
+      // We remove the ": "
+      temp(1) = strsubst(temp(1), ": ", "")
+      listDesc(temp(1))= temp(2)
+    end
+  end
+endfunction
+
+function var = listPrimitives()
+  // Recuperation of the scilab function
+  [primitives,commandes] = what();
+  listLib = librarieslist();
+  [n, m] = size(listLib);
+  for i=1:n
+    [o, m] = size(primitives);
+    temp = libraryinfo(listLib(i));
+    [p, m] = size(temp);
+    for j=1:p
+      primitives(o + j) = temp(j);
+    end
+  end
+  [o, m] = size(primitives);
+  var = " "
+  for i=1:o
+    var = var + primitives(i) + " ";
+  end
+endfunction
+
+function result = checkLoader()
+  if ~ls("loader.sce") <> []
+    result = %f
+    return result
+  end
+  result = %t
+  return result
+endfunction
+
+function result = checkTest()
+  if ~isdir("unit tests") <> []
+    result = %f
+    return result
+  end
+  result = %t
+  return result
+endfunction
+
+function result = checkHelp()
+  if ~isdir("help") <> []
+    result = %f
+    return result
+  end
+  result = %t
+  return result  
+endfunction
+
+function result = checkDemo()
+  if ~isdir("demos") <> []
+    result = %f
+    return result
+  end
+  result = %t
+  return result  
+endfunction
+
+function result = checkReadme()
+  if ~ls("readme.txt") <> []
+    result = %f
+    return result
+  end
+  result = %t
+  return result  
+endfunction
+
+function result = checkLicense()
+  if ~ls("license.txt") <> []
+    result = %f
+    return result
+  end
+  result = %t
+  return result  
+endfunction
diff --git a/scilab/modules/atoms/macros/cleanmacros.bat b/scilab/modules/atoms/macros/cleanmacros.bat
new file mode 100644 (file)
index 0000000..4c0d791
--- /dev/null
@@ -0,0 +1,3 @@
+@del *.bin 2>NUL
+@del lib 2>NUL
+@del names 2>NUL
diff --git a/scilab/modules/atoms/macros/getInstalledToolboxes.sci b/scilab/modules/atoms/macros/getInstalledToolboxes.sci
new file mode 100644 (file)
index 0000000..cfe2615
--- /dev/null
@@ -0,0 +1,24 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Simon LIPP <simon.lipp@inria.fr>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// List of installed toolboxes
+
+function tboxes = getInstalledToolboxes()
+  reps = atomsToolboxDirectory()
+  tboxes = []
+  for i=1:size(reps, 1)
+       files = listfiles(reps(i))
+       for j=1:size(files, 1)
+         tbox = reps(i) + "/" + files(j)
+         if fileinfo(tbox + "/loader.sce") <> [] then
+           tboxes($+1) = tbox
+         end
+       end
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/getToolboxes.sci b/scilab/modules/atoms/macros/getToolboxes.sci
new file mode 100644 (file)
index 0000000..653bae3
--- /dev/null
@@ -0,0 +1,18 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Simon LIPP <simon.lipp@inria.fr>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// List of registered toolboxes
+
+function loaded_toolboxes = getToolboxes()
+  if listfiles(TMPDIR + "/loaded_toolboxes") <> [] then
+    load(TMPDIR + "/loaded_toolboxes", "loaded_toolboxes")
+  else
+    loaded_toolboxes = []
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/infoToolbox.sci b/scilab/modules/atoms/macros/infoToolbox.sci
new file mode 100644 (file)
index 0000000..3bc78f3
--- /dev/null
@@ -0,0 +1,65 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Display of the toolbox information
+
+function infoToolbox(nom)
+  // we remove the special characters
+  nom = atomsSubstituteString(nom)
+  // We go on the toolboxes repertory
+  rep = atomsToolboxDirectory()
+  d = rep + nom
+  // Gestion of the different OS
+  if getos() == "Windows"
+    directory = d + "\DESCRIPTION"
+  else // linux and mac
+    directory = d + "/DESCRIPTION"
+  end
+  // If we find the repertory in local and the DESCRIPTION file is present
+  if (isdir(d) & ls(directory) <> [])
+    desc = atomsReadDesc(nom)
+    functionTool = desc("Function")
+    disp("The Toolbox is present in local")
+    disp(desc)
+    disp(functionTool)
+  // Else we search in the net
+  else
+    disp("Toolbox versions present in the web")
+    listDesc = atomsReadDesc("")
+    versions = ""
+    [n, m] = size(listDesc("Toolbox"))
+    for i=1:n
+      if listDesc("Toolbox")(i) == nom
+        // To avoid version redundancy
+        [a, b] = size(versions)
+        if find(versions == listDesc("Version")(i))
+          continue
+        else
+          versions(a+1) = listDesc("Version")(i)
+          desc = atomsListDescription()
+          [listeObl, listeOpt] = constant()
+          [o, p] = size(listeOpt)
+          [n, m] = size(listeObl)
+          for j=1:m
+            desc(listeObl(j)) = listDesc(listeObl(j))(i)
+          end
+          for j=1:p
+            desc(listeOpt(j)) = listDesc(listeOpt(j))(i)
+          end
+          disp(desc)
+        end
+      end
+    end
+    // if no version was found
+    [a, b] = size(versions)
+    if a == 1
+     disp("none")
+    end
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/installToolbox.sci b/scilab/modules/atoms/macros/installToolbox.sci
new file mode 100644 (file)
index 0000000..576c20a
--- /dev/null
@@ -0,0 +1,71 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Installation of a toolbox
+
+function result = installToolbox(nom, checkVersionScilab, version)
+  global conflictingList
+  global conflictLocal
+  global nomconflictLocal
+  global conflictVersion
+  // We check if the arguments exist
+  if argn(2) == 1
+    checkVersionScilab = %t
+  end
+  if argn(2) <= 2
+    version = ""
+  end
+  // We remove the special caracters
+  nom = atomsSubstituteString(nom)
+  // We go to the dedicated directory
+  rep = atomsToolboxDirectory()
+  cd (rep)
+  // Required to empty the global variables before any use of atomsCheckConflict
+  clearglobal conflictingList
+  clearglobal conflictLocal
+  clearglobal nomconflictLocal
+  clearglobal conflictVersion
+  // Recuperation of the list of toolboxes to install
+  listTool = atomsCheckConflict(nom, version, checkVersionScilab)
+  // If there is an empty line, it is because a dependencie is missing
+  if find(listTool == "") <> []
+    if conflictLocal == 1
+      atomsDisplayMessage("The Toolbox version " + nomconflictLocal + " locally present doesn''t match. Update it.")
+    elseif listTool <> ""
+      atomsDisplayMessage("Impossible to install all the dependancies")
+    end
+    result =  %f
+    return result
+  elseif conflictVersion == 1
+    atomsDisplayMessage("Conflit of version for " + nomconflictLocal)
+    result =  %f
+    return result
+  end
+  // Recuperation of the toolboxes list which are already in local
+  cd (rep)
+  listLocal = ls()
+  // Treatment of the toolboxes to install
+  [m, n] = size(listTool)
+  for i=1:m
+    [nom, version] = atomsSeparateVersionDep(listTool(i))
+    // If it is locally present, we pass to the following one
+    if find(listLocal == nom) <> []
+      continue
+    else
+      atomsDisplayMessage("Is going to be install : " + nom)
+      if ~atomsDlInstall(nom, version)
+        disp("Error during the installation")
+        result = %f
+        return result
+      end
+    end
+  end
+  result = %t
+  return result
+endfunction
diff --git a/scilab/modules/atoms/macros/installToolboxCategory.sci b/scilab/modules/atoms/macros/installToolboxCategory.sci
new file mode 100644 (file)
index 0000000..6d54da6
--- /dev/null
@@ -0,0 +1,36 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Installation of a toolbox sub-category  
+
+function result = installToolboxCategory(cat, sscat, checkVersionScilab)
+  if argn(2) == 2
+    checkVersionScilab = %t
+  end
+  result = %f
+  // we load the list of all the available toolboxes in the net
+  desc = atomsReadDesc("")
+  [nbTool, m] = size(desc("Toolbox"))
+  for i=1:nbTool
+    catTool = desc("Category")(i)
+    // We watch if this toolbox belong to the asked cat/sscat
+    regularExpression = "/" + cat + " \((\w*, )*" + sscat + "(, \w*)*\)/"
+    // If yes, we install it if it is convenient for the Scilab version
+    if regexp(catTool, regularExpression) <> [] & ((atomsVerifVersionScilab(desc("ScilabVersion")(i)) & checkVersionScilab) | ~checkVersionScilab)
+      // We can't take result = installToolbox() there is a install error, result = %f
+      installToolbox(desc("Toolbox")(i));
+      result = %t
+    end   
+  end
+  // If we have installed nothing
+  if ~result
+    atomsDisplayMessage ("None of the Toolboxes correspond in this category/sub-category for your version")
+  end
+  return result
+endfunction
diff --git a/scilab/modules/atoms/macros/listToolboxes.sci b/scilab/modules/atoms/macros/listToolboxes.sci
new file mode 100644 (file)
index 0000000..75aeba2
--- /dev/null
@@ -0,0 +1,24 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// display of the local installed toolboxes
+
+function listToolboxes()
+  rep = atomsToolboxDirectory()
+  cd(rep)
+  listLocal = ls()
+  [n, m] = size(listLocal)
+  disp("The local installed toolboxes are :")
+  for i=1:n
+    if listLocal(i) <> ".svn"
+      desc = atomsReadDesc(listLocal(i))
+      disp(desc("Toolbox") + " - version " + desc("Version"))
+    end
+  end
+endfunction
diff --git a/scilab/modules/atoms/macros/removeToolbox.sci b/scilab/modules/atoms/macros/removeToolbox.sci
new file mode 100644 (file)
index 0000000..2d7c222
--- /dev/null
@@ -0,0 +1,67 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Remove of a toolbox
+
+function result = removeToolbox(nom)
+  rep = atomsToolboxDirectory()
+  // If nom = "all" we delete all the Toolboxes
+  if nom == "all"  
+    rmdir(rep, "s")
+    mkdir(rep)
+  else
+    // we verify the existence of the toolbox
+    d = rep + nom
+    if ~isdir(d)
+      atomsDisplayMessage("The toolbox " + nom + " is not installed")
+      result = %f
+      return result
+    end
+    cd (rep)
+    // We verify if the toolbox is not a dependancie of another toolbox
+    listLocal = ls()
+    [n, m] = size(listLocal)
+    for i=1:n
+      if listLocal(i) <> ".svn"
+        desc = atomsReadDesc(listLocal(i))
+        depends = atomsExtractValue("Depends", desc, 1)
+        depends = atomsSplitValue(depends, ",")
+        [n, m] = size(depends)
+        for j=1:n
+          [depend, version] = atomsSeparateVersionDep(depends(j))
+          if find(depend == nom) <> []
+            repQuestion = atomsButtonYesNo("The Toolbox " + nom + " is a dependancie of " + listLocal(i) + ". Continue?")
+            if (repQuestion == "2")
+              result = %f
+              return result
+            end
+          end
+        end
+      end
+    end
+    rmdir(rep + nom, "s")
+    atomsDisplayMessage(nom + " delete")
+    result = %t
+    return result
+  end
+endfunction
+
+function result = atomsButtonYesNo(message)
+       if (getscilabmode() == "STD")
+               result = buttondialog(message,"Yes|No","question")
+       else
+               response = input(message + " [""y""/""n""]")
+               if (response <> "y" & response <> "Y")
+                       result = "2"
+               else
+                       result = "1"
+               end
+       end
+       return result
+endfunction
diff --git a/scilab/modules/atoms/macros/searchToolboxes.sci b/scilab/modules/atoms/macros/searchToolboxes.sci
new file mode 100644 (file)
index 0000000..8d1a101
--- /dev/null
@@ -0,0 +1,129 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// Research of a toolbox
+
+function result = searchToolboxes(keyword, typeSearch)
+  // If there is no type
+  if argn(2) == 1
+    typeSearch = "all"
+  end
+  result = %f
+  listTool = []
+  // We shape
+  keyword = splitWord(keyword)
+  typeSearch = convstr(typeSearch,"l")
+  [a, b] = size(keyword)
+  global numberFunction
+  listDesc = atomsReadDesc("")
+  [n, m] = size(listDesc("Toolbox"))
+  // We check Toolboxes one to one
+  for i=1:n
+    // Differents value case of typeSearch
+    if typeSearch == "all"
+      // Research in Description + Title + Toolbox + Category + Author
+      titleTool = convstr(listDesc("Title")(i),"l")
+      descTool = convstr(listDesc("Description")(i),"l")
+      nameTool = convstr(listDesc("Toolbox")(i),"l")
+      catTool = convstr(listDesc("Category")(i),"l")
+      authorTool = convstr(listDesc("Author")(i),"l")
+      functionTool = listDesc("Function")(i)
+      // Comparaison keyword and words (we research the key-word position in the word, if it's == [] the word is not found; in this case, it's useless to compare the other keywords)
+      toolFind = %t
+      for j=1:a
+        if strindex(titleTool, keyword(j)) == [] & strindex(descTool, keyword(j)) == [] & strindex(nameTool, keyword(j)) == [] & strindex(catTool, keyword(j)) == [] & strindex(authorTool, keyword(j)) == []
+          toolFind = %f
+          for k=1:numberFunction
+            if strindex(convstr(functionTool(string(k)), "l"), keyword(j)) <> []
+              toolFind = %t
+            end
+          end
+          if ~toolFind
+            break
+          end
+        end
+      end
+    elseif typeSearch == "author"
+      // Research in Author
+      authorTool = convstr(listDesc("Author")(i),"l")
+      // Comparaison keyword and words
+      toolFind = %t
+      for j=1:a
+        if strindex(authorTool, keyword(j)) == []
+          toolFind = %f
+          break
+        end
+      end
+    elseif typeSearch == "entity"
+      // Research in Entity
+      entityTool = convstr(listDesc("Entity")(i),"l")
+      // Comparaison keyword and words
+      toolFind = %t
+      for j=1:a
+        if strindex(entityTool, keyword(j)) == []
+          toolFind = %f
+          break
+        end
+      end 
+    elseif typeSearch == "function"
+      // Research in Function
+      functionTool = listDesc("Function")(i)
+      // Reading lines to lines of the functions
+      // Comparaison keyword and words
+      toolFind = %t
+      for j=1:a
+        for k=1:numberFunction
+          toolFind = %f
+          if strindex(convstr(functionTool(string(k)), "l"), keyword(j)) <> []
+            toolFind = %t
+            break
+          end
+        end
+      end 
+    else
+      atomsDisplayMessage("The research field " + typeSearch + " doesn''t exist")
+      return result
+    end
+    // If we found the words
+    if toolFind
+      [n, m] = size(listTool)
+      // We check if the Toolbox suit to the scilab version
+      if atomsVerifVersionScilab(listDesc("ScilabVersion")(i))
+        listTool(n+1) = listDesc("Toolbox")(i) + " - " + listDesc("Title")(i)
+      else
+        listTool(n+1) = listDesc("Toolbox")(i) + " - " + listDesc("Title")(i) + " - Warning this toolbox (Version " + listDesc("Version")(i) + ") isn''t compatible with your version of scilab"
+      end
+      result = %t
+    end
+  end
+  if ~result
+    disp("No toolbox matches the research")
+  else
+    listTool = unique(listTool)
+    [n, m] = size(listTool)
+    if n == 1
+      disp("The following toolbox matches the research:")
+      disp(listTool)
+    else
+      disp("The following toolboxes match the research:")
+      for i=1:n
+        disp("- " + listTool(i))
+      end
+    end
+  end
+  return result
+endfunction
+
+// We split the sentences on a words array
+function var = splitWord(var)
+  // We cross everything in small letter
+  var = convstr(var,"l")
+  // We split (error if the last caracter is a " ")
+  var = atomsSplitValue(var, " ")
+endfunction
diff --git a/scilab/modules/atoms/macros/updateToolbox.sci b/scilab/modules/atoms/macros/updateToolbox.sci
new file mode 100644 (file)
index 0000000..9ce986a
--- /dev/null
@@ -0,0 +1,113 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Delphine GASC <delphine.gasc@scilab.org>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// update of a toolbox
+
+function result = updateToolbox(name, checkVersionScilab)
+  // We check if the second argument exist 
+  if argn(2) == 1
+    checkVersionScilab = %t
+  end
+  // We remove special caracters
+  name = atomsSubstituteString(name)
+  // if name = "all" we update all the Toolboxes
+  if name == "all"
+    listLocal = ls()
+    [n, m] = size(listLocal)
+    for k=1:n
+      if listLocal(i) <> ".svn"
+        if ~updateToolbox(listLocal(k))
+          break
+        end
+      end
+    end
+  else
+    // We check if the Toolboxe locally exist
+    rep = atomsToolboxDirectory()
+    d = rep + name
+    if ~isdir(d)
+      atomsDisplayMessage(sprintf(_("The toolbox %s is not installed.\n")),name)
+      result = %f
+      return result
+    end
+    // We get back the current version 
+    desc = atomsReadDesc(name)
+    versionActuelle = atomsExtractValue("Version", desc, 1)
+    versionActuelle = atomsDecoupVersion(versionActuelle)
+    // We get back the list of all the other available toolboxes 
+    listDesc = atomsReadDesc("")
+    // We take the more recent version
+    position = atomsSelectPosition(listDesc, name, "", checkVersionScilab)
+    // If the toolbox is not available online
+    if position == 0
+      atomsDisplayMessage(_("Toolbox not available."))
+      result = %f
+      return result
+    end
+    versionNew = atomsExtractValue("Version", listDesc, position)
+    versionNew = atomsDecoupVersion(versionNew)
+    // We check if it is an update of the local
+    if atomsCompareVersion(versionNew, versionActuelle) == 1
+      // We check if it was a max dependancie for other toolboxes
+      listLocal = ls()
+      [n, m] = size(listLocal)
+      for i=1:n
+        if listLocal(i) <> ".svn"
+          desc = atomsReadDesc(listLocal(i))
+          depends = atomsExtractValue("Depends", desc, 1)
+          depends = atomsSplitValue(depends, ",")
+          [n, m] = size(depends)
+          for j=1:n
+            [depend, version] = atomsSeparateVersionDep(depends(j))
+            if version <> ""
+              [signe, version] = atomsSeparateSignVersion(version)
+              if find(depend == name) <> [] & signe == "<="
+                version = atomsDecoupVersion(version)
+                // We check if the new version confirm this max dependency
+                if atomsCompareVersion(versionNew, version) == 1
+                  atomsDisplayMessage(_("Dependency issue.\n"))
+                  result = %f
+                  return result
+                end
+              end
+            end
+          end
+        end
+      end
+    end
+    // We verify if it is necessary to update the dependancies
+    dependsNew = atomsExtractValue("Depends", listDesc, position)
+    dependsNew = atomsSplitValue(dependsNew, ",")
+    [n, m] = size(dependsNew)
+    for i=1:n
+      [dependsNew, versionNew] = atomsSeparateVersionDep(dependsNew(i))
+      listLocal = ls()
+      if find(listLocal == dependsNew)
+        if versionNew <> ""
+          desc = atomsReadDesc(listLocal(i))
+          v1 = atomsExtractValue("Version", desc, 1)
+          v1 = atomsDecoupVersion(v1)
+          [signeNew, versionNew] = atomsSeparateSignVersion(versionNew)
+          versionNew = atomsDecoupVersion(versionNew)
+          if ((versionNew == "<=" | versionNew == "=")  & atomsCompareVersion(v1, versionNew) == -1) | ((versionNew == ">=" | versionNew == "=") & atomsCompareVersion(v1, versionNew) == 1) 
+            updateToolbox(dependsNew);
+          end
+        end
+      end
+    end
+    // We warm it
+    versionNew = atomsExtractValue("Version", listDesc, position)
+    atomsDisplayMessage(sprintf(_("The toolbox %s is going to be updated to version %s.\n"),name,versionNew))
+    // We install the new version
+    rmdir(rep + name, "s")
+    installToolbox(name);
+  end
+  result = %t
+  return result
+endfunction
diff --git a/scilab/modules/atoms/macros/with_toolbox.sci b/scilab/modules/atoms/macros/with_toolbox.sci
new file mode 100644 (file)
index 0000000..c17b660
--- /dev/null
@@ -0,0 +1,24 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Simon LIPP <simon.lipp@inria.fr>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+// If a toolbox is registered, return %t and its path ; %f else
+
+function [reg,path] = with_toolbox(name)
+  reg = %f
+  path = ""
+  
+  tboxes = getToolboxes()
+  for i=1:size(tboxes, 1)
+    if tboxes(i,1) == name then
+         reg = %t
+         path = tboxes(i,2)
+         return
+       end
+  end  
+endfunction
diff --git a/scilab/modules/atoms/tests/unit_tests/testfonctions.dia.ref b/scilab/modules/atoms/tests/unit_tests/testfonctions.dia.ref
new file mode 100644 (file)
index 0000000..ac5ba75
--- /dev/null
@@ -0,0 +1,125 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA -
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//===============================
+// unit tests Toolboxes functions
+//===============================
+predef(0);
+funcprot(0);
+// on modifie la position du dossier contenant les toolboxes pour les tests
+function rep = atomsToolboxDirectory()
+  rep = "SCI/modules/atoms/tests/unit_tests/toolboxes/"
+endfunction
+// lecture DESCRIPTION en local (/!\ l'ordre des champs importe pour la comparaison verif <> test)
+verif("Toolbox") = "testA";
+verif("Version") = "1.0.0";
+verif("Title") = "TestA";
+verif("Author") = "Delphine";
+verif("Maintainer") = "Delphine";
+verif("Description") = "Test de code scilab pour lire les DESCRIPTION. Avec une ligne de description qui est plus longue que la longueur d''une ligne, pour tester les lignes multiples.";
+verif("License") = "Aucune";
+verif("Category") = "essai";
+verif("ScilabVersion") = ">= 5.0";
+verif("Date") = "2008-03-31";
+verif("Depends") = "testB, testC, testH";
+verif("ExternalDepends") = "";
+verif("URL") = "";
+verif("Entity") = "";
+verif("Function")("1") = "mafonction1 - ma super fonction fait le cafe";
+verif("Function")("2") = "mafonction2 - ma super fonction 2 fait le menage";
+verif("Function")("3") = "mafonction3 - ma super fonction 3 fait la vaisselle, lave le linge, repasse, lave la cuisine et la salle de bain, il ne lui manque rien de rien.";
+verif("Function")("4") = "mafonction4 - ne sert a rien";
+test = atomsReadDesc("testA"); if verif <> test then bugmes();quit;end;
+// chargement de toutes les toolbox sur un mirror
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib"]
+endfunction
+test = atomsReadDesc("");
+[n, m] = size(test("Toolbox")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Version")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Title")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Author")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Maintainer")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Description")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("License")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Category")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("ScilabVersion")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Date")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Depends")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("ExternalDepends")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("URL")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Entity")); if n <> 22 then bugmes();quit;end;
+[n, m] = size(test("Function")); if n <> 22 then bugmes();quit;end;
+// on choisi un Mirror non conforme
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/bin/linux/contrib"];
+endfunction
+// chargement de toutes les toolbox sur le web
+test = atomsReadDesc(""); if size(test("Toolbox")) <> 0 then bugmes();quit;end;
+ Please check the validity of the repository   
+// on remet les bon Mirrors
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib", "http://128.93.23.238/scilab/bin/windows/contrib"];
+endfunction
+// installation avec la dernière dependance non présente sur le web ni en local
+if installToolbox("testA") <> %f then bugmes();quit;end;
+ Toolbox testH not find   
+ The Toolbox version testC locally present doesn't match. Update it.   
+// installation avec conflit versions
+if installToolbox("conflitA") <> %f then bugmes();quit;end;
+ The Toolbox version conflitB locally present doesn't match. Update it. 
+// installation avec la dépendance locale ne vérifiant pas la condition
+if installToolbox("local1") <> %f then bugmes();quit;end;
+ The Toolbox version local1 locally present doesn't match. Update it.   
+// supression de toolbox non présente
+if removeToolbox("non") <> %f then bugmes();quit;end;
+ The toolbox non is not installed   
+// update d'une toolbox non présente
+if updateToolbox("non") <> %f then bugmes();quit;end;
+ The toolbox non is not installed   
+// update d'une toolbox non présente sur le net
+if updateToolbox("truc") <> %f then bugmes();quit;end;
+ Toolbox not available on the net   
+// update d'une toolbox dependance d'une autre
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib"];
+endfunction
+if installToolbox("updateA") <> %t then bugmes();quit;end;
+ Is going to be install : updateA   
+ Is going to be install : updateB   
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib", "http://128.93.23.238/scilab/bin/macosX/contrib"];
+endfunction
+// Mauvaise version
+if updateToolbox("updateB") <> %f then bugmes();quit;end;
+ Dependancie problem   
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib", "http://128.93.23.238/scilab/bin/windows/contrib"];
+endfunction
+// Bonne version
+if updateToolbox("updateB") <> %t then bugmes();quit;end;
+ The toolbox updateB is going to be update in version 1.2.2   
+ Is going to be install : updateB   
+// Suppression des toolboxes
+if removeToolbox("updateA") <> %t then bugmes();quit;end;
+ updateA delete   
+if removeToolbox("updateB") <> %t then bugmes();quit;end;
+ updateB delete   
diff --git a/scilab/modules/atoms/tests/unit_tests/testfonctions.tst b/scilab/modules/atoms/tests/unit_tests/testfonctions.tst
new file mode 100644 (file)
index 0000000..9bae5ed
--- /dev/null
@@ -0,0 +1,104 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA -
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//===============================
+// unit tests Toolboxes functions
+//===============================
+
+predef(0);
+funcprot(0);
+
+// on modifie la position du dossier contenant les toolboxes pour les tests
+function rep = atomsToolboxDirectory()
+  rep = "SCI/modules/atoms/tests/unit_tests/toolboxes/"
+endfunction
+
+// lecture DESCRIPTION en local (/!\ l'ordre des champs importe pour la comparaison verif <> test)
+verif("Toolbox") = "testA";
+verif("Version") = "1.0.0";
+verif("Title") = "TestA";
+verif("Author") = "Delphine";
+verif("Maintainer") = "Delphine";
+verif("Description") = "Test de code scilab pour lire les DESCRIPTION. Avec une ligne de description qui est plus longue que la longueur d''une ligne, pour tester les lignes multiples.";
+verif("License") = "Aucune";
+verif("Category") = "essai";
+verif("ScilabVersion") = ">= 5.0";
+verif("Date") = "2008-03-31";
+verif("Depends") = "testB, testC, testH";
+verif("ExternalDepends") = "";
+verif("URL") = "";
+verif("Entity") = "";
+verif("Function")("1") = "mafonction1 - ma super fonction fait le cafe";
+verif("Function")("2") = "mafonction2 - ma super fonction 2 fait le menage";
+verif("Function")("3") = "mafonction3 - ma super fonction 3 fait la vaisselle, lave le linge, repasse, lave la cuisine et la salle de bain, il ne lui manque rien de rien.";
+verif("Function")("4") = "mafonction4 - ne sert a rien";
+test = atomsReadDesc("testA"); if verif <> test then pause, end;
+// chargement de toutes les toolbox sur un mirror
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib"]
+endfunction
+test = atomsReadDesc("");
+[n, m] = size(test("Toolbox")); if n <> 22 then pause, end;
+[n, m] = size(test("Version")); if n <> 22 then pause, end;
+[n, m] = size(test("Title")); if n <> 22 then pause, end;
+[n, m] = size(test("Author")); if n <> 22 then pause, end;
+[n, m] = size(test("Maintainer")); if n <> 22 then pause, end;
+[n, m] = size(test("Description")); if n <> 22 then pause, end;
+[n, m] = size(test("License")); if n <> 22 then pause, end;
+[n, m] = size(test("Category")); if n <> 22 then pause, end;
+[n, m] = size(test("ScilabVersion")); if n <> 22 then pause, end;
+[n, m] = size(test("Date")); if n <> 22 then pause, end;
+[n, m] = size(test("Depends")); if n <> 22 then pause, end;
+[n, m] = size(test("ExternalDepends")); if n <> 22 then pause, end;
+[n, m] = size(test("URL")); if n <> 22 then pause, end;
+[n, m] = size(test("Entity")); if n <> 22 then pause, end;
+[n, m] = size(test("Function")); if n <> 22 then pause, end;
+
+// on choisi un Mirror non conforme
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/bin/linux/contrib"];
+endfunction
+// chargement de toutes les toolbox sur le web
+test = atomsReadDesc(""); if size(test("Toolbox")) <> 0 then pause, end;
+// on remet les bon Mirrors
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib", "http://128.93.23.238/scilab/bin/windows/contrib"];
+endfunction
+
+// installation avec la dernière dependance non présente sur le web ni en local
+if installToolbox("testA") <> %f then pause, end;
+// installation avec conflit versions
+if installToolbox("conflitA") <> %f then pause, end;
+// installation avec la dépendance locale ne vérifiant pas la condition
+if installToolbox("local1") <> %f then pause, end;
+
+// supression de toolbox non présente
+if removeToolbox("non") <> %f then pause, end;
+
+// update d'une toolbox non présente
+if updateToolbox("non") <> %f then pause, end;
+// update d'une toolbox non présente sur le net
+if updateToolbox("truc") <> %f then pause, end;
+// update d'une toolbox dependance d'une autre
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib"];
+endfunction
+if installToolbox("updateA") <> %t then pause, end;
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib", "http://128.93.23.238/scilab/bin/macosX/contrib"];
+endfunction
+// Mauvaise version
+if updateToolbox("updateB") <> %f then pause, end;
+function listMirror = atomsToolboxMirror()
+  listMirror = ["http://128.93.23.238/scilab/src/contrib", "http://128.93.23.238/scilab/bin/windows/contrib"];
+endfunction
+// Bonne version
+if updateToolbox("updateB") <> %t then pause, end;
+// Suppression des toolboxes
+if removeToolbox("updateA") <> %t then pause, end;
+if removeToolbox("updateB") <> %t then pause, end;
+
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/conflitB/DESCRIPTION b/scilab/modules/atoms/tests/unit_tests/toolboxes/conflitB/DESCRIPTION
new file mode 100644 (file)
index 0000000..39bbcf0
--- /dev/null
@@ -0,0 +1,9 @@
+Toolbox: conflitB
+Version: 1.3
+Date: 2008-04-08
+Title: ConflitB
+Author: Delphine
+Maintainer: Delphine
+Description: Test du conflit de versions
+Depends: conflitC
+License: Aucune
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/conflitB/DESCRIPTION-FUNCTIONS b/scilab/modules/atoms/tests/unit_tests/toolboxes/conflitB/DESCRIPTION-FUNCTIONS
new file mode 100644 (file)
index 0000000..b2ff3dc
--- /dev/null
@@ -0,0 +1 @@
+mafonction - est la
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/local1/DESCRIPTION b/scilab/modules/atoms/tests/unit_tests/toolboxes/local1/DESCRIPTION
new file mode 100644 (file)
index 0000000..eda9a82
--- /dev/null
@@ -0,0 +1,10 @@
+Toolbox: local1
+Version: 4.0.0
+Date: 2008-04-21
+Title: Local1
+Author: Delphine
+Maintainer: Delphine
+Description: test de checkDependencies
+Depends: local2 (>= 5.6)
+License: Aucune
+Category: essai
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/local1/DESCRIPTION-FUNCTIONS b/scilab/modules/atoms/tests/unit_tests/toolboxes/local1/DESCRIPTION-FUNCTIONS
new file mode 100644 (file)
index 0000000..b2ff3dc
--- /dev/null
@@ -0,0 +1 @@
+mafonction - est la
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/local2/DESCRIPTION b/scilab/modules/atoms/tests/unit_tests/toolboxes/local2/DESCRIPTION
new file mode 100644 (file)
index 0000000..d3c196a
--- /dev/null
@@ -0,0 +1,9 @@
+Toolbox: local2
+Version: 1.2
+Date: 2008-04-21
+Title: Local2
+Author: Delphine
+Maintainer: Delphine
+Description: test de checkDependencies
+License: Aucune
+Category: essai
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/local2/DESCRIPTION-FUNCTIONS b/scilab/modules/atoms/tests/unit_tests/toolboxes/local2/DESCRIPTION-FUNCTIONS
new file mode 100644 (file)
index 0000000..b2ff3dc
--- /dev/null
@@ -0,0 +1 @@
+mafonction - est la
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testA/DESCRIPTION b/scilab/modules/atoms/tests/unit_tests/toolboxes/testA/DESCRIPTION
new file mode 100644 (file)
index 0000000..c6e3270
--- /dev/null
@@ -0,0 +1,11 @@
+Toolbox: testA
+Version: 1.0.0
+Date: 2008-03-31
+Title: TestA
+Author: Delphine
+Maintainer: Delphine
+Description: Test de code scilab pour lire les DESCRIPTION. Avec une ligne de description qui est plus longue que la longueur d'une ligne, pour tester les lignes multiples.
+Depends: testB, testC, testH
+License: Aucune
+Category: essai
+ScilabVersion: >= 5.0
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testA/DESCRIPTION-FUNCTIONS b/scilab/modules/atoms/tests/unit_tests/toolboxes/testA/DESCRIPTION-FUNCTIONS
new file mode 100644 (file)
index 0000000..a8205ff
--- /dev/null
@@ -0,0 +1,4 @@
+mafonction1 - ma super fonction fait le cafe
+mafonction2 - ma super fonction 2 fait le menage
+mafonction3 - ma super fonction 3 fait la vaisselle, lave le linge, repasse, lave la cuisine et la salle de bain, il ne lui manque rien de rien.
+mafonction4 - ne sert a rien
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testB/DESCRIPTION b/scilab/modules/atoms/tests/unit_tests/toolboxes/testB/DESCRIPTION
new file mode 100644 (file)
index 0000000..649042d
--- /dev/null
@@ -0,0 +1,11 @@
+Toolbox: testB
+Version: 1.0.5
+Date: 2008-03-31
+Title: TestB
+Author: Delphine
+Maintainer: Delphine
+Description: Test de code scilab pour lire les DESCRIPTION.
+Depends: testD
+License: Aucune
+Category: essai
+ScilabVersion: >= 5.0
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testB/DESCRIPTION-FUNCTIONS b/scilab/modules/atoms/tests/unit_tests/toolboxes/testB/DESCRIPTION-FUNCTIONS
new file mode 100644 (file)
index 0000000..ecd9edf
--- /dev/null
@@ -0,0 +1 @@
+mafonction - joue du piano
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testC/DESCRIPTION b/scilab/modules/atoms/tests/unit_tests/toolboxes/testC/DESCRIPTION
new file mode 100644 (file)
index 0000000..cc56133
--- /dev/null
@@ -0,0 +1,10 @@
+Toolbox: testC
+Version: 1.0.0
+Date: 2008-03-31
+Title: TestC
+Author: Delphine
+Maintainer: Delphine
+Description: Test de code scilab pour lire les DESCRIPTION.
+Depends: testD
+License: Aucune
+Category: essai
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testC/DESCRIPTION-FUNCTIONS b/scilab/modules/atoms/tests/unit_tests/toolboxes/testC/DESCRIPTION-FUNCTIONS
new file mode 100644 (file)
index 0000000..7f93b9a
--- /dev/null
@@ -0,0 +1 @@
+mafonction - joue de la guitare
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testD/DESCRIPTION b/scilab/modules/atoms/tests/unit_tests/toolboxes/testD/DESCRIPTION
new file mode 100644 (file)
index 0000000..6642bd6
--- /dev/null
@@ -0,0 +1,10 @@
+Toolbox: testD
+Version: 2.5.0
+Date: 2008-03-31
+Title: TestD
+Author: Delphine
+Maintainer: Delphine
+Description: Test de code scilab pour lire les DESCRIPTION.
+Depends: testE
+License: Aucune
+Category: essai
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testD/DESCRIPTION-FUNCTIONS b/scilab/modules/atoms/tests/unit_tests/toolboxes/testD/DESCRIPTION-FUNCTIONS
new file mode 100644 (file)
index 0000000..58b25cf
--- /dev/null
@@ -0,0 +1 @@
+mafonction - joue du saxo
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testE/DESCRIPTION b/scilab/modules/atoms/tests/unit_tests/toolboxes/testE/DESCRIPTION
new file mode 100644 (file)
index 0000000..537c7d2
--- /dev/null
@@ -0,0 +1,10 @@
+Toolbox: testE
+Version: 6.0.0
+Date: 2008-03-31
+Title: TestE
+Author: Delphine
+Maintainer: Delphine
+Description: Test de code scilab pour lire les DESCRIPTION.
+Depends: testF
+License: Aucune
+Category: essai
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/testE/DESCRIPTION-FUNCTIONS b/scilab/modules/atoms/tests/unit_tests/toolboxes/testE/DESCRIPTION-FUNCTIONS
new file mode 100644 (file)
index 0000000..acf7e3f
--- /dev/null
@@ -0,0 +1 @@
+mafonction - joue de la basse
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/truc/DESCRIPTION b/scilab/modules/atoms/tests/unit_tests/toolboxes/truc/DESCRIPTION
new file mode 100644 (file)
index 0000000..a0bd785
--- /dev/null
@@ -0,0 +1,10 @@
+Toolbox: truc
+Version: 6.0.0
+Date: 2008-03-31
+Title: TestE
+Author: Delphine
+Maintainer: Delphine
+Description: Test de code scilab pour lire les DESCRIPTION.
+Depends: truc
+License: Aucune
+Category: essai
diff --git a/scilab/modules/atoms/tests/unit_tests/toolboxes/truc/DESCRIPTION-FUNCTIONS b/scilab/modules/atoms/tests/unit_tests/toolboxes/truc/DESCRIPTION-FUNCTIONS
new file mode 100644 (file)
index 0000000..b2ff3dc
--- /dev/null
@@ -0,0 +1 @@
+mafonction - est la