DIRECTORY GFTypePrivate, PascalBasic, PascalWizardFiles, FS, IO, Rope; GFTypeExternalsImpl: PROGRAM IMPORTS PascalBasic, PascalWizardFiles, FS, IO, Rope EXPORTS GFTypePrivate = BEGIN OPEN PascalBasic, PascalWizardFiles, GFTypePrivate; TtyReset: PUBLIC PROC [F: PascalTextFilePtr] = BEGIN PascalOpenTextFileTTYInput[F]; END; TtyRewrite: PUBLIC PROC [F: PascalTextFilePtr] = BEGIN PascalOpenTextFileTTYOutput[F]; END; ByteFileReset: PUBLIC PROC [F: LONG POINTER TO ByteFile, Ext: Alfa] = BEGIN inStream: IO.STREAM; so: FS.StreamOptions _ FS.defaultStreamOptions; so[tiogaRead] _ FALSE; inStream _ FS.StreamOpen[fileName: Rope.Cat[FileNameRoot[], ".", RopeFromAlfa[Ext]], streamOptions: so]; PascalOpenFileWithStream[@(F^.baseFile), inStream]; PascalRESET[file: @(F^.baseFile), length: 1, element: @(F^.element)]; END; FileReset: PROC [F: PascalTextFilePtr, Ext: Alfa] = BEGIN inStream: IO.STREAM; inStream _ FS.StreamOpen[Rope.Cat[FileNameRoot[], ".", RopeFromAlfa[Ext]]]; PascalOpenTextFileWithStream[F, inStream]; PascalTextRESET[F]; END; FileRewrite: PUBLIC PROC [F: PascalTextFilePtr, Ext: Alfa] = BEGIN outStream: IO.STREAM; outStream _ FS.StreamOpen[Rope.Cat[FileNameRoot[], ".", RopeFromAlfa[Ext]], $create]; PascalOpenTextFileWithStream[F, outStream]; PascalTextREWRITE[F]; END; FileClose: PUBLIC PROC [F: PascalTextFilePtr] = BEGIN PascalCloseTextFile[F]; END; ByteFileClose: PUBLIC PROC [F: LONG POINTER TO ByteFile] = BEGIN PascalCloseFile[@(F^.baseFile)]; END; fileNameRootBreak: PRIVATE IO.BreakProc = CHECKED BEGIN RETURN[SELECT char FROM IN ['0..'9], IN ['A..'Z], IN ['a..'z], '-, '+, '# => other, ENDCASE => sepr]; END; FileNameRoot: PROC RETURNS [ROPE] = BEGIN RETURN[IO.RIS[commandLineTail].GetTokenRope[breakProc: fileNameRootBreak].token]; END; RopeFromAlfa: PROC [a: Alfa] RETURNS [r: ROPE] = BEGIN r _ NIL; FOR i:AlfaIndex IN AlfaIndex DO IF a[i] = ' THEN EXIT; r _ Rope.Concat[r, Rope.FromChar[a[i]]]; ENDLOOP; END; END. \file: GFTypeExternalsImpl.mesa Last Edited by: Pavel, October 6, 1984 6:15:53 pm PDT Κ~˜Jšœ™J™5J˜šΟk ˜ J˜J˜ J˜Jšœ˜Jšœ˜Jšœ˜J˜—šΠblœ˜Jšœ!œœ˜4Jšœ˜Jšœœœ/˜;unitšΟnœœœœ˜.Jš˜Jšœœ˜Jšœ˜—šŸ œœœœ˜0Jš˜Jšœœ˜Jšœ˜—šŸ œœœœœœœ˜EJš˜Jšœ œœ˜Jšœœœ˜/Jšœœ˜Jšœ œ[˜hJšœœ˜3Jšœœ#œ ˜EJšœ˜—šŸ œœœ!˜3Jš˜Jšœ œœ˜Jšœ œ>˜KJšœœ ˜*Jšœœ˜Jšœ˜—šŸ œœœœ!˜