TextCanvasTarget "file-view" { Ref 0 get 47 ne { TiesRootDirectory FilePos 0 get append Ref append } { Ref } ifelse (r) file /file-view-infile exch def PileDict PileID get /file-view-text [ { file-view-infile 128 string readline not { pop exit } if } loop % want to have at least 16 lines. % (textcanvas loses if there are fewer lines than it is tall?) counttomark 16 lt { counttomark 16 exch sub {()} repeat } if ] put file-view-infile closefile /file-view-infile null def PileDict PileID get /file-view-text-height file-view-text length put file-view-text-height } { /TextLines file-view-text def Ref cvn TID cvn PileDict PileID get begin def /file-view-text null def /file-view-text-height null def end /TextInit { null 0 moveviewport } def }