VistA-hash/VWHSHCLX.m

22 lines
731 B
Mathematica

XUSHSH ;;GpZ; - ; IMPROVED HASHING UTILITY: for Cache/Linux (VWHSHCLX); 01/08/2010
V ;;8.0;KERNEL;;Jul 10, 1995
;;
A S X=$$EN(X) Q
;;
EN(X,HASH) ;;
N (X,HASH)
D:'$L($G(^%ZOSF("HASHLIST"))) DEFHASH^VWHSH0
S HASHLIST=^%ZOSF("HASHLIST")
S HASH=$S('$L($G(HASH)):$P(HASHLIST,"|",1),1:$TR(HASH,"abcdefghijklmnopqrstuvwxyz- ","ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
IF HASH="LEGACY" QUIT $$EN^VWHSHLEG(X)
Q:HASHLIST'[(" "_HASH_" ") X
S SED="sed -e 's/$/\r/'|"
N PIPE,ZUT,I
S ZUT=$ZUTIL(68,40,1) ;; MSM-style End-of-File Handling
S PIPE=" echo "_X_"||"_SED_$P(HASHLIST,"||",3)_"gpg --print-md "_HASH
OPEN PIPE:"Q"
F I=1:1:4 USE PIPE R X Q:$ZEOF<0 S HASHOUT=$G(HASHOUT)_X
CLOSE PIPE
S ZUT=$ZUTIL(68,40,ZUT),X=HASHOUT
Q $TR(X," ")