Annotation of freem/contrib/%urdir.m, revision 1.1.1.1
1.1 snw 1: %urdir ; FreeM Routine Directory - version 0.5.0.1
2: ; A.Trocha ; 01/29/1999 01:30/GMT+1
3: ; $Source: /cvsroot-fuse/gump/FreeM/mlib/%urdir.m,v $
4: ; $Revision: 1.1 $ $Date: 2000/02/18 15:13:42 $
5: ; this version is very, very beta
6: ; todo: LOCKING!!
7: ;
8: N no,error
9: ;
10: ;
11: ;--- get routine extention
12: ; S ext=$V(98)
13: ;
14: s error=$$init^%uxxxx
15: s error=$$writen^%uxxxx($t(+1)_" "_$$^%uxdat)
16: s error=$$writen^%uxxxx("")
17: ;
18: ;--- get and output %-routines
19: S $ZT="%error^%urdir"
20: s no=$$list(0)+$$list(1)
21: ;
22: s error=$$writep^%uxxxx("Number of routines - "_$J(no,8))
23: Q
24: ;
25: ;--- get and output non-% routines
26: list(m) ;
27: n rnorm,%
28: ;--- path to non-% routines
29: S rnorm=$V($s(m=1:4,1:8))
30: x "!<"_$$dircmd()_" "_$$convpath(rnorm)_"*"_$V(98)_" 2>/dev/null"
31: q $$show($$convpath(rnorm),m)_",list^%ugdir"
32: ;
33: show(path,m) ;--- show routines
34: ; m=0 show %routines ; m=1 show non% routines
35: N i,out,no
36: s no=0
37: F i=1:1:% D
38: . I $G(m)=0&('$F($G(%(i)),"%")) Q
39: . I $G(m)=1&($F($G(%(i)),"%")) Q
40: . S out=$G(%(i))
41: . I path'="" S out=$E(out,$L(path)+1,$L(out))
42: . S out=$E(out,1,$L(out)-$L($V(98)))
43: . W $$lb("^"_out) S no=no+1
44: Q no
45: ;
46: convpath(dir)
47: ;--- convert path
48: N sl
49: S sl=$$slash()
50: I dir="" Q ""
51: I dir="."_sl Q ""
52: I $E(dir,$L(dir))'=sl Q dir_sl
53: Q dir
54: ;
55: lb(str) ;---
56: Q $E(str,1,9)_$J("",10-$L(str))
57: ;
58: slash() ;--- get the OS specific directory delimiter (slash)
59: Q "/"
60: ;
61: dircmd() ;
62: ;--- get the OS specific directory command
63: ;--- hmm!? how do I know which OS?
64: Q "ls"
65: ;
66: %error ;--- error - trap
67: W !,$ZE,!!
68: K % Q
69:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>