Bug #14424 #14376 fixed: remove size max of input function, avoid wrong interpretatio... 12/19212/2
Antoine ELIAS [Wed, 1 Feb 2017 11:31:22 +0000 (12:31 +0100)]
   * multiple print of prompt
   * bad prompt after error
input("write a string: "); // write a string to get an error

Change-Id: If637263c325909d9ee84425c099e3b778f3ac0de

35 files changed:
scilab/CHANGES.md
scilab/modules/ast/src/cpp/ast/run_SeqExp.hpp
scilab/modules/ast/src/cpp/system_env/configvariable.cpp
scilab/modules/console/Makefile.am
scilab/modules/console/Makefile.in
scilab/modules/console/includes/SetConsolePrompt.h
scilab/modules/console/includes/prompt.h
scilab/modules/console/sci_gateway/cpp/sci_prompt.cpp
scilab/modules/console/src/c/cmdLine/cliPrompt.c
scilab/modules/console/src/c/console.vcxproj
scilab/modules/console/src/c/console.vcxproj.filters
scilab/modules/console/src/c/promptecho.c [deleted file]
scilab/modules/console/src/c/promptecho.h [deleted file]
scilab/modules/console/src/c/windows/TermConsole.c
scilab/modules/console/src/c/windows/TermConsole.h
scilab/modules/console/src/c/windows/TermLine.c
scilab/modules/console/src/c/windows/TermLine.h
scilab/modules/console/src/c/windows/TermReadAndProcess.c
scilab/modules/console/src/cpp/SetConsolePrompt.cpp
scilab/modules/console/src/cpp/prompt.cpp [moved from scilab/modules/console/src/c/prompt.c with 70% similarity]
scilab/modules/console/src/cpp/scilabRead.cpp
scilab/modules/console/src/noconsole/noconsole.c
scilab/modules/console/src/noconsole/noconsole.vcxproj
scilab/modules/console/src/noconsole/noconsole.vcxproj.filters
scilab/modules/console/tests/nonreg_tests/bug_14376.tst [new file with mode: 0644]
scilab/modules/console/tests/nonreg_tests/bug_14424.tst [new file with mode: 0644]
scilab/modules/core/Makefile.am
scilab/modules/core/Makefile.in
scilab/modules/core/includes/texmacs.h [deleted file]
scilab/modules/core/src/c/core.vcxproj
scilab/modules/core/src/c/core.vcxproj.filters
scilab/modules/core/src/c/texmacs.c [deleted file]
scilab/modules/core/src/cpp/InitScilab.cpp
scilab/modules/fileio/sci_gateway/cpp/sci_mscanf.cpp
scilab/modules/io/macros/input.sci

