// Copyright )1997 Easter-eggs. All Rights Reserved. DefConst('kEEToolBoxUnitName, "EEToolBox"); DefConst('kEEToolBoxUnitString, "ToolBox:Eggs"); DefConst('kEEToolBoxUnitSymbol, Intern(kEEToolBoxUnitString)); DefConst('kEEToolBoxMajorVersion, 1); DefConst('kEEToolBoxMinorVersion, 0); DefConst('kEEToolBoxVersionString, kEEToolBoxMajorVersion & $. & kEEToolBoxMinorVersion); DefConst('kEEToolBoxUnitDeclaration, { EESPrintObject: 0, eeLogger: 1, eeAgent: 2, EEGetSlot: 3, EESetSlot: 4, }); DeclareUnit(kEEToolBoxUnitSymbol, kEEToolBoxMajorVersion, kEEToolBoxMinorVersion, kEEToolBoxUnitDeclaration); if kAppSymbol <> kEEToolBoxUnitSymbol then begin DeclareGlobalFn('ImpureUnitReference, 2); DefGlobalFn('ImpureUnitReference, constantFunctions.UnitReference); foreach slot, value in kEEToolBoxUnitDeclaration do DefConst(slot, ImpureUnitReference(kEEToolBoxUnitSymbol, slot)); end; DefConst('kInvalidOptionParamString, if language = 'french then "Option \"^0\" incorrecte" else "Invalid \"^0\" option"); DefConst('kMissingOptionParamString, if language = 'french then "Option \"^0\" absente" else "Missing \"^0\" option"); DefConst('kMissingOrInvalidOptionParamString, if language = 'french then "Option \"^0\" absente ou incorrecte" else "Missing or invalid \"^0\" option"); DefConst('kMissingPackageParamString, if language = 'french then "R" & kAppName & "S ne peut pas fonctionner car il manque R^0S" else "R" & kAppName & "S can't run because R^0S is missing"); DefConst('kNotImplementedString, if language = 'french then "Fonctionnalit non implmente" else "Feature not implemented"); DefConst('kProgrammingErrorString, if language = 'french then "Erreur de programmation" else "Programming error"); DefConst('kUnitRemovalApprovalString, if language = 'french then "Cette opration va empcher R" & kAppName & "S de fonctionner." else "This operation will prevent R" & kAppName & "S from running."); DefConst('EggsIsReadyToRun, func() begin local missingImports := call kMissingImportsFunc with (ObjectPkgRef('foo)); if missingImports and Length(missingImports) > 0 then begin GetRoot():Notify(kNotifyAlert, EnsureInternal(kAppName), EnsureInternal(ParamStr(kMissingPackageParamString, [ SPrintObject(missingImports[0].name), ]))); return nil; end; return true; end); DeclareGlobalFn('CurrentExports, 0); DefConst('EggsRemovalApproval, func(unitSymbol, majorVersion, minorVersion) begin local currentExports := CurrentExports(); local unitToRemove := LFetch(currentExports, nil, 0, func(notUsed, export) export.name = unitSymbol and export.major = majorVersion and export.minor = minorVersion, nil); local packageToRemove := ObjectPkgRef(unitToRemove.exportTable); return if packageToRemove <> ObjectPkgRef('foo) then kUnitRemovalApprovalString; end);