Changeset 636 for FOIAVistA/tag/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/ZISHONT.m
- Timestamp:
- Dec 4, 2009, 8:26:01 PM (14 years ago)
- Location:
- FOIAVistA/tag/r
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
FOIAVistA/tag/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/ZISHONT.m
r628 r636 1 %ZISH ;IHS /PR,SFISC/AC - Host File Control for Cache for VMS/NT/UNIX ;1/24/08 16:112 ;;8.0;KERNEL;**34,65,84,104,191,306,385 ,440**;JUL 10, 1995;Build 133 ; Per VHA Directive 2004-038, this routine should not be modified1 %ZISH ;IHS\PR,SFISC/AC - Host File Control for OpenM/Cache for NT/VMS ;12/13/2005 2 ;;8.0;KERNEL;**34,65,84,104,191,306,385**;JUL 10, 1995;Build 3 3 ; 4 4 ; **MODIFIED VERSION FOR CACHE/VMS -- 9/7/01** 5 5 ; … … 43 43 Q 0 44 44 ; 45 DEL(%ZX1,%ZX2) ;ef,SR. Del f iles, return 1 if deleted all requested.45 DEL(%ZX1,%ZX2) ;ef,SR. Del fl(s) 46 46 ;S Y=$$DEL^%ZISH("dir path",$NA(array)) 47 ; will invoke an OS command to delete file(s) 48 ; UNIX: rm -f filespec[ ...] 49 ; VMS: del filespec[,...] 50 N %ZARG,%ZXDEL,%ZOS,%ZDELIM,%ZCOMND,%ZLIST 51 S %ZARG="",%ZXDEL=1 52 S %ZX1=$$DEFDIR($G(%ZX1)) 53 S %ZOS=$$OS^%ZOSV 54 S %ZDELIM=$S(%ZOS="UNIX":" ",1:",") 55 S %ZCOMND=$S(%ZOS="UNIX":"rm -f ",1:"del ") 56 D 47 N %,%ZX,%ZXDEL,%ZISH,%ZOS 48 S %ZX1=$$DEFDIR($G(%ZX1)),%ZOS=$$OS^%ZOSV,%ZXDEL=1,%ZISH="" 49 F S %ZISH=$O(@%ZX2@(%ZISH)) Q:%ZISH="" D 57 50 . N $ETRAP,$ESTACK S $ETRAP="D DELERR^%ZISH" 58 . N %,%ZI,%ZISH,%ZX,%ZFOUND S %ZISH="" 59 . F %ZI=1:1 S %ZISH=$O(@%ZX2@(%ZISH)) Q:%ZISH="" D 60 . . N $ETRAP,$ESTACK S $ETRAP="D DELERR^%ZISH" 61 . . I %ZISH["*" S %ZXDEL=0 Q ; Wild card not allowed. 62 . . S %ZX=$S(%ZISH[%ZX1:%ZISH,1:%ZX1_%ZISH) ; prepend directory path 63 . . I %ZOS="VMS",%ZX'[";" S %ZX=%ZX_";*" 64 . . S %ZFOUND=$ZSEARCH(%ZX)]"" ; File exists 65 . . S:%ZFOUND %ZARG=$S(%ZARG="":%ZX,1:%ZARG_%ZDELIM_%ZX) ; join files 66 . . I $L(%ZARG)>2000 S %=$ZF(-1,%ZCOMND_%ZARG),%ZARG="" H 1 ; delete files at a time 67 . ; 68 . I $L(%ZARG) S %=$ZF(-1,%ZCOMND_%ZARG) ; delete remaining files 69 ; 70 I %ZXDEL S %ZXDEL='$$LIST(%ZX1,%ZX2,"%ZLIST") 51 . I %ZISH["*" S %ZXDEL=0 Q ; Wild card not allowed. 52 . S %ZX=$S(%ZISH[%ZX1:%ZISH,1:%ZX1_%ZISH) 53 . I %ZOS="VMS",%ZX'[";" S %ZX=%ZX_";*" 54 . Q:$ZSEARCH(%ZX)']"" ; File doesn't exist 55 . S %=$ZF(-1,$S(%ZOS="UNIX":"rm ",1:"del ")_%ZX) 56 . I $ZSEARCH(%ZX)]"" S %ZXDEL=0 ; Delete was not successful. 71 57 Q %ZXDEL 72 58 ; 73 59 DELERR ;Trap any $ETRAP error, unwind and return. 74 60 S $ETRAP="D UNWIND^%ZTER" 75 S %ZXDEL=0 ,%ZARG=""61 S %ZXDEL=0 76 62 D UNWIND^%ZTER 77 63 Q 78 64 ; 79 DEL1(%ZX3) ;ef,SR. Delete one file80 N %ZI1,%ZI281 D SPLIT(%ZX3,.%ZI1,.%ZI2) S %ZI2(%ZI2)=""82 Q $$DEL(%ZI1,$NA(%ZI2))83 ;84 SPLIT(%I,%O1,%O2) ;Split to path,file85 N %ZOS,%D,D S %ZOS=$$OS^%ZOSV86 I %ZOS["VMS" D Q87 . S D=$S(%I["]":"]",1:":")88 . S %O1=$P(%I,D,1)_D,%O2=$P(%I,D,2)89 . Q90 S %D=$S(%ZOS="UNIX":"/",%ZOS="NT":"\",1:""),%O1="",%O2="" Q:%D=""91 S D=$L(%I,%D),%O1=$P(%I,%D,1,D-1),%O2=$P(%I,%D,D)92 Q93 ;94 FEXIST(%PATH,%FL) ;Check if files exsist.95 ;S Y=$$DTEST("/usr/var",$NA(array))96 N %ZISH,%ZISHY97 S %ZISH=$$LIST(%PATH,%FL,"%ZISHY")98 Q %ZISH99 ;100 65 LIST(%ZX1,%ZX2,%ZX3) ;ef,SR. Create a local array holding file names 101 ;S Y=$$LIST^ %ZISH("\dir\",$NA(array),$NA(return array)) Return 1 if found anything66 ;S Y=$$LIST^ZOSHDOS("\dir\",$NA(array),$NA(return array)) Return 1 if found anything 102 67 ; 103 68 N %ZISH,%ZISHN,%ZX,%ZISHY,%ZY,%ZOS … … 110 75 . ;NT, display case, ignore for lookup 111 76 . S %ZX=%ZX1_%ZISH 112 . F %ZISHN=0:1 D Q:(%ZX="") 77 . F %ZISHN=0:1 D Q:(%ZX="") 113 78 . . S %ZX=$ZSEARCH($S(%ZISHN:"",1:%ZX)) 114 79 . . ;Q:(%ZX="")!($$UP^XLFSTR(%ZX)'[%ZISHY)!(%ZX?.E1.2".") … … 161 126 N %ZOS,P1,P2 S %ZOS=$$OS^%ZOSV,DF=$G(DF) 162 127 Q:DF="." "" ;Special way to get current dir. 163 S:DF="" DF=$G(^XTV(8989.3,1,"DEV")) ,DF=$P(DF,"^",$S($$PRI^%ZOSV<2:1,1:2))128 S:DF="" DF=$G(^XTV(8989.3,1,"DEV")) 164 129 Q:DF="" "" 165 130 ;Check syntax, VMS needs disk:[dir] or logical: … … 171 136 . S DF=P1_P2 S:DF'[":" DF=DF_":" 172 137 . Q 173 ;Check syntax, Unix needs /mnt/fl, ./fl , ~/fl $HOME/fl138 ;Check syntax, Unix needs /mnt/fl, ./fl 174 139 I %ZOS="UNIX" D 175 140 . S DF=$TR(DF,"\","/") 176 141 . S:$E(DF,$L(DF))'="/" DF=DF_"/" 177 142 . Q 178 ;Check syntax, NT needs c:\dir\ 143 ;Check syntax, NT needs c:\dir\ 179 144 I %ZOS="NT" D 180 145 . N P1,P2 … … 227 192 ; 228 193 FTG(%ZX1,%ZX2,%ZX3,%ZX4,%ZX5) ;ef,SR. Unload contents of host file into global 229 ;p1=hostf file directory 194 ;p1=hostf file directory 230 195 ;p2=host file name 231 196 ;p3= $NAME REFERENCE INCLUDING STARTING SUBSCRIPT
Note:
See TracChangeset
for help on using the changeset viewer.