Annotation of freem_fileman/USER/DIR3.m, revision 1.1

1.1     ! snw         1: DIR3   ;SFISC/DCM,RDS-READER-MAID (PROCESS RANGE/LIST);12/6/94  10:54
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        ;
        !             5: L      ; LIST OR RANGE
        !             6:        N %I,%I1,%I2,%BA,%X,%C,%1,%2,%3,%4,%
        !             7:        K ^TMP($J,"DIR")
        !             8:        S Y(0)="",%C=0,%I1=1,%I2=2,%BA=$S($D(DIR("S")):DIR("S"),1:"I 1")
        !             9:        F %I=1:1 S %X=$P(X,",",%I) Q:%E!'$L($P(X,",",%I,999))  D
        !            10:        .I %X'?.".".N.".".N."-".N.".".N S %E=4 Q
        !            11:        .I $E(%X)="-" S %E=3 Q
        !            12:        .I $L($P(%X,"."))>24 S %E=1 Q
        !            13:        .I '%B3,$L($P(+%X,".",2)) S %E=2
        !            14:        I '%E D @$S(%A["C"&'$D(DIR("S")):"LC",%A["C"&$D(DIR("S")):"LL",1:"LL")
        !            15:        I '%E,Y(%C)="" S %E=4
        !            16:        I $G(%E),'%N D
        !            17:        .S %W=$P($T(@(%E)),";;",2)
        !            18:        .I %W[";",%E=1 S %W=$P(%W,";")_+%B1_$P(%W,";",2)_" "_%B2
        !            19:        .I %W[";",%E=2 S %W=$P(%W,";")_+%B3_$P(%W,";",2)_$S(%B3>1:"s",1:"")
        !            20:        S Y=Y(0)
        !            21:        Q
        !            22:        ;
        !            23: LL     I %B3 D LCD
        !            24:        F %I=1:1 S %X=$P(X,",",%I) Q:%E!'$L($P(X,",",%I,999))  D L0
        !            25:        Q:%E
        !            26:        I %A["C" D LIST
        !            27:        Q
        !            28: L0     N %J
        !            29:        D LCK
        !            30:        Q:%E  I %X?.N!(%X?1N.".".N) S %J=+%X G L1
        !            31:        I %B3 D  Q
        !            32:        .S %J=+%X D L1 S $P(%X,"-")=%X+%I1
        !            33:        .F %J=+%X:%I1:$P(%X,"-",2) D L1
        !            34:        F %J=$P(%X,"-"):1:$P(%X,"-",2) D L1
        !            35:        Q
        !            36: L1     I %A["C" D  Q
        !            37:        .S Y=%J X %BA Q:'$T
        !            38:        .S (%1,%2)=%J
        !            39:        .D LC1
        !            40:        I $L(Y(%C)_%J)>220 S %C=%C+1,Y(%C)=""
        !            41:        F %=0:1:%C I ","_Y(%)_","[(","_%J_",") S %=-1 Q
        !            42:        I %'<0 S Y=%J X %BA S:$T Y(%C)=Y(%C)_%J_","
        !            43:        Q
        !            44:        ;
        !            45: LCK    N %
        !            46:        I %X["-",'%B3 D
        !            47:        .I +%X<%B1 S $P(%X,"-")=%B1
        !            48:        .I +%X>%B2 S $P(%X,"-")=%B2
        !            49:        I +%X<%B1!(+%X>%B2) S %E=1 Q
        !            50:        I %B3,$L($P(+%X,".",2))>%B3 S %E=2 Q
        !            51:        I %X["-" S %=$P(%X,"-",2) D
        !            52:        .I '% S %E=4 Q
        !            53:        .I +%>%B2 S $P(%X,"-",2)=%B2
        !            54:        .I +%<%X S %E=4 Q
        !            55:        .I $L($P(+%,".",2))>%B3 S %E=2 Q
        !            56:        Q
        !            57:        ;
        !            58: LCD    ;
        !            59:        S %1="." I %B3>1 F %=1:1:%B3-1 S %1=%1_"0"
        !            60:        S %I2=%1_2,%I1=%1_1
        !            61:        Q
        !            62:        ;
        !            63: LC     I %B3 D LCD
        !            64:        F %=1:1:$L(X,",") S %1=$P(X,",",%) D LC0 Q:%E
        !            65:        Q:%E
        !            66: LIST   S %1="",Y(%C)="" D 
        !            67:        .F  S %1=$O(^TMP($J,"DIR",%1)),%2="" Q:%1=""  D
        !            68:        ..S:$D(^(%1))=1 Y(%C)=Y(%C)_%1_","
        !            69:        ..S:$L(Y(%C))>220 %C=%C+1,Y(%C)=""
        !            70:        ..I $D(^(%1))=10 F  S %2=$O(^TMP($J,"DIR",%1,%2)) Q:%2=""  S Y(%C)=Y(%C)_%2_"-"_%1_","
        !            71:        I Y(%C)="" S %E=4 Q
        !            72:        K ^TMP($J,"DIR")
        !            73:        Q
        !            74: LC0    S (%2,%X)=%1 D LCK Q:%E
        !            75:        I %1["-" S %1=+%1,%2=+$P(%2,"-",2)
        !            76:        I %1>%2 S %3=%1,%1=%2,%2=%3
        !            77:        S %1=+%1,%2=+%2
        !            78:        D LC1
        !            79:        Q
        !            80: LC1    S %3=$O(^TMP($J,"DIR",%1-%I2)) I %3]"",%3<%2 S:$D(^(%3))=1&(%1-%I1=%3) %1=%3 I $D(^(%3))>9 S %4=$O(^(%3,"")) I %4<%1 S %1=%4
        !            81:        S %3=$O(^TMP($J,"DIR",%2-$S(%B3:%I1,1:1))) I %3]"" S:$D(^(%3))=1&(%2+%I1=%3) %2=%3 I $D(^(%3))>9 S %4=$O(^(%3,"")) I %4'>(%2+%I1) S %2=%3
        !            82:        S %3=%1-%I1 F  S %3=$O(^TMP($J,"DIR",%3)) Q:%3=""!(%3>%2)  D:%3=%2  Q:%3=%2  K ^TMP($J,"DIR",%3)
        !            83:        .Q:$D(^TMP($J,"DIR",%3))=1  S %4=$O(^(%3,""))
        !            84:        .I %4>%1 K ^TMP($J,"DIR",%3)
        !            85:        .I %4<%1 S %1=%4
        !            86:        S:%1'=%2 ^TMP($J,"DIR",%2,%1)="" S:%1=%2 ^TMP($J,"DIR",%1)="" Q
        !            87:        ;
        !            88: 1      ;;Response should be no less than ; and no greater than
        !            89: 2      ;;Response must be no more than ; decimal digit
        !            90: 3      ;;Response must be a positive number
        !            91: 4      ;;Invalid number or range

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