File: head_comments.sci

package info (click to toggle)
scilab 4.0-12
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 100,640 kB
  • ctags: 57,333
  • sloc: ansic: 377,889; fortran: 242,862; xml: 179,819; tcl: 42,062; sh: 10,593; ml: 9,441; makefile: 4,377; cpp: 1,354; java: 621; csh: 260; yacc: 247; perl: 130; lex: 126; asm: 72; lisp: 30
file content (49 lines) | stat: -rw-r--r-- 1,282 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function head_comments(name,%paths)
//displays the first comments of a function
  if exists('%paths')==0 then %paths='./',end
  name=stripblanks(name)
  if exists(name)==0 then error('undefined function'),end
  execstr('t=type('+name+')')
  if t<>11&t<>13 then
    error('argument is not the name of a Scilab function')
  end
  l=whereis(name)
  if l<>[] then
    execstr('path=string('+l+');path=path(1)')
    path=path+name+'.sci'
  else
    files= listfiles(%paths+'*.sci')
    if files==[] then
      error(name+'.sci file cannot be found with the given paths')
    end
    k=grep(files,name+'.sci')
    if k<>[] then
      path=files(k(1))
    else
      path=[]
    end
  end
  if path==[] then
    error(name+'.sci file cannot be found with the given paths')
  end
  txt=mgetl(path);
  k=grep(txt,'function');
  if k==[] then
    error('argument is not the name of a Scilab function')
  end
  head=txt(k(1))
  txt=txt(k(1)+1:$)
  K=grep(part(txt,1:2),'//')
  if K(1)<>1 then 
     write(%io(2),'No comment available','(a)')
     return
  end
  k2=find(K(2:$)-K(1:$-1)<>1,1)
  if k2==[] then k2=size(K,'*'),end
  sel=k(1):k2(1)
  if sel<>[] then
    write(%io(2),[head;strsubst(txt(sel),'//','')],'(a)')
  else
    write(%io(2),'No comment available','(a)')
  end
endfunction