Annotation of freem/contrib/%RD.m, revision 1.1

1.1     ! snw         1: %RD    ; A.Trocha; Routine Directory 01/29/1999 01:30/GMT+1
        !             2:        ; $Source: /cvsroot-fuse/gump/FreeM/mlib/%RD.m,v $
        !             3:        ; $Revision: 1.3 $ $Date: 2000/02/18 15:13:41 $
        !             4:        ; this version is very, very beta
        !             5:        ; todo: LOCKING!!
        !             6:        ;
        !             7:        N rnorm,rsys,xdir,anz,ext
        !             8:        ;
        !             9:        ;--- path to non-% routines
        !            10:        S rnorm=$V(4)
        !            11:        ;
        !            12:        ;--- path to %-routines
        !            13:        S rsys=$V(8)
        !            14:        ;
        !            15:        ;--- get routine extention
        !            16:        S ext=$V(98)
        !            17:        ;
        !            18:        W !,?20,"ROUTINE DIRECTORY  "_$ZD
        !            19:        W !,?23," OF FreeM      "_$ZT
        !            20:        W !!
        !            21:        ;
        !            22:        S anz=0
        !            23:        ;
        !            24:        ;--- get and output %-routines
        !            25:        K %
        !            26:        S xdir="!<"_$$dircmd()_" "_$$convpath(rsys)_"*"_ext_" 2>/dev/null"
        !            27:        S $ZT="error^"_$ZN
        !            28:        X xdir D show($$convpath(rsys),0)
        !            29:        ;
        !            30:        ;--- get and output non-% routines
        !            31:        K %
        !            32:        S xdir="!<"_$$dircmd()_" "_$$convpath(rnorm)_"*"_ext_" 2>/dev/null"
        !            33:        X xdir D show($$convpath(rnorm),1)
        !            34:        ;
        !            35: end    W !,$J(anz,8)," - Routines",!!
        !            36:        K %
        !            37:        Q
        !            38:        ;
        !            39: show(path,m) ;--- show routines
        !            40:        ;    m=0 show %routines  ;   m=1 show non% routines
        !            41:        N i,out
        !            42:        F i=1:1:% D
        !            43:        . I $G(m)=0&('$F($G(%(i)),"%")) Q
        !            44:        . I $G(m)=1&($F($G(%(i)),"%")) Q
        !            45:        . S out=$G(%(i))
        !            46:        . I path'="" S out=$E(out,$L(path)+1,$L(out))
        !            47:        . S out=$E(out,1,$L(out)-$L(ext))
        !            48:        . W $$lb("^"_out) S anz=anz+1
        !            49:        Q
        !            50:        ;
        !            51: convpath(dir)
        !            52:        ;--- convert path
        !            53:        N sl
        !            54:        S sl=$$slash()
        !            55:        I dir="" Q ""
        !            56:        I dir="."_sl Q ""
        !            57:        I $E(dir,$L(dir))'=sl Q dir_sl
        !            58:        Q dir
        !            59:        ;
        !            60: lb(str)        ;---
        !            61:        Q $E(str,1,9)_$J("",10-$L(str))
        !            62:        ;
        !            63: slash() ;--- get the OS specific directory delimiter (slash)
        !            64:        Q "/"
        !            65:        ;
        !            66: dircmd() ;
        !            67:        ;--- get the OS specific directory command
        !            68:        ;--- hmm!? how do I know which OS?
        !            69:        Q "ls"
        !            70:        ;
        !            71: error  ;--- error - trap
        !            72:        W !,$ZE,!!
        !            73:        K % Q

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>