[641] | 1 | ZIBGCHR ; IHS/ADC/GTH - SEARCH FOR CONTROL CHAR. IN GLOBALS ; [ 10/29/2002 7:42 AM ]
|
---|
| 2 | ;;4.0;XB;;Jul 20, 2009;Build 2
|
---|
| 3 | ; XB*3*9 IHS/SET/GTH XB*3*9 10/29/2002 Cache' mods.
|
---|
| 4 | ;
|
---|
| 5 | %GLCHR ;SEARCH FOR CONTROL CHAR. IN GLOBALS [ 04/15/85 9:13 AM ]
|
---|
| 6 | %ST ;
|
---|
| 7 | S %DEF=0,%TRM=$I,%TMO=60 ;,$ZE="%ERR^%GL"
|
---|
| 8 | %STL ;
|
---|
| 9 | I $D(%IOD) C:%IOD'=%TRM %IOD
|
---|
| 10 | S %QTY=2
|
---|
| 11 | D ^%ZIS
|
---|
| 12 | G:'$D(IO) %END
|
---|
| 13 | S %DEF=IO,%PAG=IOSL-4
|
---|
| 14 | ;I "SC^LP^TRM"'[%DTY!(%DTY="") W !?5,"Improper device selection.",!?5,"Must choose a terminal, a printer, or the system console." G %ST
|
---|
| 15 | %SCR ;
|
---|
| 16 | S %LN=132
|
---|
| 17 | ;S:IOT="TRM" %LN=80 ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 18 | S:IOT["TRM" %LN=80 ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 19 | ;I IOT'="TRM" S %SC=0,%DCC=2 G %DO ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 20 | I IOT'["TRM" S %SC=0,%DCC=2 G %DO ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 21 | IHS1 ;
|
---|
| 22 | S %SC=0,%DCC=2,TGL=0
|
---|
| 23 | G %DO
|
---|
| 24 | ;
|
---|
| 25 | ; -- UNreachable code follows (?) GTH 07-06-95
|
---|
| 26 | R !,"Scroll ? <N> ",%SC:%TMO
|
---|
| 27 | G:%SC="?" %Q1
|
---|
| 28 | G:%SC="^"!('$T) %STL
|
---|
| 29 | G:%SC="^Q" %END
|
---|
| 30 | S:%SC="" %SC="N"
|
---|
| 31 | I "Y^N"'[$E(%SC) W " 'Y' or 'N'" G %SCR
|
---|
| 32 | S %SC=($E(%SC)="Y"),%PAG=20
|
---|
| 33 | %PAG ;
|
---|
| 34 | G:'%SC %ASKC
|
---|
| 35 | W !,"Lines/Page <",%PAG R "> ",%X:%TMO
|
---|
| 36 | G:%X="^"!('$T) %SCR
|
---|
| 37 | G:%X="^Q" %END
|
---|
| 38 | S:%X="" %X=%PAG
|
---|
| 39 | I %X'?1N.N!(%X<1) G %Q2
|
---|
| 40 | S %PAG=%X
|
---|
| 41 | %ASKC ;
|
---|
| 42 | R !,"Do you want to display control characters ? <NO> ",%X:%TMO
|
---|
| 43 | G:%X="?" %Q3
|
---|
| 44 | G:%X="^Q" %END
|
---|
| 45 | S:%X="" %X="NO"
|
---|
| 46 | I %X="^"!('$T) G:%SC %PAG G:%DTY'="TRM" %STL G %SCR
|
---|
| 47 | I "Y^N"'[$E(%X) W " 'Y' or 'N'" G %ASKC
|
---|
| 48 | I $E(%X)="N" S %DCC=0 G %DO
|
---|
| 49 | %OPT ;
|
---|
| 50 | W !,"Specify one of the following:",!?5,"1. Line display",!?5,"2. Block display (with ASCII codes)"
|
---|
| 51 | %OPT1 ;
|
---|
| 52 | R !,"Display type <1> ",%X:%TMO
|
---|
| 53 | G:%X="?" %HELP
|
---|
| 54 | G:%X="^"!('$T) %ASKC
|
---|
| 55 | G:%X="^Q" %END
|
---|
| 56 | S:%X="" %X=1
|
---|
| 57 | I %X'=1,%X'=2 G %OPT
|
---|
| 58 | S %DCC=%X
|
---|
| 59 | %DO ;
|
---|
| 60 | D %START
|
---|
| 61 | C:IO'=%TRM IO
|
---|
| 62 | G %END
|
---|
| 63 | ;
|
---|
| 64 | %START ;
|
---|
| 65 | S %NCR=%LN-5,%BAR="\"
|
---|
| 66 | ;D ^%GSEL ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 67 | I $ZV["MSM" D ^%GSEL ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 68 | I $ZV["Cache" D ^%GSET ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 69 | S (%GL,%GN)="",%LIN=0
|
---|
| 70 | ;I $ZS(^UTILITY($J,%GL))="" Q ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 71 | I $O(^UTILITY($J,%GL))="" Q ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 72 | U IO
|
---|
| 73 | D %GET
|
---|
| 74 | S %LC=1
|
---|
| 75 | D %LIN
|
---|
| 76 | W #
|
---|
| 77 | U IO
|
---|
| 78 | G %START
|
---|
| 79 | ;
|
---|
| 80 | %GET ;
|
---|
| 81 | KILL %DX,%CK,FLG
|
---|
| 82 | ;S %GN=$ZS(^UTILITY($J,%GN)) ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 83 | S %GN=$O(^UTILITY($J,%GN)) ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 84 | Q:%GN=""
|
---|
| 85 | S GLREF=^UTILITY($J,%GN)
|
---|
| 86 | I GLREF="" S %CK="" G %WT
|
---|
| 87 | D %START^%GL1
|
---|
| 88 | Q
|
---|
| 89 | ;
|
---|
| 90 | %WT ;
|
---|
| 91 | S %GL="^"_%GN
|
---|
| 92 | S %LC=2
|
---|
| 93 | D %LIN
|
---|
| 94 | W %GL
|
---|
| 95 | I $D(@%GL)#2 S IN=@%GL I IN]"" W " = " D %OUT
|
---|
| 96 | S %LC=1
|
---|
| 97 | D %LIN
|
---|
| 98 | S %GL=%GL_"("""")"
|
---|
| 99 | %NEXT ;
|
---|
| 100 | ;S %GL=$ZN(@%GL) ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 101 | S %GL=$Q(@%GL) ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 102 | ;G:%GL=-1 IHS3 ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 103 | G:%GL="" IHS3 ;IHS/SET/GTH XB*3*9 10/29/2002
|
---|
| 104 | S IN=@%GL
|
---|
| 105 | I IN?.E1C.E S TGL=TGL+1 W %GL," = " D %OUT
|
---|
| 106 | IHS2 ;
|
---|
| 107 | G %NEXT
|
---|
| 108 | ;
|
---|
| 109 | IHS3 ;
|
---|
| 110 | U IO
|
---|
| 111 | W !!,"TOTAL CORRUPT GLOBALS FOUND: ",TGL
|
---|
| 112 | D PAUSE^XB
|
---|
| 113 | S TGL=0
|
---|
| 114 | G %GET
|
---|
| 115 | ;
|
---|
| 116 | %OUT ;
|
---|
| 117 | I '(IN?.E1C.E) G %OUT1
|
---|
| 118 | D:%DCC=1 %DSP1
|
---|
| 119 | D:%DCC=2 %DSP2
|
---|
| 120 | %OUT1 ;
|
---|
| 121 | S %LC=1
|
---|
| 122 | D %LIN
|
---|
| 123 | Q
|
---|
| 124 | ;
|
---|
| 125 | %DSP1 ;
|
---|
| 126 | F I=1:1:$L(IN) S %CHR=$E(IN,I) D %WRT
|
---|
| 127 | Q
|
---|
| 128 | ;
|
---|
| 129 | %WRT ;
|
---|
| 130 | I $A(%CHR)<32 W %BAR Q
|
---|
| 131 | I $A(%CHR)=92 W "\\" Q
|
---|
| 132 | W %CHR
|
---|
| 133 | Q
|
---|
| 134 | ;
|
---|
| 135 | %DSP2 ;
|
---|
| 136 | F I=1:1:4 S A(I)=""
|
---|
| 137 | F I=1:1:$L(IN) S %CHR=$E(IN,I) D:$A(%CHR)<32 %CTL D:$A(%CHR)'<32 %NML
|
---|
| 138 | S %FCR=1,%NLN=($L(IN)-1)\%NCR+1
|
---|
| 139 | F I=1:1:%NLN S %LCR=%FCR+%NCR-1 D %LST
|
---|
| 140 | Q
|
---|
| 141 | ;
|
---|
| 142 | %CTL ;
|
---|
| 143 | S A(1)=A(1)_%BAR
|
---|
| 144 | D %FIXO
|
---|
| 145 | F K=2:1:4 S A(K)=A(K)_$E(%ASCII,K-1)
|
---|
| 146 | Q
|
---|
| 147 | ;
|
---|
| 148 | %NML ;
|
---|
| 149 | S A(1)=A(1)_%CHR
|
---|
| 150 | D %FIXO
|
---|
| 151 | F K=2:1:4 S A(K)=A(K)_$E(%ASCII,K-1)
|
---|
| 152 | Q
|
---|
| 153 | ;
|
---|
| 154 | %FIXO ;
|
---|
| 155 | S %ALN=3-$L($A(%CHR)),%ASCII=$A(%CHR)
|
---|
| 156 | F M=1:1:%ALN S %ASCII="0"_%ASCII
|
---|
| 157 | KILL %ALN
|
---|
| 158 | Q
|
---|
| 159 | ;
|
---|
| 160 | %LST ;
|
---|
| 161 | I $D(%SC) D:%LIN+4>%PAG %SC
|
---|
| 162 | F %J=1:1:4 S %LC=1 D %LIN W ?3,$E(A(%J),%FCR,%LCR)
|
---|
| 163 | S %LC=1
|
---|
| 164 | D %LIN
|
---|
| 165 | S %FCR=%LCR+1
|
---|
| 166 | Q
|
---|
| 167 | ;
|
---|
| 168 | %LIN ;
|
---|
| 169 | I $D(%SC) D:%LIN+%LC>%PAG %SC S %LIN=%LIN+%LC
|
---|
| 170 | F %K=1:1:%LC W !
|
---|
| 171 | Q
|
---|
| 172 | ;
|
---|
| 173 | %SC ;
|
---|
| 174 | U 0
|
---|
| 175 | R !,"Type <CR> to continue",%X:60
|
---|
| 176 | S:'$T %X="^"
|
---|
| 177 | U IO
|
---|
| 178 | S %LIN=0
|
---|
| 179 | Q
|
---|
| 180 | ;
|
---|
| 181 | %HELP ;
|
---|
| 182 | W !!?5,"Enter '1' to display control characters as ""\""."
|
---|
| 183 | W !?5,"Enter '2' to also display the ASCII code below each character."
|
---|
| 184 | W !?8,"Example: ^AA(""1"",""3"",""5"") ="
|
---|
| 185 | W !?22,"AB\C\\DEF",!?22,"000000000",!?22,"661612667",!?22,"562773890"
|
---|
| 186 | D %EX
|
---|
| 187 | G %OPT1
|
---|
| 188 | ;
|
---|
| 189 | %Q1 ;
|
---|
| 190 | W !?5,"Enter Y(ES) to specify the number of lines to be displayed per page"
|
---|
| 191 | W !?8,"or N(O) to have a continuous display."
|
---|
| 192 | D %EX
|
---|
| 193 | G %SCR
|
---|
| 194 | ;
|
---|
| 195 | %Q2 ;
|
---|
| 196 | W !?5,"Enter the number of lines to be displayed per page."
|
---|
| 197 | W !?5,"(Should not exceed 20 lines per page for video terminals.)"
|
---|
| 198 | D %EX
|
---|
| 199 | G %PAG
|
---|
| 200 | ;
|
---|
| 201 | %Q3 ;
|
---|
| 202 | W !?5,"Enter Y(ES) for special treatment of control characters upon output.",!?5,"Otherwise enter N(O)."
|
---|
| 203 | D %EX
|
---|
| 204 | G %ASKC
|
---|
| 205 | ;
|
---|
| 206 | %EX ;
|
---|
| 207 | W !?5,"Enter ^ to return to the previous question,",!?8,"or ^Q to exit the routine."
|
---|
| 208 | Q
|
---|
| 209 | ;
|
---|
| 210 | %ERR ;
|
---|
| 211 | U 0
|
---|
| 212 | I $ZE?1"<INRPT".E W !?5,"Unexpected interrupt",!
|
---|
| 213 | E W !,$ZE,!
|
---|
| 214 | %END ;
|
---|
| 215 | I $D(IO) C:IO'=%TRM IO
|
---|
| 216 | 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
|
---|
| 217 | Q
|
---|
| 218 | ;
|
---|