/usr/lib/x86_64-linux-gnu/fis-gtm/V6.3-000A_x86_64/_GI.m is in fis-gtm-6.3-000a 6.3-000A-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ;
; Copyright (c) 1991-2015 Fidelity National Information ;
; Services, Inc. and/or its subsidiaries. All rights reserved. ;
; ;
; This source code contains the intellectual property ;
; of its copyright holder(s), and is made available ;
; under a license. If you do not know the terms of ;
; the license, please stop and do not read further. ;
; ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
%GI ;service@greystone.com %GO;19920722 21:35;global input
;Load globals into database
;Possible enhancements:
;selection and/or exclusion by key list, range and/or wildcard
;optional confirmation by global name
;callable entry point
;
new c,chset,d,dos,fmt,g,i,n,q,sav,saveread,x,y,%ZD
set d("io")=$io
use $principal
write !,"Global Input Utility",!
set $zstatus=""
if '$data(%zdebug) new $etrap set $etrap="zgoto "_$zlevel_":err^"_$text(+0) do
. zshow "d":d ; save original $p settings
. set x=$piece($piece(d("D",1),"CTRA=",2)," ")
. set:""=x x=""""""
. set d("use")="$principal:(ctrap="_x_":exception=",x=$piece(d("D",1),"EXCE=",2),x=$zwrite($extract(x,2,$length(x)-1))
. set:""=x x=""""""
. set d("use")=d("use")_x_":"_$select($find(d("D",1),"NOCENE"):"nocenable",1:"cenable")_")"
. use $principal:(ctrap=$char(3,4):exception="":nocenable)
for do quit:$length(%ZD)
. read !,"Input device: <terminal>: ",%ZD
. if '$length(%ZD) set %ZD=$principal quit
. quit:"^"=%ZD
. if "?"=%ZD do quit
. . write !!,"Select the device you want for input"
. . write !,"If you wish to exit enter a caret (^)",!
. . set %ZD=""
. if $zparse(%ZD)="" write " no such device" set %ZD="" quit
. open:$principal'=%ZD %ZD:(readonly:rewind:stream:recordsize=2044:ichset="M":exception="goto noopen"):0
. if '$test write !,%ZD," is not available" set %ZD=""
. quit
noopen . write !,$piece($ZS,",",2,999),!
. close %ZD
. set ($zstatus,%ZD)=""
if "^"=%ZD do err quit
write !!
set sav="",(g,n)=0
if $principal'=%ZD use %ZD:(exception="zgoto "_$zlevel_":eof":ctrap=$C(3,4)) do quit:"^"=x
. read x,y
. use $principal
. set dos=($zchar(13)=$extract(x,$length(x))) ; the label selects dos/not for entire file
. set:dos x=$extract(x,1,$length(x)-1),y=$extract(y,1,$length(y)-1)
. write !,x,!,y,!
. set chset=$select(x["UTF-8":"UTF-8",1:"M")
. if $zchset'=chset write "Extract CHSET ",chset," doesn't match current $ZCHSET ",$zchset,!
. read !,"OK <Yes>? ",x,!!
. if "^"=x do err quit
. if $length(x),$extract("NO",1,$length(x))=$translate(x,"no","NO") set x="^" do err quit
. set fmt=$get(y)["ZWR"
else do if "^"=x do err quit ; if input is $p, no label
. set chset=$zchset,dos=0,fmt=1
. read !,"Format <ZWR>? ",x,!!
. quit:"^"=x
. if $length(x) set x=$translate($zconvert(x,"U"),"L") if $extract("GO",1,$length(x))=x set fmt=0 quit
set x=$$read
if 'fmt do
. if x?1"^"1(1"%",1A).30AN.1(1"("1.E1")")1"=".E set fmt=1 quit ; looks like ZWR
. set y=$$read
. do for set x=$$read,y=$$read if "*"'[$extract(x) do ; GLO
. . quit:(""=x)&(""=y)
. . set @x=y
. . set n=n+1,x=$piece(x,"(")
. . if x'=sav,x'="^" do
. . . set g=g+1,sav=x
. . . if $principal'=%ZD use $principal write:$x>70 ! write x,?$x\10+1*10
if (fmt) do for set x=$$read do ; ZWR
. quit:""=x
. set (i,q)=1,y="" ; find first equal-sign not in quotes
. for set c=i,i=$find(x,"=",i) do:$extract(x,c,i-2)["""" quit:q
. . for c=c:1:i-2 set:""""=$extract(c) q='q
. set y=$extract(x,1,i-2)
. if 8193>$zlength(x) set @x
. else set:8192<$length(y) y=$zwrite(y,1) set @y=$zwrite($extract(x,i,$length(x)),1)
. set n=n+1,x=$piece(y,"(")
. if x'=sav,"^"'=x do
. . set g=g+1,sav=x
. . if $principal'=%ZD use $principal write:$x>70 ! write x,?$x\10+1*10
eof ;
err set $ecode=""
if $data(%ZD),%ZD'=$principal close %ZD
use:$data(d("use")) @d("use")
use:$data(d("io")) d("io")
if ""'=$zstatus,($zstatus'["CTRAP")&($zstatus'["IOEOF") write !,"ERROR: ",$zstatus
quit:'$get(n)
write !!,"Restored ",n," node",$select(n=1:"",1:"s")
write " in ",g," global",$select(g=1:".",1:"s.")
quit
read() ; concatenate reads that fill the buffer; also centralize the USE and dos <LF> stripping
new i,e,x
use %ZD
set e=0,x=$get(saveread),i=1+(""'=x),saveread=""
for i=i:1 do quit:e
. if $principal=$io read "> ",x(i),!
. else read x(i)
. if $zeof,$increment(e) quit
. quit:""=x(i)
. if 0=i#2,$increment(e) set saveread=x(i) quit
. set x=x_x(i)
. if 2044'=$zlength(x(i)),$increment(e) quit
set:dos x=$extract(x,1,$length(x)-1)
quit x
|