Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: AURSRCH4

AURSRCH4.m

Go to the documentation of this file.
AURSRCH4 ; SEARCH XREFS FOR ROUTINES [ 04/06/88  8:39 AM ]
 ; PREVIOUSLY NAMED AUSXREF
 ;
 W !!,"This routine searches a file for XREFS that call routines.",!
 S U="^"
 S DIC="^DIC(",DIC(0)="AEMQ" D ^DIC
 I Y<0 D EOJ Q
 S AUSXREF("FILE")=+Y
 K ^UTILITY("AURSRCH",$J)
 S AUSXREF("MASTER")=""
EN ; ENTRY POINT FOR CALLING ROUTINES
 S AUSXREF("LAST FILE")=""
 D SBTRACE
 D:$D(AUSXREF("MASTER")) LIST
 D EOJ
 Q
SBTRACE ; CHECK ALL SUB-FILES
 K AUSXREFF S AUSXREF("CNT")=1,AUSXREFF(AUSXREF("CNT"))=AUSXREF("FILE")
 F AUSXREF("L")=0:0 S AUSXREF("LCTL")=$O(AUSXREFF("")) Q:AUSXREF("LCTL")=""  S AUSXREF("FILE")=AUSXREFF(AUSXREF("LCTL")) D SBTRACE2 S AUSXREF("LCTL")=$O(AUSXREFF("")) D FILE K AUSXREFF(AUSXREF("LCTL"))
 Q
SBTRACE2 ;
 S AUSXREF("LCTL")=0 F AUSXREF("L")=0:0 S AUSXREF("LCTL")=$O(^DD(AUSXREF("FILE"),"SB",AUSXREF("LCTL"))) Q:AUSXREF("LCTL")=""  S AUSXREF("CNT")=AUSXREF("CNT")+1,AUSXREFF(AUSXREF("CNT"))=AUSXREF("LCTL")
 Q
 ;
FILE ; CHECK ONE FILE OR SUB-FILE
 S AUSXREF("FIELD")=0
 F AUSXREF("L")=0:0 S AUSXREF("FIELD")=$O(^DD(AUSXREF("FILE"),AUSXREF("FIELD"))) Q:AUSXREF("FIELD")'=+AUSXREF("FIELD")  D FIELD
 Q
 ;
FIELD ; CHECK FIELD'S XREFS
 Q:'$D(^DD(AUSXREF("FILE"),AUSXREF("FIELD"),1))
 S AUSXREF("XREF")=0 F AUSXREF("L")=0:0 S AUSXREF("XREF")=$O(^DD(AUSXREF("FILE"),AUSXREF("FIELD"),1,AUSXREF("XREF"))) Q:AUSXREF("XREF")'=+AUSXREF("XREF")  D CHKXREF
 Q
 ;
CHKXREF ; CHECK ONE XREF
 S X=^DD(AUSXREF("FILE"),AUSXREF("FIELD"),1,AUSXREF("XREF"),1)
 D CHKSK
 S X=^DD(AUSXREF("FILE"),AUSXREF("FIELD"),1,AUSXREF("XREF"),2)
 D CHKSK
 Q
 ;
CHKSK ; CHECK XREF SET/KILL
 Q:X'[U
 S AURSRCH("FOUND")=0,AUSXREF("COUNT")=$L(X,U)
 F AUSXREF("I")=AUSXREF("COUNT"):-1:2 S Y=$P(X,U,AUSXREF("I")) D ^AURSRCH1
 D:AURSRCH("FOUND") WRITE
 Q
 ;
WRITE ;
 I $D(AURSRCH("NO DETAIL")) W "." Q
 I AUSXREF("FILE")'=AUSXREF("LAST FILE") S AUSXREF("LAST FILE")=AUSXREF("FILE") W !
 W !,AUSXREF("FILE"),",",AUSXREF("FIELD"),?20,$E(X,1,59)
 F AUSXREF("L")=0:0 S X=$E(X,60,999) Q:X=""  W !,?20,$E(X,1,59)
 Q
 ;
LIST ; LIST ROUTINE NAMES
 Q:'$D(^UTILITY("AURSRCH",$J))
 W !!,"Sorted list of routines found:",!
 S X="" F AUSXREF("L")=0:0 S X=$O(^UTILITY("AURSRCH",$J,X)) Q:X=""  W !,"^",X
 K ^UTILITY("AURSRCH",$J)
 W !
 Q
 ;
EOJ ;
 K DIC
 K X,X0,X1,X2,Y,YY
 K:$D(AUSXREF("MASTER")) AURSRCH
 K AUSXREF,AUSXREFF
 Q