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

XTHCUTL.m

Go to the documentation of this file.
  1. XTHCUTL ;ISF/RWF - HTTP 1.0 CLIENT Utilities ;11/10/09 15:12
  1. ;;7.3;TOOLKIT;**123**;;Build 4
  1. Q
  1. ;<LI> <A HREF="#Payroll_&_Personnel" TITLE="Payroll & Personnel Links">Payroll & Personnel</A> </LI>
  1. ;
  1. DECODE(STR) ;DeCode a string =" ", <=<, >=>,  =" "
  1. N I,J
  1. S I=0
  1. F S I=$F(STR,"&",I) Q:'I S J=$P($E(STR,I,I+5),";"),J=$$LOW^XLFSTR(J),K=$S(J="nbsp":" ",J="lt":"<",J="gt":">",J="amp":"&",J="apos":"'",J="quot":"""",$E(J)="#":$E(J,2,4),1:"") D:$L(K)
  1. . I +K S K=$C(+K) ;A The decimal value in ISO-latin-1 for A
  1. . S STR=$E(STR,1,I-2)_K_$E(STR,I+$L(J)+1,$L(STR))
  1. Q STR
  1. ;
  1. UNHEX(HH) ;function - decode one pair of hex digits to ASCII char
  1. S HH=$TR(HH,"abcdef","ABCDEF")
  1. I $TR(HH,"0123456789ABCDEF")'="" Q "???" ;-- error - bad hex code --;
  1. S HH=$TR(HH,"ABCDEF",":;<=>?")
  1. Q $C($$UNHEXD($E(HH,1))*16+$$UNHEXD($E(HH,2)))
  1. ;
  1. UNHEXD(X) ;function - convert hex digit back to decimal
  1. Q $A(X)-48
  1. ;
  1. QUOTE ;
  1. F I=I+1:1 S CH=$E(STR,I) Q:CH=""!(CH=Q)
  1. I $E(STR,I+1)=Q S I=I+1 G QUOTE
  1. Q
  1. ;
  1. TEST ;Unit Tests
  1. S STR="[ <&"'> ]m" I $$DECODE(STR)'="[ <&""'> ]m" W !,"Fail: ",STR
  1. S STR="0123456789ABCDEF" I $$DECODE(STR)'="0123456789ABCDEF" W !,"Fail: ",STR
  1. Q