e3324918af3c451b52c69b491e3be0aca0ee94ea
[scilab.git] / scilab / modules / core / macros / who_user.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
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 who_user()
11 //get user variables
12 [nams,mem]=who('get'); //get all variables
13 p=predef(); //number of system variable
14 st=stacksize()
15 nams=nams(1:$-p+1);mem=mem(1:$-p+1);
16 //modifiable system variables
17 excluded=['demolist','%helps','%helps_modules','who_user'];
18 ke=grep(nams,excluded)
19 nams(ke)=[];mem(ke)=[];
20
21 n=size(nams,1);
22 if n==0 then return,end
23
24 //format names on n*10 characters
25 ll=length(nams)+2;m=int((ll-1)/10)+1;
26 for k=1:max(m)
27   ks=find(m==k);
28   if ks<>[] then nams(ks)=part(nams(ks),1:(k*10));end
29 end
30
31
32
33 nlc=lines(); nc=nlc(1)//window sizes
34
35 txt=[]
36 k=1
37 while k<=n
38   m=find(cumsum(length(nams(k:$)))<nc);
39   m=m($)
40   txt=[txt;strcat(nams(k:k-1+m))];
41   k=k+m;
42 end
43 txt=[gettext("User variables are:");
44     '';
45     txt;
46     '';
47     msprintf(gettext("Using %s elements out of %s"),string(sum(mem)), string(st(1)-(st(2)-sum(mem))))]
48 write(%io(2),txt,'(1x,a)')
49 endfunction