emptystr with hypermatrix 34/11334/2
Cedric Delamarre [Fri, 19 Apr 2013 09:31:54 +0000 (11:31 +0200)]
Change-Id: I55a976c8277a1b48aa2b3d4eb46d30df3fffca94

scilab/modules/string/macros/emptystr.sci
scilab/modules/string/tests/nonreg_tests/bug_6666.dia.ref
scilab/modules/string/tests/nonreg_tests/bug_6666.tst

index d528cc5..1959abe 100644 (file)
@@ -13,25 +13,27 @@ function result = emptystr(varargin)
 
        if rhs == 1 then
                //emptystr(x)
-               [x,y] = size(varargin(1));
-               if x == 0 & y == 0 then
+               s = size(varargin(1));
+               p = prod(s);
+               if p == 0 then
                        //emptystr([])
-                       result = [];    
+                       result = [];
                else
-                       result(x,y) = "";
+                       result(1:p) = "";
+                       result = matrix(result, s);
                end
        elseif rhs == 2 then
                //emptystr(x,y)
                x = varargin(1);
                y = varargin(2);
-               
+
                if type(x) <> 1 then
                  error(msprintf(_("%s: Wrong type for input argument #%d: Matrix of integers expected.\n"), "emptystr", 1));
                end
                if type(y) <> 1 then
                  error(msprintf(_("%s: Wrong type for input argument #%d: Matrix of integers expected.\n"), "emptystr", 2));
                end
-               
+
                if x == 0 | y == 0 then
                        result = [];
                else
index 73638df..ff4d11f 100644 (file)
 //
 // <-- Short Description -->
 // emptystr() gave a wrong result instead of complaining about hypermatrix.
-//======================================================================================== 
+//========================================================================================
 M = rand(7, 3);
 T = emptystr(M);
 if or(size(T) <> [ 7 3 ]) then bugmes();quit;end
 M = rand(2, 2, 2);
 ierr = execstr("T = emptystr(M);","errcatch");
-if ierr == 0 then bugmes();quit;end
-//======================================================================================== 
+if ierr <> 0 then bugmes();quit;end
+//========================================================================================
index cdba4e5..c403fac 100644 (file)
 //
 // <-- Short Description -->
 // emptystr() gave a wrong result instead of complaining about hypermatrix.
-//======================================================================================== 
+//========================================================================================
 M = rand(7, 3);
 T = emptystr(M);
 if or(size(T) <> [ 7 3 ]) then pause, end
 
 M = rand(2, 2, 2);
 ierr = execstr("T = emptystr(M);","errcatch");
-if ierr == 0 then pause, end
-//======================================================================================== 
+if ierr <> 0 then pause, end
+//========================================================================================