Bug 11969 fixed: Only the first line was executed when the code was piped under Linux. 94/9394/7
Calixte DENIZET [Tue, 9 Oct 2012 12:44:14 +0000 (14:44 +0200)]
Change-Id: Ibab822ad0aecf4b1bb7f65a5cf4104540c555ce2

scilab/CHANGES_5.4.X
scilab/modules/console/src/c/GetCommandLine.c

index d5c60a1..5640e27 100644 (file)
@@ -290,6 +290,9 @@ Bug fixes
 
 * Bug #11965 fixed - Export to SVG converted texts in shapes.
 
+* Bug #11969 fixed - Only the first line was executed when code was piped under
+                     Linux.
+
 * Bug #11971 fixed - Canceling "Open File" action launched from icon in the
                     toolbar opened SciNotes anyway.
 
@@ -298,6 +301,9 @@ Bug fixes
 * Bug #11980 fixed - csim returned an error message in some cases: "Submatrix
                      incorrectly defined".
 
+* Bug #11971 fixed - Canceling "Open File" action launched from icon in the
+                    toolbar opened SciNotes anyway.
+
 * Bug #11981 fixed - Smooth french help page had a wrong declaration
                      (colonnes => lignes).
 
index 8e45eb3..4732476 100644 (file)
@@ -121,9 +121,17 @@ static void getCommandLine(void)
     }
     else
     {
-        /* Call Term Management for NW and NWNI to get a string */
-        __CommandLine = getCmdLine();
-
+#ifndef _MSC_VER
+        if (!isatty(fileno(stdin)))
+        {
+            __CommandLine = strdup("");
+        }
+        else
+#endif
+        {
+            /* Call Term Management for NW and NWNI to get a string */
+            __CommandLine = getCmdLine();
+        }
     }
 }
 
@@ -231,10 +239,10 @@ void C2F(eventloopprompt) (char *buffer, int *buf_size, int *len_line, int *eof)
         {
             /* read a line into the buffer, but not too
              * big */
-            *eof = (fgets(__CommandLine, *buf_size, stdin) == NULL);
-            *len_line = (int)strlen(__CommandLine);
+            *eof = (fgets(buffer, *buf_size, stdin) == NULL);
+            *len_line = (int)strlen(buffer);
             /* remove newline character if there */
-            if (__CommandLine[*len_line - 1] == '\n')
+            if (buffer[*len_line - 1] == '\n')
             {
                 (*len_line)--;
             }