File information: | |
File name: | Directory.mesa_Oct77.pdf [preview Directory.mesa Oct77] |
Size: | 186 kB |
Extension: | |
Mfg: | xerox |
Model: | Directory.mesa Oct77 🔎 |
Original: | Directory.mesa Oct77 🔎 |
Descr: | xerox mesa 3.0_1977 listing Directory.mesa_Oct77.pdf |
Group: | Electronics > Other |
Uploaded: | 10-02-2020 |
User: | Anonymous |
Multipart: | No multipart |
Information about the files in archive: | ||
Decompress result: | OK | |
Extracted files: | 1 | |
File name Directory.mesa_Oct77.pdf directory.mESA 24-0CT-77 10:38:25 Page 1 -- Directory.Mesa Edited by Sandman on August 23, 1977 9:40 PM DIRECTORY AltoDefs: FROM "altodefs", BFSDefs: FROM "bfsdefs", DirectoryDefs: FROM "directorydefs", SegmentDefs: FROM "segmentdefs", StringDefs: FROM "stringdefs", StreamDefs: FROM "streamdefs", AltoFileDefs: FROM "altofiledefs"; DEFINITIONS FROM Segmentoefs, StringDefs, AltoFileoefs, StreamDefs; Directory: PROGRAM IMPORTS BFSDefs, Segmentoefs, Streamoefs, StringDeFs EXPORTS DirectoryDeFs BEGIN FPptr: TYPE POINTER:O FP; DVptr: TYP.E = POINTER TO DV; HDptr: TYPE = POINTER TO Ho; BadFilename: PUBLIC SIGNAL [name:STRING] = CODE; BadDirectory: PUBLIC SIGNAL [name:STRING] = CODE; EnumerateDirectory: PUBLIC PROCEDURE ( proc:PROCEDURE [POINTER TO FP, STRING] RETURNS [BOOLEAN]] BEGIN PassItOn: PROCEDURE [i:StreamIndex, dv:DVptr, s:STRING] RETURNS [BOOLEAN] BEGIN fp: FP; IF dv.type = DEFile THEN BEGIN BFSDefs.MakeFP[@fp,@dv.fp]; RETURN[proc[@fp,s]] END; RETURN[FALSE] END; dir: StreamHandle ~ CreateWordStream[SysDir,Read]; [J ~ EnumerateEntries[dir,PassItOn]; dir.destroy[dir]; RETURN END: DirectoryLookup: PUBLIC PROCEDURE [fp:FPptr, name:STRING, create:BOOLEAN] RETURNS [old:BOOLEAN] = BEGIN dir: Streamllandle; access: AccessOptions; hd: HD; fn: STRING ~ [FilenameChars]; ExpandFilename[name,Fn]; access ~ IF -create THEN Read ELSE Read+Write+Append; dir ~ CreateWordStream[SysDir,access]; old ~ FindName[dir,fp,fn,@hd].found; IF -old AND create THEN BEGIN -- should be @dir.file.fp BFSDefs.CreateFile[fn,fp,@SysDirFP]; MakeEntry[dir,fp,fn,@hd]; END: dir.destroy[dir]: RETURN END; DirectorylookupFP: PUBLIC PROCEDURE [fp:FPptr, name:STRING] R[TURNS [old:BOOI.[AN] |
Date | User | Rating | Comment |