60 lines
2.3 KiB
Mathematica
60 lines
2.3 KiB
Mathematica
XTZRUTL ;ISCSF/RWF - Developer Routine Utilities ;7/24/97 13:47 [3/22/00 4:16pm]
|
|
;;7.3;TOOLKIT;**20,L02**;Apr 25, 1995
|
|
;
|
|
Q ;No entry from the top.
|
|
BUILD ;
|
|
K ^UTILITY($J) D HOME^%ZIS
|
|
N BLDA,DIC,IX,X
|
|
I '$D(^XPD(9.6,0)) W !,"No BUILD file to work from." Q
|
|
S Y=$$BUILD^XTRUTL1 G EXIT:Y'>0 S BLDA=+Y
|
|
CALL D RTN^XTRUTL1(BLDA)
|
|
G EXIT:$O(^UTILITY($J,""))=""
|
|
D UCI^%ZOSV S AAQUCI=$P(Y,",",1) K Y S AAQDT=$$HTE^XLFDT($H,"1M")
|
|
W !!,"Post-Install Values from Build File "_AAQUCI_" Routines "_AAQDT
|
|
W !,"NOTE: Old and New values will be the same after XTRMON has run.",!,?6,"The Old value may look incorrect if a routine is patched more",!,?6,"than once in a day. See On-Line Documentation for more info."
|
|
S RN="" U IO W !!,?19,"Checksum",!,"Routine",?16,"Old",?26,"New",?35,"2nd Line Patches"
|
|
F S RN=$O(^UTILITY($J,RN)) Q:RN="" D
|
|
. S X=RN X ^%ZOSF("TEST") E W !,RN," is not on the system." Q
|
|
. S X=RN,XCNP=0,DIF="RTN(" K RTN X ^%ZOSF("LOAD") S LC=XCNP-1
|
|
. D RSUM S Y=$O(^DIC(9.8,"B",RN,0)) Q:Y'>0
|
|
. S OLDSUM=$P($G(^DIC(9.8,Y,0)),"^",5)
|
|
. S X=RTN(2,0) W !,RN,?13,$J(OLDSUM,8),?23,$J(RSUM,8),?35,$P(X,";",5)
|
|
. Q
|
|
EXIT K %,%N,AAQDT,AAQUCI,C,DIF,LC,OLDSUM,RN,RSUM,RSUM2,RTN,XCNP,Y
|
|
D ^%ZISC
|
|
Q
|
|
RSUM N Y,Y2,%,%1,%2,%3 S (Y,Y2)=0
|
|
F %=1,3:1:LC S %1=RTN(%,0),%3=$F(%1," "),%3=$S($E(%1,%3)'=";":$L(%1),$E(%1,%3+1)=";":$L(%1),1:%3-2) F %2=1:1:%3 S Y=$A(%1,%2)*%2+Y,Y2=$A(%1,%2)*(%2+%)+Y2
|
|
S RSUM=Y,RSUM2=Y2
|
|
Q
|
|
OLDSUM(X) ;Get the OLD Checksum
|
|
N Y S Y=$O(^DIC(9.8,"B",X,0)) Q:Y'>0 ""
|
|
S X=$G(^DIC(9.8,Y,4))
|
|
Q $P(X,"^",2)
|
|
UPDATE ;Update the ROUTINE file with current checksums
|
|
K ^UTILITY($J)
|
|
N BLDA,DIC,IX,X,NOW W !!,"This will update the ROUTINE file for the routines from a BUILD file."
|
|
I '$D(^XPD(9.6,0)) W !,"No BUILD file to work from." Q
|
|
S Y=$$BUILD^XTRUTL1 G EXIT:Y'>0 S BLDA=+Y
|
|
D RTN^XTRUTL1(BLDA)
|
|
S NOW=$$NOW^XLFDT()
|
|
G EXIT:$O(^UTILITY($J,""))=""
|
|
S RN=""
|
|
F S RN=$O(^UTILITY($J,RN)) Q:RN="" D UD1(RN)
|
|
W !,"Done"
|
|
Q
|
|
UD1(RN) ;
|
|
N X,XCNP,DIF,LC,RSUM,RSUM2,Y S:'$D(NOW) NOW=$$NOW^XLFDT
|
|
S X=RN,XCNP=0,DIF="RTN(" K RTN X ^%ZOSF("LOAD") S LC=XCNP-1
|
|
D RSUM
|
|
S X=RTN(2,0)
|
|
S Y=$$GETDA(RN) Q:Y'>0
|
|
S ^DIC(9.8,+Y,4)=NOW_U_RSUM_"/"_RSUM2_U_$P(X,";",5)
|
|
Q
|
|
SHOW(RN) ;Show current data
|
|
N Y,%0,%4 S Y=$$GETDA(RN) Q:Y'>0 S %0=^DIC(9.8,Y,0),%4=$G(^(4))
|
|
W !,$P(%0,U),?10,$P(%4,U),?28,$P(%4,U,2)
|
|
Q
|
|
GETDA(X) ;Find a DA in file
|
|
Q $O(^DIC(9.8,"B",X,0))
|