GetFromRelease.mesa
Copyright Ó 1991 by Xerox Corporation. All rights reserved.
Mike Spreitzer February 28, 1987 4:00:35 pm PST
Last tweaked by Mike Spreitzer on April 10, 1987 2:44:54 pm PDT
Willie-s, October 10, 1991 11:32 am PDT
Jules Bloomenthal December 8, 1992 12:31 pm PST
DIRECTORY IO, RedBlackTree, Rope;
GetFromRelease: CEDAR DEFINITIONS = {
Imports: TYPE ~ RedBlackTree.Table;
key is a DF file name, including directory part and extension but not version; value is a DFUtilities.ImportsItem.
CreateImports: PROC RETURNS [Imports];
GetFile: PROC [
fileName, self: Rope.ROPE,
highest: BOOL,
imports: Imports ¬ NIL,
log: IO.STREAM ¬ NIL,
mapAtom: ATOM ¬ NIL,
attach: BOOL ¬ TRUE]
RETURNS [gotIt: BOOL];
self is the name of a package to avoid getting the file from. imports, if present, gets the DF imports item added to it (keyed on df file name, including directory, excluding version). If highest, we get the highest version extant; else we take the one in the version map. If mapAtom is not NIL, use those version maps instead of the default ones
UpdateDFFile: PROC [log: IO.STREAM, dfFileName: Rope.ROPE, imports: Imports]
RETURNS [success: BOOL];
}.