XBFORM1 ; IHS/ADC/GTH - sub x in output transforms [ 02/07/97 3:02 PM ] ;;4.0;XB;;Jul 20, 2009;Build 2 ; ;XBV1=NEW CODE,XBLINX=original out transform Q ; SUB(XBV1,XBLINX) ;EP extrensic to return new output transform D EN^XBNEW("XSUB^XBFORM1","XBV1;XBLINX") Q XBLINX ; XSUB ;EP - do it NEW XB,XBT D SCAN I 'XBMK Q S XBLIN=XBLINX D BLDLIN1 S XBLINX=XBLIN1 Q ; ;----------------- SUB ROUTINES --------------- ; SCAN ;EP - scan for X S XBVX="X" S XBP=" #&'()*+,'-/<=>@\_?;:[]!""",XBS=XBP S XBL=$L(XBVX) F XBI=1:1 S XB(XBI)=$F(XBLINX,XBVX,$G(XB(XBI-1))+1)-XBL Q:XB(XBI)'>0 D .S XB(XBI,"M")=0,XB(XBI,0)=XB(XBI) .I XBP[$E(XBLINX,XB(XBI)-1),XBS[$E(XBLINX,XB(XBI)+XBL) S XB(XBI,"M")=1 .S XB("B",XB(XBI))=XBI,XB("E",XB(XBI)+XBL-1)=XBI .S XB(XBI,"E")=XB(XBI)+XBL-1 .Q KILL XB(XBI) CHKMK ; S XBMK="",XBJM="" F S XBJM=$O(XB(XBJM)) Q:XBJM="" I $G(XB(XBJM,"M")) S XBMK=1 Q KILL XBJM SCANE ; Q ; BLDLIN1 ; S XBLIN=XBLINX,XBV0="X" S XBLIN0=XBLIN,XBSUB=XBV0_":"_XBV1,XBLIN1="" F XBI=1:1 Q:'$D(XB(XBI)) S XBLIN1=XBLIN1_$E(XBLIN,$G(XB(XBI-1,"E"))+1,XB(XBI,0)-1)_$S(XB(XBI,"M"):XBV1,1:XBV0) S XBI=XBI-1 S XBLIN1=XBLIN1_$E(XBLIN,XB(XBI,"E")+1,999) BLDLIN1E ; Q ;