Messages standardization
[scilab.git] / scilab / modules / compatibility_functions / macros / mtlb_is.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) ???? - INRIA - Scilab 
3 // 
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at    
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9
10 function str=mtlb_is(sto,sfrom,i,j)
11 //emulate the matlab syntax sto(i [,j])=sfrom for strings
12 [lhs,rhs]=argn()
13
14 [mto,nto]=size(sto)
15 // convert sto to a regular matrix
16 if type(sto)==10 then
17   if nto<>1 then error(msprintf(gettext("%s: Wrong size for input argument #%d: Matlab vector of strings expected.\n"),"mtlb_is",1)),end
18   if mto==1 then
19     lnto=length(sto)
20     sto=ascii(sto)
21   else
22     lnto=max(length(sto))
23     sto=matrix(ascii(part(sto,1:lnto)),lnto,mto)'
24   end
25   typeout=10
26 else
27   typeout=1
28 end
29
30 [mfrom,nfrom]=size(sfrom)
31 // convert sfrom to a regular matrix
32 if type(sfrom)==10 then
33   if nfrom<>1 then error(msprintf(gettext("%s: Wrong size for input argument #%d: Matlab vector of strings expected.\n"),"mtlb_is",2)),end
34   if mfrom==1 then
35     lnfrom=length(sfrom)
36     sfrom=ascii(sfrom)
37   else
38     lnfrom=max(length(sfrom))
39     sfrom=matrix(ascii(part(sfrom,1:lnfrom)),lnfrom,mfrom)'
40   end
41 end
42 //insert
43 if rhs==4 then
44   sto(i,j)=sfrom
45 else
46   sto(i)=sfrom
47   if sfrom==[] then sto=sto',end
48 end
49 if typeout==10 then
50   // convert back
51   str=[]
52   for k=1:size(sto,1)
53     str=[str;ascii(sto(k,:))]
54   end
55 end
56 endfunction