-- VultureOps.mesa -- Scavanger for Mail Archive files. -- Maurice Herlihy August 7, 1982 DIRECTORY BodyDefs, Rope, Space, VultureDefs; VultureOps: DEFINITIONS IMPORTS Rope, Space, BodyDefs = { -- Public types. Item: TYPE = LONG POINTER TO BodyDefs.ItemHeader; -- Opaque types ItemStream: TYPE = REF ItemStreamRep; ItemStreamRep: TYPE; DirStream: TYPE = REF DirStreamRep; DirStreamRep: TYPE; ROPE: TYPE = Rope.ROPE; EndOfStream: ERROR; BadFormat: ERROR; OpenDirStream: PROC [space: Space.Handle] RETURNS [dirstream: DirStream] -- Signals EndOfStream --; -- Creates a DirStream from given space. EndOfStream => file VERY broken. NextDirectory: PROC [dirSteam: DirStream] RETURNS [directory: VultureDefs.Directory] -- Signals EndOfStream --; CloseDirStream: PROC [dirSteam: DirStream]; -- Mark any unseen directories as deleted. OpenItemStream: PROC [space: Space.Handle] RETURNS [ItemStream]-- Signals EndOfStream --; -- Creates an item stream from given space. NextItem: PROC [stream: ItemStream] RETURNS [item: Item] -- Signals EndOfStream, BadFormat --; FindPostmark: PROC [stream: ItemStream] RETURNS [INT] -- Signals EndOfStream --; NoMoreItems: PROC [stream: ItemStream] RETURNS [BOOL]; ParseItem: PUBLIC PROC [item: Item] RETURNS [ROPE]; Reset: PUBLIC PROC [stream: ItemStream, address: INT] -- signals EndOfStream--; Current: PUBLIC PROC [stream: ItemStream] RETURNS [INT]; }. ό-- Return next directory in stream. -- Returns next item in stream. -- Moves stream ahead to next apparent postmark item. -- Any items left in the stream? -- Prints item type. -- Sets current stream address to address. -- Current stream address ΚΞ– "Mesa" style˜procš&ΟcZœΟk œ6ž œžœ œžœžœžœžœœ žœžœ žœžœžœžœžœžœžœ˜·Kšœžœ˜Kšœ žœ˜šΠbn œžœžœœ˜cKš œ 3˜I—šŸ œžœžœ%œ˜pKš#™#—šŸœžœ˜+Kš+˜+—šŸœžœžœ ˜YKš,˜,—šŸœžœžœ$œ˜^Kš ™ —š Ÿ œžœžœžœœ˜PKš5™5—šŸ œžœžœžœ˜6Kš ™ —š Οn œžœžœžœžœ˜3Kš™—š  œžœžœžœœ˜OKš*™*—š  œžœžœžœžœ˜8Kš™——Kšœ˜—…—ˆR