index ff2ceb7..31dcadf 100644 (file)
@@ -347,6 +347,8 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 * [#5278](http://bugzilla.scilab.org/show_bug.cgi?id=5278): obsolete `xset()` was still used in scripts, macros, tests and help pages.
 * [#12771](http://bugzilla.scilab.org/show_bug.cgi?id=12771): xcosPalGenerateAllIcons help example was broken
 * [#13592](http://bugzilla.scilab.org/show_bug.cgi?id=13592): In an axes in a uicontrol frame, setting a `legend` interactively might not follow the mouse accurately.
+* [#14376](http://bugzilla.scilab.org/show_bug.cgi?id=14376): input() is broken: \n introduced before prompting, multiple prompts, missing assignment, "%" "\n" "\t" no longer supported in messages...
+* [#14424](http://bugzilla.scilab.org/show_bug.cgi?id=14424): New problem with the input function.
 * [#14636](http://bugzilla.scilab.org/show_bug.cgi?id=14636): Xcos model with modelica electrical blocks (created in 5.5.2) crashed Scilab 6.
 * [#14637](http://bugzilla.scilab.org/show_bug.cgi?id=14367): Some Scilab 5.5.2 diagrams didn't simulate properly in Xcos.
 * [#14886](http://bugzilla.scilab.org/show_bug.cgi?id=14886): Matplot save/load failed.
@@ -705,4 +707,3 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 * [#14685](http://bugzilla.scilab.org/show_bug.cgi?id=14685): datavec produced an invalid index error.
 * [#14980] (http://bugzilla.scilab.org/show_bug.cgi?id=14980): The datatip display of the root locus arcs is broken.
 * [#14992] (http://bugzilla.scilab.org/show_bug.cgi?id=14992): `readgateway` has been removed, use `whereis` instead.
-
index 3c3ed01..5378e60 100644 (file)
@@ -75,11 +75,8 @@ void RunVisitorT<T>::visitprivate(const SeqExp  &e)
             Location loc = (*it)->getLocation();
             if (iCurrentLine + 1 < loc.first_line)
             {
-                char pstPrompt[64];
                 //get prompt
-                GetCurrentPrompt(pstPrompt);
-                std::string stPrompt(pstPrompt);
-
+                std::string stPrompt = GetCurrentPrompt();
                 if (ConfigVariable::isPrintInteractive())
                 {
                     stPrompt = SCIPROMPT_PAUSE;
index 6902a7c..ff5ab2d 100644 (file)
@@ -1503,7 +1503,7 @@ void ConfigVariable::setScilabCommand(int _isciCmd)
 
 int ConfigVariable::isScilabCommand()
 {
-    return m_isScilabCommand.load();
+    return m_isScilabCommand.exchange(1);
 }
 /*
 ** \}
index e03d436..d72c4e7 100644 (file)
@@ -83,8 +83,7 @@ libsciconsole_minimal_la_SOURCES = \
     src/c/scilines.c \
     src/c/others/gotoxy_nw.c \
     src/c/others/clrscr_nw.c \
-    src/c/prompt.c \
-    src/c/promptecho.c \
+    src/cpp/prompt.cpp \
     src/c/getpipeline.c \
     src/c/cmdLine/autoCompletionCli.c \
     src/c/cmdLine/charactersManagement.c \
index f7d936b..1a0d8d5 100644 (file)
@@ -204,8 +204,7 @@ am_libsciconsole_minimal_la_OBJECTS =  \
        src/c/libsciconsole_minimal_la-scilines.lo \
        src/c/others/libsciconsole_minimal_la-gotoxy_nw.lo \
        src/c/others/libsciconsole_minimal_la-clrscr_nw.lo \
-       src/c/libsciconsole_minimal_la-prompt.lo \
-       src/c/libsciconsole_minimal_la-promptecho.lo \
+       src/cpp/libsciconsole_minimal_la-prompt.lo \
        src/c/libsciconsole_minimal_la-getpipeline.lo \
        src/c/cmdLine/libsciconsole_minimal_la-autoCompletionCli.lo \
        src/c/cmdLine/libsciconsole_minimal_la-charactersManagement.lo \
@@ -685,8 +684,7 @@ libsciconsole_minimal_la_SOURCES = \
     src/c/scilines.c \
     src/c/others/gotoxy_nw.c \
     src/c/others/clrscr_nw.c \
-    src/c/prompt.c \
-    src/c/promptecho.c \
+    src/cpp/prompt.cpp \
     src/c/getpipeline.c \
     src/c/cmdLine/autoCompletionCli.c \
     src/c/cmdLine/charactersManagement.c \
@@ -1009,10 +1007,14 @@ src/c/others/libsciconsole_minimal_la-gotoxy_nw.lo:  \
 src/c/others/libsciconsole_minimal_la-clrscr_nw.lo:  \
        src/c/others/$(am__dirstamp) \
        src/c/others/$(DEPDIR)/$(am__dirstamp)
-src/c/libsciconsole_minimal_la-prompt.lo: src/c/$(am__dirstamp) \
-       src/c/$(DEPDIR)/$(am__dirstamp)
-src/c/libsciconsole_minimal_la-promptecho.lo: src/c/$(am__dirstamp) \
-       src/c/$(DEPDIR)/$(am__dirstamp)
+src/cpp/$(am__dirstamp):
+       @$(MKDIR_P) src/cpp
+       @: > src/cpp/$(am__dirstamp)
+src/cpp/$(DEPDIR)/$(am__dirstamp):
+       @$(MKDIR_P) src/cpp/$(DEPDIR)
+       @: > src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciconsole_minimal_la-prompt.lo: src/cpp/$(am__dirstamp) \
+       src/cpp/$(DEPDIR)/$(am__dirstamp)
 src/c/libsciconsole_minimal_la-getpipeline.lo: src/c/$(am__dirstamp) \
        src/c/$(DEPDIR)/$(am__dirstamp)
 src/c/cmdLine/$(am__dirstamp):
@@ -1051,12 +1053,6 @@ src/c/cmdLine/libsciconsole_minimal_la-initConsoleMode.lo:  \
 src/c/cmdLine/libsciconsole_minimal_la-termcapManagement.lo:  \
        src/c/cmdLine/$(am__dirstamp) \
        src/c/cmdLine/$(DEPDIR)/$(am__dirstamp)
-src/cpp/$(am__dirstamp):
-       @$(MKDIR_P) src/cpp
-       @: > src/cpp/$(am__dirstamp)
-src/cpp/$(DEPDIR)/$(am__dirstamp):
-       @$(MKDIR_P) src/cpp/$(DEPDIR)
-       @: > src/cpp/$(DEPDIR)/$(am__dirstamp)
 src/cpp/libsciconsole_minimal_la-scilabRead.lo:  \
        src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
 sci_gateway/cpp/libsciconsole_minimal_la-console_gw.lo:  \
@@ -1137,8 +1133,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libsciconsole_minimal_la-clc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libsciconsole_minimal_la-getpipeline.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libsciconsole_minimal_la-more.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libsciconsole_minimal_la-prompt.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libsciconsole_minimal_la-promptecho.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libsciconsole_minimal_la-scilines.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libsciconsole_minimal_la-tohome.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/cmdLine/$(DEPDIR)/libsciconsole_minimal_la-autoCompletionCli.Plo@am__quote@
@@ -1163,6 +1157,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciconsole_la-PromptToHome.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciconsole_la-ScilabLinesUpdate.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciconsole_la-SetConsolePrompt.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciconsole_minimal_la-prompt.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciconsole_minimal_la-scilabRead.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/jni/$(DEPDIR)/libsciconsole_la-CallScilabBridge.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/jni/$(DEPDIR)/libsciconsole_la-DropFiles_wrap.Plo@am__quote@
@@ -1242,20 +1237,6 @@ src/c/others/libsciconsole_minimal_la-clrscr_nw.lo: src/c/others/clrscr_nw.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/others/libsciconsole_minimal_la-clrscr_nw.lo `test -f 'src/c/others/clrscr_nw.c' || echo '$(srcdir)/'`src/c/others/clrscr_nw.c
 
-src/c/libsciconsole_minimal_la-prompt.lo: src/c/prompt.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libsciconsole_minimal_la-prompt.lo -MD -MP -MF src/c/$(DEPDIR)/libsciconsole_minimal_la-prompt.Tpo -c -o src/c/libsciconsole_minimal_la-prompt.lo `test -f 'src/c/prompt.c' || echo '$(srcdir)/'`src/c/prompt.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libsciconsole_minimal_la-prompt.Tpo src/c/$(DEPDIR)/libsciconsole_minimal_la-prompt.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/c/prompt.c' object='src/c/libsciconsole_minimal_la-prompt.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libsciconsole_minimal_la-prompt.lo `test -f 'src/c/prompt.c' || echo '$(srcdir)/'`src/c/prompt.c
-
-src/c/libsciconsole_minimal_la-promptecho.lo: src/c/promptecho.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libsciconsole_minimal_la-promptecho.lo -MD -MP -MF src/c/$(DEPDIR)/libsciconsole_minimal_la-promptecho.Tpo -c -o src/c/libsciconsole_minimal_la-promptecho.lo `test -f 'src/c/promptecho.c' || echo '$(srcdir)/'`src/c/promptecho.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libsciconsole_minimal_la-promptecho.Tpo src/c/$(DEPDIR)/libsciconsole_minimal_la-promptecho.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/c/promptecho.c' object='src/c/libsciconsole_minimal_la-promptecho.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libsciconsole_minimal_la-promptecho.lo `test -f 'src/c/promptecho.c' || echo '$(srcdir)/'`src/c/promptecho.c
-
 src/c/libsciconsole_minimal_la-getpipeline.lo: src/c/getpipeline.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libsciconsole_minimal_la-getpipeline.lo -MD -MP -MF src/c/$(DEPDIR)/libsciconsole_minimal_la-getpipeline.Tpo -c -o src/c/libsciconsole_minimal_la-getpipeline.lo `test -f 'src/c/getpipeline.c' || echo '$(srcdir)/'`src/c/getpipeline.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libsciconsole_minimal_la-getpipeline.Tpo src/c/$(DEPDIR)/libsciconsole_minimal_la-getpipeline.Plo
@@ -1427,6 +1408,13 @@ sci_gateway/cpp/libsciconsole_minimal_la-sci_iswaitingforinput.lo: sci_gateway/c
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sci_gateway/cpp/libsciconsole_minimal_la-sci_iswaitingforinput.lo `test -f 'sci_gateway/cpp/sci_iswaitingforinput.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_iswaitingforinput.cpp
 
+src/cpp/libsciconsole_minimal_la-prompt.lo: src/cpp/prompt.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciconsole_minimal_la-prompt.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciconsole_minimal_la-prompt.Tpo -c -o src/cpp/libsciconsole_minimal_la-prompt.lo `test -f 'src/cpp/prompt.cpp' || echo '$(srcdir)/'`src/cpp/prompt.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciconsole_minimal_la-prompt.Tpo src/cpp/$(DEPDIR)/libsciconsole_minimal_la-prompt.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/prompt.cpp' object='src/cpp/libsciconsole_minimal_la-prompt.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciconsole_minimal_la-prompt.lo `test -f 'src/cpp/prompt.cpp' || echo '$(srcdir)/'`src/cpp/prompt.cpp
+
 src/cpp/libsciconsole_minimal_la-scilabRead.lo: src/cpp/scilabRead.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciconsole_minimal_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciconsole_minimal_la-scilabRead.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciconsole_minimal_la-scilabRead.Tpo -c -o src/cpp/libsciconsole_minimal_la-scilabRead.lo `test -f 'src/cpp/scilabRead.cpp' || echo '$(srcdir)/'`src/cpp/scilabRead.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciconsole_minimal_la-scilabRead.Tpo src/cpp/$(DEPDIR)/libsciconsole_minimal_la-scilabRead.Plo
index 6cf92f9..5e01e19 100644 (file)
@@ -23,7 +23,7 @@
 * @param Sci_prompt new prompt to use for Scilab
 * @return true ifthe prompt has been correcty set
 */
-CONSOLE_IMPEXP BOOL SetConsolePrompt(char *Sci_prompt);
+CONSOLE_IMPEXP BOOL SetConsolePrompt(const char *Sci_prompt);
 
 /*--------------------------------------------------------------------------*/
 #endif /* __SETCONSOLEPROMPT_H__ */
index 446f9d4..0a9af51 100644 (file)
 
 #ifndef _PROMPT_H_
 #define _PROMPT_H_
-/* Define prompts of Scilab */
 
 #include "machine.h"            /* C2F */
 #include "dynlib_console.h"
 
+/* Define prompts of Scilab */
 #ifdef SCIPROMPT
 #undef SCIPROMPT
 #endif
 #define PROMPT_SIZE_MAX 64
 
 /*--------------------------------------------------------------------------*/
-CONSOLE_IMPEXP void C2F(setprlev) (int *pause);
+CONSOLE_IMPEXP void setPreviousLevel(int pause);
 
-CONSOLE_IMPEXP void GetCurrentPrompt(char *CurrentPrompt);
+CONSOLE_IMPEXP const char* GetCurrentPrompt();
 
-CONSOLE_IMPEXP void SetTemporaryPrompt(const char *tempPrompt);
+CONSOLE_IMPEXP void SetTemporaryPrompt(const char* tempPrompt);
 
-CONSOLE_IMPEXP char *GetTemporaryPrompt(void);
+CONSOLE_IMPEXP const char* GetTemporaryPrompt(void);
 
 CONSOLE_IMPEXP void ClearTemporaryPrompt(void);
 
index a4fef72..2622388 100644 (file)
@@ -30,7 +30,7 @@ extern "C"
 
 types::Function::ReturnValue sci_prompt(types::typed_list &in, int _iRetCount, types::typed_list &out)
 {
-    char currentPrompt[PROMPT_SIZE_MAX];
+    const char* currentPrompt;
 
     if (in.size() > 1)
     {
@@ -46,7 +46,7 @@ types::Function::ReturnValue sci_prompt(types::typed_list &in, int _iRetCount, t
             return types::Function::Error;
         }
 
-        GetCurrentPrompt(currentPrompt);
+        currentPrompt = GetCurrentPrompt();
         out.push_back(new types::String(currentPrompt));
         if (_iRetCount == 2)
         {
@@ -70,13 +70,6 @@ types::Function::ReturnValue sci_prompt(types::typed_list &in, int _iRetCount, t
         }
 
         char* pstrPrompt = wide_string_to_UTF8(in[0]->getAs<types::String>()->get(0));
-        if (strlen(pstrPrompt) > PROMPT_SIZE_MAX - 1)
-        {
-            Scierror(999, _("%s: Wrong size for input argument #%d: A Single string of size %d expected.\n"), "prompt", 1, PROMPT_SIZE_MAX - 1);
-            FREE(pstrPrompt);
-            return types::Function::Error;
-        }
-
         SetTemporaryPrompt(pstrPrompt);
         FREE(pstrPrompt);
     }
index 80785d8..c87fb2e 100644 (file)
  */
 int printPrompt(int token)
 {
-    char * prompt = (char*)malloc(sizeof(char) * (PROMPT_SIZE_MAX + 1));
-    char * tmpPrompt = GetTemporaryPrompt();
-    int promptLen;
-
     /* Retrieve the prompt. It can be different if the pause mode is enabled */
-    GetCurrentPrompt(prompt);
+    const char * prompt     = GetCurrentPrompt();
+    const char * tmpPrompt  = GetTemporaryPrompt();
 
     if (token == WRITE_PROMPT)
     {
         setCharDisplay(DISP_DEFAULT);
-        if (tmpPrompt)
+        if (tmpPrompt == '\0')
         {
             printf("%s", tmpPrompt);
         }
@@ -54,8 +51,5 @@ int printPrompt(int token)
         fflush(stdout);
     }
 
-    promptLen = strlen(prompt);
-    free(prompt);
-    return promptLen;
+    return strlen(prompt);;
 }
-
index c3f119f..aef65ae 100644 (file)
     </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="..\cpp\prompt.cpp" />
     <ClCompile Include="..\cpp\scilabRead.cpp" />
     <ClCompile Include="..\jni\CallScilabBridge.cpp" />
     <ClCompile Include="..\cpp\ClearConsole.cpp" />
     <ClCompile Include="..\cpp\ScilabLinesUpdate.cpp" />
     <ClCompile Include="..\cpp\SetConsolePrompt.cpp" />
     <ClCompile Include="more.c" />
-    <ClCompile Include="prompt.c" />
-    <ClCompile Include="promptecho.c" />
     <ClCompile Include="scilines.c" />
     <ClCompile Include="tohome.c" />
     <ClCompile Include="windows\clrscrPart_nw.c" />
     <ClInclude Include="dropFiles.h" />
     <ClInclude Include="GetCharWithoutOutput.h" />
     <ClInclude Include="GuiManagement.h" />
-    <ClInclude Include="promptecho.h" />
     <ClInclude Include="PromptToHome.h" />
     <ClInclude Include="PutChar.h" />
     <ClInclude Include="ScilabLinesUpdate.h" />
index e63acfe..9c29ee7 100644 (file)
     <ClCompile Include="more.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="prompt.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="promptecho.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="scilines.c">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="windows\TermPrintf.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="windows\TermReadAndProcess.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\cpp\scilabRead.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="getpipeline.c">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="..\cpp\prompt.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="windows\TermReadAndProcess.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\jni\DropFiles.i">
     <ClInclude Include="..\..\includes\more.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\includes\prompt.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\includes\scilines.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="GuiManagement.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="promptecho.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="PromptToHome.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\includes\getpipeline.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\includes\prompt.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="console.rc" />
diff --git a/scilab/modules/console/src/c/promptecho.c b/scilab/modules/console/src/c/promptecho.c
deleted file mode 100644 (file)
index 706d103..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-* Copyright (C) DIGITEO - 2009 - Allan CORNET
-*
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
-*
-*/
-/*--------------------------------------------------------------------------*/
-#include <stdio.h>
-#include <string.h>
-#include "promptecho.h"
-#include "basout.h"
-#include "sci_malloc.h"
-#include "prompt.h"
-#include "os_string.h"
-/*--------------------------------------------------------------------------*/
-int C2F(promptecho)(int *lunit, char *string, int *strl, int string_len)
-{
-    char *promptstr = NULL;
-    char *buffstr =  NULL;
-    int lenbuffstr = 0;
-
-    if (GetTemporaryPrompt())
-    {
-        promptstr = os_strdup(GetTemporaryPrompt());
-    }
-    else
-    {
-        promptstr = (char*)MALLOC(sizeof(char) * (PROMPT_SIZE_MAX + 1));
-        GetCurrentPrompt(promptstr);
-    }
-
-    /* concates prompt with input command line */
-    if (promptstr)
-    {
-        lenbuffstr = (int) ( strlen(string) + strlen(promptstr) );
-        buffstr = (char*) MALLOC(sizeof(char) * (lenbuffstr + 1));
-        if (buffstr)
-        {
-            strcpy(buffstr, promptstr);
-            strcat(buffstr, string);
-        }
-        FREE(promptstr);
-        promptstr = NULL;
-    }
-
-    /* displays command line with prompt */
-    if (buffstr)
-    {
-        int io = 0;
-        C2F(basout)(&io, lunit, buffstr, lenbuffstr);
-        FREE(buffstr);
-        buffstr = NULL;
-    }
-    return 0;
-}
-/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/console/src/c/promptecho.h b/scilab/modules/console/src/c/promptecho.h
deleted file mode 100644 (file)
index 74738c5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-* Copyright (C) DIGITEO - 2009 - Allan CORNET
-*
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
-*
-*/
-
-/*--------------------------------------------------------------------------*/
-#ifndef __PROMPTECHO_H__
-#define __PROMPTECHO_H__
-
-#include "machine.h"
-#include "dynlib_console.h"
-
-CONSOLE_IMPEXP int C2F(promptecho)(int *lunit, char *string, int *strl, int string_len);
-
-#endif /* __PROMPTECHO_H__ */
-/*--------------------------------------------------------------------------*/
index bdf3aef..7dcb01a 100644 (file)
@@ -26,6 +26,8 @@
 #include "scilines.h"
 #include "HistoryManager.h"
 #include "localization.h"
+#include "storeCommand.h"
+#include "configvariable_interface.h"
 /*--------------------------------------------------------------------------*/
 #ifdef CR_1
 #undef CR_1
@@ -109,7 +111,7 @@ void TerminalBeep(void)
     MessageBeep(MB_OK);
 }
 /*--------------------------------------------------------------------------*/
-int TerminalPrintf(char *buffer)
+int TerminalPrintf(const char *buffer)
 {
     if (buffer)
     {
@@ -399,7 +401,7 @@ static char actionControlKey(void)
     return 0;
 }
 /*--------------------------------------------------------------------------*/
-char *TerminalGetString(char *prompt)
+char *TerminalGetString(const char *prompt)
 {
     if (InitTerm)
     {
index 8ada39d..e577eae 100644 (file)
@@ -26,7 +26,7 @@ void InitializeTerminal(void);
 * @param[in] buffer
 * @return number of characters
 */
-int TerminalPrintf(char *buffer);
+int TerminalPrintf(const char *buffer);
 
 /**
 * put a character
@@ -39,7 +39,7 @@ int TerminalPutc(char ch);
 * @param[in] prompt
 * @return line from terminal
 */
-char *TerminalGetString(char *prompt);
+char *TerminalGetString(const char *prompt);
 
 /**
 * do a beep
index 554dad9..f6dbdcb 100644 (file)
@@ -30,7 +30,7 @@
 /*--------------------------------------------------------------------------*/
 static int CURRENT_MAX_LINE_SIZE = bsiz;
 static char *cur_line = NULL;  /* current contents of the line */
-static char *currentPrompt = NULL;
+static const char *currentPrompt = NULL;
 static int cur_pos = 0;                /* current position of the cursor */
 static int max_pos = 0;
 /*--------------------------------------------------------------------------*/
@@ -391,12 +391,12 @@ static void backSpace(void)
     }
 }
 /*--------------------------------------------------------------------------*/
-static char *getCurrentPrompt(void)
+static const char *getCurrentPrompt(void)
 {
     return currentPrompt;
 }
 /*--------------------------------------------------------------------------*/
-void setCurrentPrompt(char *prompt)
+void setCurrentPrompt(const char *prompt)
 {
     currentPrompt = prompt;
 }
index 189101f..ce854dd 100644 (file)
@@ -114,7 +114,7 @@ void clearCurrentLine(void);
 /**
 * set prompt used by terminal
 */
-void setCurrentPrompt(char *prompt);
+void setCurrentPrompt(const char *prompt);
 
 /**
 * display prompt
index 1c15300..e52ece6 100644 (file)
 /*--------------------------------------------------------------------------*/
 #include <stdio.h>
 #include <string.h>
+
+#include "prompt.h"
 #include "TermReadAndProcess.h"
 #include "sci_malloc.h"
-#include "prompt.h"
 #include "TermConsole.h"
 /*--------------------------------------------------------------------------*/
 char * getCmdLine(void)
 {
-    char *line = NULL;
-    static char save_prompt[PROMPT_SIZE_MAX];
-
-    if (GetTemporaryPrompt() != NULL) /* Input function is used */
+    const char* tmp = GetTemporaryPrompt();
+    if (tmp[0] != 0) /* Input function is used */
     {
-        line = TerminalGetString(GetTemporaryPrompt());
+        return TerminalGetString(tmp);
     }
     else
     {
-        GetCurrentPrompt(save_prompt);
-        line = TerminalGetString(save_prompt);
+        return TerminalGetString(GetCurrentPrompt());
     }
-    strcpy(save_prompt, "");
-    return line;
 }
 /*--------------------------------------------------------------------------*/
index 6f404ee..15d95e1 100644 (file)
@@ -18,7 +18,7 @@
 #include "CallScilabBridge.hxx"
 /*--------------------------------------------------------------------------*/
 using namespace  org_scilab_modules_gui_bridge;
-BOOL SetConsolePrompt(char *Sci_prompt)
+BOOL SetConsolePrompt(const char *Sci_prompt)
 {
     CallScilabBridge::setPrompt(getScilabJavaVM(), Sci_prompt);
     return TRUE;
similarity index 70%
rename from scilab/modules/console/src/c/prompt.c
rename to scilab/modules/console/src/cpp/prompt.cpp
index 978e53d..67acb7e 100644 (file)
 *
 */
 #include <stdio.h>
-#include <string.h>
+#include <string>
+
+extern "C"
+{
 #include "prompt.h"
 #include "sciprint.h"
 #include "configvariable_interface.h"
 #include "sci_malloc.h"
 #include "os_string.h"
 #include "BOOL.h"
+}
 /*------------------------------------------------------------------------*/
-static char Sci_Prompt[PROMPT_SIZE_MAX];
+static std::string Sci_Prompt;
+static std::string temporaryPrompt;
 static BOOL dispWarningLevelPrompt = TRUE;
-static char *temporaryPrompt = NULL;
 /*------------------------------------------------------------------------*/
 /* setprlev : set the current prompt string */
 /*------------------------------------------------------------------------*/
-void C2F(setprlev)( int *pause)
+void setPreviousLevel(int pause)
 {
     //debugger prompt first !
     if (isEnableDebug())
     {
         if (isDebugInterrupted())
         {
-            sprintf(Sci_Prompt, SCIPROMPTBREAK);
+            Sci_Prompt = SCIPROMPTBREAK;
         }
         else
         {
-            sprintf(Sci_Prompt, SCIPROMPTDEBUG);
+            Sci_Prompt = SCIPROMPTDEBUG;
         }
     }
-    else if ( *pause == 0 )
+    else if (pause == 0)
     {
-        if (temporaryPrompt != NULL)
+        if (temporaryPrompt.empty() == false)
         {
-            strcpy(Sci_Prompt, temporaryPrompt);
+            Sci_Prompt = temporaryPrompt;
             ClearTemporaryPrompt();
         }
         else
         {
-            sprintf(Sci_Prompt, SCIPROMPT);
+            Sci_Prompt = SCIPROMPT;
         }
     }
-    else if ( *pause > 0 )
+    else if (pause > 0)
     {
         if (dispWarningLevelPrompt)
         {
@@ -65,45 +69,40 @@ void C2F(setprlev)( int *pause)
                 dispWarningLevelPrompt = FALSE;
             }
         }
-        sprintf(Sci_Prompt, SCIPROMPT_INTERRUPT, *pause);
+        char t[50];
+
+        sprintf(t, SCIPROMPT_INTERRUPT, pause);
+        Sci_Prompt = t;
         // bug 5513
         // when we change prompt to a pause level, we change also temp. prompt
         //SetTemporaryPrompt(Sci_Prompt);
     }
     else
     {
-        sprintf(Sci_Prompt, SCIPROMPT_PAUSE);
+        Sci_Prompt = SCIPROMPT_PAUSE;
         // bug 5513
         // when we change prompt to halt level, we change also temp. prompt
-        SetTemporaryPrompt(Sci_Prompt);
+        SetTemporaryPrompt(Sci_Prompt.data());
     }
 }
 /*------------------------------------------------------------------------*/
-void GetCurrentPrompt(char *CurrentPrompt)
+const char* GetCurrentPrompt()
 {
-    if (CurrentPrompt)
-    {
-        strcpy(CurrentPrompt, Sci_Prompt);
-    }
+    return Sci_Prompt.data();
 }
 /*------------------------------------------------------------------------*/
-void SetTemporaryPrompt(const char *tempPrompt)
+void SetTemporaryPrompt(const char* tempPrompt)
 {
-    ClearTemporaryPrompt();
-    temporaryPrompt = os_strdup(tempPrompt);
+    temporaryPrompt = tempPrompt;
 }
 /*------------------------------------------------------------------------*/
-char *GetTemporaryPrompt(void)
+const char* GetTemporaryPrompt(void)
 {
-    return temporaryPrompt;
+    return temporaryPrompt.data();
 }
 /*------------------------------------------------------------------------*/
 void ClearTemporaryPrompt(void)
 {
-    if (temporaryPrompt)
-    {
-        FREE(temporaryPrompt);
-        temporaryPrompt = NULL;
-    }
+    temporaryPrompt = "";
 }
 /*------------------------------------------------------------------------*/
index 0d072de..dc57228 100644 (file)
 
 extern "C"
 {
+#include "prompt.h"
 #include "sci_malloc.h"
 #include "scilabRead.h"
 #include "SetConsolePrompt.h"
-#include "prompt.h"
 #include "TermReadAndProcess.h"
 #include "os_string.h"
 #include "configvariable_interface.h"
@@ -53,15 +53,14 @@ int scilabRead()
     if (getScilabMode() == SCILAB_STD)
     {
         /* Send new prompt to Java Console, do not display it */
-        if (GetTemporaryPrompt() != NULL)
+        std::string tmp = GetTemporaryPrompt();
+        if (tmp.empty() == false)
         {
-            SetConsolePrompt(GetTemporaryPrompt());
+            SetConsolePrompt(tmp.data());
         }
         else
         {
-            char pstCurrentPrompt[PROMPT_SIZE_MAX];
-            GetCurrentPrompt(pstCurrentPrompt);
-            SetConsolePrompt(pstCurrentPrompt);
+            SetConsolePrompt(GetCurrentPrompt());
         }
     }
 
@@ -69,9 +68,7 @@ int scilabRead()
     char* pstTemp = (*_reader)();
 
     //add prompt to diary
-    static char pstPrompt[PROMPT_SIZE_MAX];
-    GetCurrentPrompt(pstPrompt);
-    wchar_t* pwstPrompt = to_wide_string(pstPrompt);
+    wchar_t* pwstPrompt = to_wide_string(GetCurrentPrompt());
     diaryWrite(pwstPrompt, TRUE);
     FREE(pwstPrompt);
 
index ba30047..c36e964 100644 (file)
@@ -62,7 +62,7 @@ BOOL PromptToHome(void)
     return FALSE;
 }
 /*--------------------------------------------------------------------------*/
-BOOL SetConsolePrompt(char *Sci_prompt)
+BOOL SetConsolePrompt(const char *Sci_prompt)
 {
     return FALSE;
 }
index 810c0a3..efc88c4 100644 (file)
     <ClCompile Include="..\..\sci_gateway\cpp\sci_lines.cpp" />
     <ClCompile Include="..\..\sci_gateway\cpp\sci_prompt.cpp" />
     <ClCompile Include="..\..\sci_gateway\cpp\sci_tohome.cpp" />
+    <ClCompile Include="..\cpp\prompt.cpp" />
     <ClCompile Include="..\cpp\scilabRead.cpp" />
     <ClCompile Include="..\c\clc.c" />
     <ClCompile Include="..\c\DllmainConsole.c" />
     <ClCompile Include="..\c\more.c" />
-    <ClCompile Include="..\c\prompt.c" />
-    <ClCompile Include="..\c\promptecho.c" />
     <ClCompile Include="..\c\scilines.c" />
     <ClCompile Include="..\c\tohome.c" />
     <ClCompile Include="..\c\windows\clrscrPart_nw.c" />
index 9d725af..e5d0bd9 100644 (file)
@@ -39,9 +39,6 @@
     <ClCompile Include="..\c\windows\TermPosition.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\c\prompt.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\c\tohome.c">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -63,9 +60,6 @@
     <ClCompile Include="..\c\windows\TermPrintf.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\c\promptecho.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\c\more.c">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -87,6 +81,9 @@
     <ClCompile Include="..\..\sci_gateway\cpp\sci_tohome.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="..\cpp\prompt.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="noconsole.rc">
diff --git a/scilab/modules/console/tests/nonreg_tests/bug_14376.tst b/scilab/modules/console/tests/nonreg_tests/bug_14376.tst
new file mode 100644 (file)
index 0000000..6f3fbdf
--- /dev/null
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- INTERACTIVE TEST -->
+// <-- Non-regression test for bug 14376 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=14376
+//
+// <-- Short Description -->
+// input() is broken: \n introduced before prompting; multiple prompts; missin assignment; "%" "\n" "\t" no longer supported in messages...
+
+t = input("Message: ","s");
+// write a string then enter
+// Must be prompted only one time
diff --git a/scilab/modules/console/tests/nonreg_tests/bug_14424.tst b/scilab/modules/console/tests/nonreg_tests/bug_14424.tst
new file mode 100644 (file)
index 0000000..b5c2646
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Scilab Enterprises - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- INTERACTIVE TEST -->
+// <-- Non-regression test for bug 14424 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=14424
+//
+// <-- Short Description -->
+// input: remove size max of input function, avoid wrong interpretation of C characters ('\', '%', ...)
+
+//length test
+x1 = input("01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789: ");
+18
+x2 = input("a string with \n \t \r %: ");
+42
+disp(x2, x1);
index 82fcc89..6838250 100644 (file)
@@ -14,7 +14,6 @@
 CORE_C_SOURCES = \
     src/c/csignal.c \
     src/c/md5.c \
-    src/c/texmacs.c \
     src/c/getmodules.c \
     src/c/getmemory.c \
     src/c/isanan.c \
index c81ca4d..bea4444 100644 (file)
@@ -193,7 +193,6 @@ libscicore_algo_la_LIBADD =
 am__dirstamp = $(am__leading_dot)dirstamp
 am__objects_1 = src/c/libscicore_algo_la-csignal.lo \
        src/c/libscicore_algo_la-md5.lo \
-       src/c/libscicore_algo_la-texmacs.lo \
        src/c/libscicore_algo_la-getmodules.lo \
        src/c/libscicore_algo_la-getmemory.lo \
        src/c/libscicore_algo_la-isanan.lo \
@@ -755,7 +754,6 @@ yacc_present = @yacc_present@
 CORE_C_SOURCES = \
     src/c/csignal.c \
     src/c/md5.c \
-    src/c/texmacs.c \
     src/c/getmodules.c \
     src/c/getmemory.c \
     src/c/isanan.c \
@@ -1109,8 +1107,6 @@ src/c/libscicore_algo_la-csignal.lo: src/c/$(am__dirstamp) \
        src/c/$(DEPDIR)/$(am__dirstamp)
 src/c/libscicore_algo_la-md5.lo: src/c/$(am__dirstamp) \
        src/c/$(DEPDIR)/$(am__dirstamp)
-src/c/libscicore_algo_la-texmacs.lo: src/c/$(am__dirstamp) \
-       src/c/$(DEPDIR)/$(am__dirstamp)
 src/c/libscicore_algo_la-getmodules.lo: src/c/$(am__dirstamp) \
        src/c/$(DEPDIR)/$(am__dirstamp)
 src/c/libscicore_algo_la-getmemory.lo: src/c/$(am__dirstamp) \
@@ -1537,7 +1533,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-setPrecisionFPU.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-signal_mgmt.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-suspendProcess.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-texmacs.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-transposeMatrix.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-version.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/hashtable/$(DEPDIR)/libscicore_algo_la-hashtable.Plo@am__quote@
@@ -1593,13 +1588,6 @@ src/c/libscicore_algo_la-md5.lo: src/c/md5.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscicore_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscicore_algo_la-md5.lo `test -f 'src/c/md5.c' || echo '$(srcdir)/'`src/c/md5.c
 
-src/c/libscicore_algo_la-texmacs.lo: src/c/texmacs.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscicore_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscicore_algo_la-texmacs.lo -MD -MP -MF src/c/$(DEPDIR)/libscicore_algo_la-texmacs.Tpo -c -o src/c/libscicore_algo_la-texmacs.lo `test -f 'src/c/texmacs.c' || echo '$(srcdir)/'`src/c/texmacs.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscicore_algo_la-texmacs.Tpo src/c/$(DEPDIR)/libscicore_algo_la-texmacs.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/c/texmacs.c' object='src/c/libscicore_algo_la-texmacs.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscicore_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscicore_algo_la-texmacs.lo `test -f 'src/c/texmacs.c' || echo '$(srcdir)/'`src/c/texmacs.c
-
 src/c/libscicore_algo_la-getmodules.lo: src/c/getmodules.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscicore_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscicore_algo_la-getmodules.lo -MD -MP -MF src/c/$(DEPDIR)/libscicore_algo_la-getmodules.Tpo -c -o src/c/libscicore_algo_la-getmodules.lo `test -f 'src/c/getmodules.c' || echo '$(srcdir)/'`src/c/getmodules.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscicore_algo_la-getmodules.Tpo src/c/$(DEPDIR)/libscicore_algo_la-getmodules.Plo
diff --git a/scilab/modules/core/includes/texmacs.h b/scilab/modules/core/includes/texmacs.h
deleted file mode 100644 (file)
index b46675e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2006 - INRIA - Sylvestre LEDRU
- * Copyright (C) ENPC
- *
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
- *
- */
-#ifndef __TEXMACS_H__
-#define __TEXMACS_H__
-
-#include "machine.h" /* C2F */
-
-void settexmacs(void);
-int  C2F(intexmacs)(void);
-void next_input (void);
-void C2F(texmacsin)(char buffer[], int *buf_size, int *len_line, int *eof, long int dummy1);
-
-#endif /* __TEXMACS_H__ */
index a1d85cb..3f1e508 100644 (file)
@@ -280,7 +280,6 @@ cd ..
     <ClCompile Include="returnanan.c" />
     <ClCompile Include="saveCWDInPreferences.c" />
     <ClCompile Include="setPrecisionFPU.c" />
-    <ClCompile Include="texmacs.c" />
     <ClCompile Include="transposeMatrix.c" />
     <ClCompile Include="version.c" />
     <ClCompile Include="win_mem_alloc.c" />
@@ -357,7 +356,6 @@ cd ..
     <ClInclude Include="..\..\includes\suspendProcess.h" />
     <ClInclude Include="..\..\includes\syncexec.h" />
     <ClInclude Include="..\..\includes\tasks.hxx" />
-    <ClInclude Include="..\..\includes\texmacs.h" />
     <ClInclude Include="..\..\includes\timer.hxx" />
     <ClInclude Include="..\..\includes\transposeMatrix.h" />
     <ClInclude Include="..\..\includes\version.h" />
index e1e189e..8dae778 100644 (file)
@@ -68,9 +68,6 @@
     <ClCompile Include="returnanan.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="texmacs.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="transposeMatrix.c">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClInclude Include="..\..\includes\tasks.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\includes\texmacs.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\includes\timer.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
diff --git a/scilab/modules/core/src/c/texmacs.c b/scilab/modules/core/src/c/texmacs.c
deleted file mode 100644 (file)
index d503b5a..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) INRIA
- * Copyright (C) DIGITEO - 2010 - Allan CORNET
- *
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
- *
- */
-/*--------------------------------------------------------------------------*/
-#include <stdio.h>
-#include "texmacs.h"
-#include "prompt.h"
-#include "readline.h"
-#include "api_scilab.h"
-#include "sciprint.h"
-#include "localization.h"
-#include "configvariable_interface.h"
-/*--------------------------------------------------------------------------*/
-#if 0 /* to debug TeXmacs interface */
-#define DATA_BEGIN  ((char) 'B')
-#define DATA_END    ((char) 'E')
-#else
-#define DATA_BEGIN  ((char) 2)
-#define DATA_END    ((char) 5)
-#endif
-#define DATA_ESCAPE  ((char) 27)
-/*--------------------------------------------------------------------------*/
-static int first = 1;
-static int texmacs_mode = 0;
-/*--------------------------------------------------------------------------*/
-void settexmacs(void)
-{
-    texmacs_mode = 1;
-}
-/*--------------------------------------------------------------------------*/
-int C2F(intexmacs)(void)
-{
-    return texmacs_mode;
-}
-/*--------------------------------------------------------------------------*/
-void next_input (void)
-{
-    fprintf(stdout, "%cchannel:prompt%c", DATA_BEGIN, DATA_END);
-    //if (Pause == 0)
-    {
-        fprintf(stdout, SCIPROMPT);
-    }
-    //else
-    //{
-    //    fprintf(stdout, SCIPROMPT_INTERRUPT, Pause);
-    //}
-
-    fprintf(stdout, "%c", DATA_END);
-    fflush (stdout);
-}
-/*--------------------------------------------------------------------------*/
-void C2F(texmacsin)(char buffer[], int *buf_size, int *len_line, int *eof, long int dummy1)
-{
-#define STDIN_ID 5
-#define TEXMACSLIB "texmacslib"
-    int nr = 0, info = 0;
-    if (first == 1)
-    {
-        if (isNamedVarExist(NULL, TEXMACSLIB) == 0)
-        {
-            if (getWarningMode())
-            {
-                fprintf(stdout, _("%s: Please install texmacs ATOMS module: atomsInstall('texmacs')\n\n"), _("Warning"));
-            }
-
-        }
-        fprintf(stdout, "%cverbatim:", DATA_BEGIN);
-    }
-    next_input ();
-
-    first = 0;
-    *eof = 0;
-
-    info = LineRead(STDIN_ID, buffer, *buf_size, len_line, &nr);
-    fprintf(stdout, "%cverbatim:", DATA_BEGIN);
-    *len_line = *len_line - 1;
-}
-/*--------------------------------------------------------------------------*/
index 7019cde..1cd6093 100644 (file)
@@ -286,8 +286,7 @@ int StartScilabEngine(ScilabEngineInfo* _pSEI)
     }
 
     //set prompt value
-    int pause = 0;
-    C2F(setprlev) (&pause);
+    setPreviousLevel(0);
 
     //load gateways
     if (LoadModules() == false)
@@ -712,7 +711,7 @@ void* scilabReadAndStore(void* param)
             int pause = ConfigVariable::getPauseLevel();
 
             //set prompt value
-            C2F(setprlev) (&pause);
+           setPreviousLevel(pause);
 
             if (scilabRead() == 0)
             {
index 213afcb..6a3bdb7 100644 (file)
@@ -100,12 +100,8 @@ types::Function::ReturnValue sci_mscanf(types::typed_list &in, int _iRetCount, t
         while (pcConsoleReadStr == NULL)
         {
             pcConsoleReadStr = ConfigVariable::getConsoleReadStr();
-            ThreadManagement::SendConsoleExecDoneSignal();
         }
 
-        // reset flag to default value
-        ConfigVariable::setScilabCommand(1);
-
         wcsRead = to_wide_string(pcConsoleReadStr);
         FREE(pcConsoleReadStr);
         int err = do_xxscanf(L"sscanf", (FILE *)0, wcsFormat, &args, wcsRead, &retval, buf, type);
index da5c492..832bb22 100644 (file)
@@ -33,8 +33,6 @@ function [x] = input(msg, flag)
     // a tricky way to get all ascii codes  sequences
     fmt = "%[" + ascii(32) + "-" + ascii(254) + "]";
 
-    currentprompt = prompt();
-
     if argn(2) == 2 then
         if type(flag) <> 10 then
             msg = _("%s: Wrong type for input argument #%d: String expected.\n")
@@ -51,43 +49,26 @@ function [x] = input(msg, flag)
             error(msprintf(msg, "input", 2, "string"));
         end
 
-        prompt("");
-        mprintf(msg);
+        prompt(msg);
         x = mscanf(fmt);
-
-        currentpromptAfter = prompt();
-        // bug 5513
-        // we had change prompt during exec of input
-        // we recall input
-        if (currentpromptAfter <> currentprompt) then
-            x = input(msg, flag);
-        end
-
     else
         while %t
-            prompt("");
-            mprintf(msg);
+            prompt(msg);
             __#x#__ = mscanf(fmt);
 
-            currentpromptAfter = prompt();
-            // bug 5513
-            // we had change prompt during exec of input
-            // we recall input
-            if (currentpromptAfter <> currentprompt) then
-                __#x#__ = string(input(msg));
-            end
-
             if (length(__#x#__) == 0) | (__#x#__ == " ") then
                 __#x#__ = "[]";
             end
+
             ierr = execstr("x=" + __#x#__,"errcatch");
+
             if ierr == 0 then
                 break;
             end
-            mprintf(strcat(lasterror(),"\n"));
+            mprintf(lasterror());
+            mprintf("\n");
         end
-
     end
-    prompt(currentprompt);
-    mprintf("\n")
+
+    mprintf("\n");
 endfunction