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

ZIBGCHR.m

Go to the documentation of this file.
  1. ZIBGCHR ; IHS/ADC/GTH - SEARCH FOR CONTROL CHAR. IN GLOBALS ; [ 10/29/2002 7:42 AM ]
  1. ;;3.0;IHS/VA UTILITIES;**9**;FEB 07, 1997
  1. ; XB*3*9 IHS/SET/GTH XB*3*9 10/29/2002 Cache' mods.
  1. ;
  1. %GLCHR ;SEARCH FOR CONTROL CHAR. IN GLOBALS [ 04/15/85 9:13 AM ]
  1. %ST ;
  1. S %DEF=0,%TRM=$I,%TMO=60 ;,$ZE="%ERR^%GL"
  1. %STL ;
  1. I $D(%IOD) C:%IOD'=%TRM %IOD
  1. S %QTY=2
  1. D ^%ZIS
  1. G:'$D(IO) %END
  1. S %DEF=IO,%PAG=IOSL-4
  1. ;I "SC^LP^TRM"'[%DTY!(%DTY="") W !?5,"Improper device selection.",!?5,"Must choose a terminal, a printer, or the system console." G %ST
  1. %SCR ;
  1. S %LN=132
  1. ;S:IOT="TRM" %LN=80 ;IHS/SET/GTH XB*3*9 10/29/2002
  1. S:IOT["TRM" %LN=80 ;IHS/SET/GTH XB*3*9 10/29/2002
  1. ;I IOT'="TRM" S %SC=0,%DCC=2 G %DO ;IHS/SET/GTH XB*3*9 10/29/2002
  1. I IOT'["TRM" S %SC=0,%DCC=2 G %DO ;IHS/SET/GTH XB*3*9 10/29/2002
  1. IHS1 ;
  1. S %SC=0,%DCC=2,TGL=0
  1. G %DO
  1. ;
  1. ; -- UNreachable code follows (?) GTH 07-06-95
  1. R !,"Scroll ? <N> ",%SC:%TMO
  1. G:%SC="?" %Q1
  1. G:%SC="^"!('$T) %STL
  1. G:%SC="^Q" %END
  1. S:%SC="" %SC="N"
  1. I "Y^N"'[$E(%SC) W " 'Y' or 'N'" G %SCR
  1. S %SC=($E(%SC)="Y"),%PAG=20
  1. %PAG ;
  1. G:'%SC %ASKC
  1. W !,"Lines/Page <",%PAG R "> ",%X:%TMO
  1. G:%X="^"!('$T) %SCR
  1. G:%X="^Q" %END
  1. S:%X="" %X=%PAG
  1. I %X'?1N.N!(%X<1) G %Q2
  1. S %PAG=%X
  1. %ASKC ;
  1. R !,"Do you want to display control characters ? <NO> ",%X:%TMO
  1. G:%X="?" %Q3
  1. G:%X="^Q" %END
  1. S:%X="" %X="NO"
  1. I %X="^"!('$T) G:%SC %PAG G:%DTY'="TRM" %STL G %SCR
  1. I "Y^N"'[$E(%X) W " 'Y' or 'N'" G %ASKC
  1. I $E(%X)="N" S %DCC=0 G %DO
  1. %OPT ;
  1. W !,"Specify one of the following:",!?5,"1. Line display",!?5,"2. Block display (with ASCII codes)"
  1. %OPT1 ;
  1. R !,"Display type <1> ",%X:%TMO
  1. G:%X="?" %HELP
  1. G:%X="^"!('$T) %ASKC
  1. G:%X="^Q" %END
  1. S:%X="" %X=1
  1. I %X'=1,%X'=2 G %OPT
  1. S %DCC=%X
  1. %DO ;
  1. D %START
  1. C:IO'=%TRM IO
  1. G %END
  1. ;
  1. %START ;
  1. S %NCR=%LN-5,%BAR="\"
  1. ;D ^%GSEL ;IHS/SET/GTH XB*3*9 10/29/2002
  1. I $ZV["MSM" D ^%GSEL ;IHS/SET/GTH XB*3*9 10/29/2002
  1. I $ZV["Cache" D ^%GSET ;IHS/SET/GTH XB*3*9 10/29/2002
  1. S (%GL,%GN)="",%LIN=0
  1. ;I $ZS(^UTILITY($J,%GL))="" Q ;IHS/SET/GTH XB*3*9 10/29/2002
  1. I $O(^UTILITY($J,%GL))="" Q ;IHS/SET/GTH XB*3*9 10/29/2002
  1. U IO
  1. D %GET
  1. S %LC=1
  1. D %LIN
  1. W #
  1. U IO
  1. G %START
  1. ;
  1. %GET ;
  1. KILL %DX,%CK,FLG
  1. ;S %GN=$ZS(^UTILITY($J,%GN)) ;IHS/SET/GTH XB*3*9 10/29/2002
  1. S %GN=$O(^UTILITY($J,%GN)) ;IHS/SET/GTH XB*3*9 10/29/2002
  1. Q:%GN=""
  1. S GLREF=^UTILITY($J,%GN)
  1. I GLREF="" S %CK="" G %WT
  1. D %START^%GL1
  1. Q
  1. ;
  1. %WT ;
  1. S %GL="^"_%GN
  1. S %LC=2
  1. D %LIN
  1. W %GL
  1. I $D(@%GL)#2 S IN=@%GL I IN]"" W " = " D %OUT
  1. S %LC=1
  1. D %LIN
  1. S %GL=%GL_"("""")"
  1. %NEXT ;
  1. ;S %GL=$ZN(@%GL) ;IHS/SET/GTH XB*3*9 10/29/2002
  1. S %GL=$Q(@%GL) ;IHS/SET/GTH XB*3*9 10/29/2002
  1. ;G:%GL=-1 IHS3 ;IHS/SET/GTH XB*3*9 10/29/2002
  1. G:%GL="" IHS3 ;IHS/SET/GTH XB*3*9 10/29/2002
  1. S IN=@%GL
  1. I IN?.E1C.E S TGL=TGL+1 W %GL," = " D %OUT
  1. IHS2 ;
  1. G %NEXT
  1. ;
  1. IHS3 ;
  1. U IO
  1. W !!,"TOTAL CORRUPT GLOBALS FOUND: ",TGL
  1. D PAUSE^XB
  1. S TGL=0
  1. G %GET
  1. ;
  1. %OUT ;
  1. I '(IN?.E1C.E) G %OUT1
  1. D:%DCC=1 %DSP1
  1. D:%DCC=2 %DSP2
  1. %OUT1 ;
  1. S %LC=1
  1. D %LIN
  1. Q
  1. ;
  1. %DSP1 ;
  1. F I=1:1:$L(IN) S %CHR=$E(IN,I) D %WRT
  1. Q
  1. ;
  1. %WRT ;
  1. I $A(%CHR)<32 W %BAR Q
  1. I $A(%CHR)=92 W "\\" Q
  1. W %CHR
  1. Q
  1. ;
  1. %DSP2 ;
  1. F I=1:1:4 S A(I)=""
  1. F I=1:1:$L(IN) S %CHR=$E(IN,I) D:$A(%CHR)<32 %CTL D:$A(%CHR)'<32 %NML
  1. S %FCR=1,%NLN=($L(IN)-1)\%NCR+1
  1. F I=1:1:%NLN S %LCR=%FCR+%NCR-1 D %LST
  1. Q
  1. ;
  1. %CTL ;
  1. S A(1)=A(1)_%BAR
  1. D %FIXO
  1. F K=2:1:4 S A(K)=A(K)_$E(%ASCII,K-1)
  1. Q
  1. ;
  1. %NML ;
  1. S A(1)=A(1)_%CHR
  1. D %FIXO
  1. F K=2:1:4 S A(K)=A(K)_$E(%ASCII,K-1)
  1. Q
  1. ;
  1. %FIXO ;
  1. S %ALN=3-$L($A(%CHR)),%ASCII=$A(%CHR)
  1. F M=1:1:%ALN S %ASCII="0"_%ASCII
  1. KILL %ALN
  1. Q
  1. ;
  1. %LST ;
  1. I $D(%SC) D:%LIN+4>%PAG %SC
  1. F %J=1:1:4 S %LC=1 D %LIN W ?3,$E(A(%J),%FCR,%LCR)
  1. S %LC=1
  1. D %LIN
  1. S %FCR=%LCR+1
  1. Q
  1. ;
  1. %LIN ;
  1. I $D(%SC) D:%LIN+%LC>%PAG %SC S %LIN=%LIN+%LC
  1. F %K=1:1:%LC W !
  1. Q
  1. ;
  1. %SC ;
  1. U 0
  1. R !,"Type <CR> to continue",%X:60
  1. S:'$T %X="^"
  1. U IO
  1. S %LIN=0
  1. Q
  1. ;
  1. %HELP ;
  1. W !!?5,"Enter '1' to display control characters as ""\""."
  1. W !?5,"Enter '2' to also display the ASCII code below each character."
  1. W !?8,"Example: ^AA(""1"",""3"",""5"") ="
  1. W !?22,"AB\C\\DEF",!?22,"000000000",!?22,"661612667",!?22,"562773890"
  1. D %EX
  1. G %OPT1
  1. ;
  1. %Q1 ;
  1. W !?5,"Enter Y(ES) to specify the number of lines to be displayed per page"
  1. W !?8,"or N(O) to have a continuous display."
  1. D %EX
  1. G %SCR
  1. ;
  1. %Q2 ;
  1. W !?5,"Enter the number of lines to be displayed per page."
  1. W !?5,"(Should not exceed 20 lines per page for video terminals.)"
  1. D %EX
  1. G %PAG
  1. ;
  1. %Q3 ;
  1. W !?5,"Enter Y(ES) for special treatment of control characters upon output.",!?5,"Otherwise enter N(O)."
  1. D %EX
  1. G %ASKC
  1. ;
  1. %EX ;
  1. W !?5,"Enter ^ to return to the previous question,",!?8,"or ^Q to exit the routine."
  1. Q
  1. ;
  1. %ERR ;
  1. U 0
  1. I $ZE?1"<INRPT".E W !?5,"Unexpected interrupt",!
  1. E W !,$ZE,!
  1. %END ;
  1. I $D(IO) C:IO'=%TRM IO
  1. KILL %ASCII,%BAR,%CHR,%CK,%DCC,%DCF,%DEF,%DTY,%FCR,%GL,%GN,%GO,%IOD,%K,%LC,%LCR,%LIN,%LN,%NCR,%NLN,%PAG,%QTY,%SC,%ST,%TMO,%TRM,%UCIN,%X,A,GLREF,I,IN,K,M,TGL
  1. Q
  1. ;