- RGUTOS ;CAIRO/DKM - Platform-dependent operations;04-Sep-1998 11:26;DKM
- ;;2.1;RUN TIME LIBRARY;;Mar 22, 1999
- ;=================================================================
- VER() Q $P($T(+2),";",3)
- CVTFN(RGFIL,RGROOT) ;
- N RGZ,RGZ1,RGD
- S RGD=$$DIRDLM,RGROOT=$G(RGROOT)
- S:$E(RGROOT,$L(RGROOT))=$E(RGD,3) RGROOT=$E(RGROOT,1,$L(RGROOT)-1)
- S RGZ=$L(RGFIL,"/"),RGZ1=$P(RGFIL,"/",1,RGZ-1),RGFIL=$P(RGFIL,"/",RGZ)
- S:$L(RGZ1) RGROOT=RGROOT_$E(RGD,$S($L(RGROOT):2,1:1))_$TR(RGZ1,"/.-",$E(RGD,2))
- Q RGROOT_$S($L(RGROOT):$E(RGD,3),1:"")_RGFIL
- RM(X) X ^%ZOSF("RM")
- Q
- TEST(X) N Z
- S:X[U Z=$P(X,U),X=$P(X,U,2)
- X ^%ZOSF("TEST")
- Q $S('$T:0,$G(Z)="":1,Z'?.1"%"1.AN:0,1:$T(@Z^@X)'="")
- ETRAP() Q $$NEWERR^%ZTER
- OPENX(X1,X2) ;
- D OPEN(.X1,.X2)
- Q X1
- OPEN(X1,X2) ;
- O X1:$S("Rr"[$G(X2):"RS","Ww"[X2:"WNS","Bb"[X2:"RF",1:""):0
- E ZT "NOPEN"
- U X1
- S ^TMP("HFS",$J,X1)=""
- Q
- CLOSE(X) C X
- K ^TMP("HFS",$J,X)
- Q
- CLOSEALL N Z
- S Z=""
- F S Z=$O(^TMP("HFS",$J,Z)) Q:Z="" C Z
- K ^TMP("HFS",$J)
- Q
- EOF ZT:$ZA=-1 "ENDOFFILE"
- Q
- EOFERR() Q:$ZE["ENDOFFILE"
- READ(X,Y) ;
- S $ZT="READX"
- U $G(Y,$I)
- R X
- Q 0
- READX Q 1
- DELETE(X) ;
- S X=$ZF(-1,"del """_X_"""")
- Q
- RENAME(X1,X2) ;
- S X1=$ZF(-1,"ren """_X1_""" """_X2_"""")
- Q
- DIR(X1,X2,X3) ;
- N Z,Z1
- S X3=$G(X3,$NA(^UTILITY("DIR",$J)))
- K @X3
- S:'$G(X2) X2=9999999999
- F Z=1:1:X2 S Z1=$ZSEARCH(X1),X1="" Q:Z1="" D
- .S Z1=$P(Z1,"\",$L(Z1,"\"))
- .S:$TR(Z1,".")'="" @X3@(Z1)=""
- Q
- DIRDLM() Q "\\\"
- DEFDIR(X) ;
- S X=$G(X,$P($G(^XTV(8989.3,1,"DEV")),U))
- S:$E(X,$L(X))'="\" X=X_"\"
- Q X
- ERR(X1,X2,X3) ;
- S X1=$E($P($ZE,">"),2,99),X2=$P($P($ZE,">",2),":"),X3=X1
- S:X2["*" X2=""
- S:$E(X1)="Z" X3=$E(X1,2,99),X1="ZTRAP"
- Q
- FTP(X1,X2,X3,X4,X5,X6,X7) ;
- Q
- RAISE(X) ZT $G(X)
- TRAP(X) Q $S($D(X):"$ZT="""_X_"""",1:"$ZT")
- SIZE(X) Q 0
- FREE(X) Q 0
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRGUTOS 1838 printed Feb 19, 2025@00:03:54 Page 2
- RGUTOS ;CAIRO/DKM - Platform-dependent operations;04-Sep-1998 11:26;DKM
- +1 ;;2.1;RUN TIME LIBRARY;;Mar 22, 1999
- +2 ;=================================================================
- VER() QUIT $PIECE($TEXT(+2),";",3)
- CVTFN(RGFIL,RGROOT) ;
- +1 NEW RGZ,RGZ1,RGD
- +2 SET RGD=$$DIRDLM
- SET RGROOT=$GET(RGROOT)
- +3 if $EXTRACT(RGROOT,$LENGTH(RGROOT))=$EXTRACT(RGD,3)
- SET RGROOT=$EXTRACT(RGROOT,1,$LENGTH(RGROOT)-1)
- +4 SET RGZ=$LENGTH(RGFIL,"/")
- SET RGZ1=$PIECE(RGFIL,"/",1,RGZ-1)
- SET RGFIL=$PIECE(RGFIL,"/",RGZ)
- +5 if $LENGTH(RGZ1)
- SET RGROOT=RGROOT_$EXTRACT(RGD,$SELECT($LENGTH(RGROOT):2,1:1))_$TRANSLATE(RGZ1,"/.-",$EXTRACT(RGD,2))
- +6 QUIT RGROOT_$SELECT($LENGTH(RGROOT):$EXTRACT(RGD,3),1:"")_RGFIL
- RM(X) XECUTE ^%ZOSF("RM")
- +1 QUIT
- TEST(X) NEW Z
- +1 if X[U
- SET Z=$PIECE(X,U)
- SET X=$PIECE(X,U,2)
- +2 XECUTE ^%ZOSF("TEST")
- +3 QUIT $SELECT('$TEST:0,$GET(Z)="":1,Z'?.1"%"1.AN:0,1:$TEXT(@Z^@X)'="")
- ETRAP() QUIT $$NEWERR^%ZTER
- OPENX(X1,X2) ;
- +1 DO OPEN(.X1,.X2)
- +2 QUIT X1
- OPEN(X1,X2) ;
- +1 OPEN X1:$SELECT("Rr"[$GET(X2):"RS","Ww"[X2:"WNS","Bb"[X2:"RF",1:""):0
- +2 IF '$TEST