mfprintf: implicit loop over column vectors now prints a new line after each iteratio... 70/17070/3
John GLIKSBERG [Wed, 19 Aug 2015 09:36:21 +0000 (11:36 +0200)]
Change-Id: I49b341884350e211fc55533c7107dd7f23fd8cc8

scilab/modules/fileio/sci_gateway/cpp/sci_mfprintf.cpp
scilab/modules/fileio/tests/unit_tests/mfprintf.dia.ref
scilab/modules/fileio/tests/unit_tests/mfprintf.tst

index 33f417f..242faeb 100644 (file)
@@ -160,8 +160,8 @@ Function::ReturnValue sci_mfprintf(types::typed_list &in, int _iRetCount, types:
             {
                 scilabForcedWriteW(wcsStringToWrite[i]);
             }
+            scilabForcedWriteW(L"\n");
         }
-        scilabForcedWriteW(L"\n");
     }
     else
     {
index e2dad0b..03402eb 100644 (file)
@@ -1,5 +1,6 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - John GLIKSBERG
 // Copyright (C) ????-2008 - INRIA
 // Copyright (C) ????-2008 - ENPC
 //
@@ -7,22 +8,22 @@
 // =============================================================================
 // <-- CLI SHELL MODE -->
 function [rep]=Fprintf(varargin)
-       fd = mopen(TMPDIR+"/fprintf.rep","w");
-       varargin(0)=fd;
-       mfprintf(varargin(:));
-       mclose(fd);
-       fd  = mopen(TMPDIR+"/fprintf.rep","r");
-       str = mgetstr(100,fd);
-       mclose(fd);
-       rep = str;
+    fd = mopen(TMPDIR+"/fprintf.rep","w");
+    varargin(0)=fd;
+    mfprintf(varargin(:));
+    mclose(fd);
+    fd  = mopen(TMPDIR+"/fprintf.rep","r");
+    str = mgetl(fd);
+    mclose(fd);
+    rep = str;
 endfunction
 function [y]=bugnum(str1,str2,str3)
-       [lhs,rhs] = argn(0);
-       if rhs==3 then
-               y = (str1<>str2) & (str1<>str3);
-       else
-               y = str1<>str2;
-       end
+    [lhs,rhs] = argn(0);
+    if rhs==3 then
+        y = or(str1<>str2) & or(str1<>str3);
+    else
+        y = or(str1<>str2);
+    end
 endfunction
 // test format "%f"
 // =============================================================================
@@ -104,3 +105,5 @@ if bugnum(Fprintf("%X",-123),"FFFFFF85" ) then bugmes();quit;end
 if bugnum(Fprintf("%#.3X",12),"0X00C" ) then bugmes();quit;end
 //----------test format %o
 //if bugnum(Fprintf('%015o',-12),'000037777777764' ) then bugmes();quit;end
+//----------test column vector input
+if bugnum(Fprintf("%s\n", ["a";"b"]), ["a";"b"]) then bugmes();quit;end
index d2c85f0..6b93adc 100644 (file)
@@ -1,5 +1,6 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - John GLIKSBERG
 // Copyright (C) ????-2008 - INRIA
 // Copyright (C) ????-2008 - ENPC
 //
 // <-- CLI SHELL MODE -->
 
 function [rep]=Fprintf(varargin)
-       fd = mopen(TMPDIR+"/fprintf.rep","w");
-       varargin(0)=fd;
-       mfprintf(varargin(:));
-       mclose(fd);
-       fd  = mopen(TMPDIR+"/fprintf.rep","r");
-       str = mgetstr(100,fd);
-       mclose(fd);
-       rep = str;
+    fd = mopen(TMPDIR+"/fprintf.rep","w");
+    varargin(0)=fd;
+    mfprintf(varargin(:));
+    mclose(fd);
+    fd  = mopen(TMPDIR+"/fprintf.rep","r");
+    str = mgetl(fd);
+    mclose(fd);
+    rep = str;
 endfunction
 
 function [y]=bugnum(str1,str2,str3)
-       [lhs,rhs] = argn(0);
-       if rhs==3 then
-               y = (str1<>str2) & (str1<>str3);
-       else
-               y = str1<>str2;
-       end
+    [lhs,rhs] = argn(0);
+    if rhs==3 then
+        y = or(str1<>str2) & or(str1<>str3);
+    else
+        y = or(str1<>str2);
+    end
 endfunction
 
 // test format "%f"
@@ -126,4 +127,6 @@ if bugnum(Fprintf("%#.3X",12),"0X00C" ) then pause,end
 //----------test format %o
 //if bugnum(Fprintf('%015o',-12),'000037777777764' ) then pause,end
 
+//----------test column vector input
+if bugnum(Fprintf("%s\n", ["a";"b"]), ["a";"b"]) then pause,end