DIRECTORY Buttons USING[ ButtonProc, Create ], EditToolPrivate USING[ mainToolInfo, DoButton ], Rope USING[ ROPE ], ViewerTools USING [SetContents]; MultiSub: CEDAR MONITOR IMPORTS Buttons, EditToolPrivate, ViewerTools = BEGIN Substitute: PROC[target, source: Rope.ROPE] = BEGIN ViewerTools.SetContents[EditToolPrivate.mainToolInfo.targetArg, target]; ViewerTools.SetContents[EditToolPrivate.mainToolInfo.sourceArg, source]; EditToolPrivate.DoButton[redList: LIST[$DoSubstitute]]; END; DoMultiSub: ENTRY Buttons.ButtonProc = BEGIN Substitute["Environment", "PrincOps"]; Substitute["PSB", "PrincOps"]; Substitute["Inline", "PrincOpsUtils"]; Substitute["Runtime", "PrincOpsUtils"]; Substitute["Frame", "PrincOpsUtils"]; Substitute["ProcessInternal", "PrincOpsUtils"]; Substitute["SystemInternal", "NSAddress"]; Substitute["BodyDefs", "GVBasics"]; Substitute["NameInfoDefs", "GVNames"]; Substitute["LocateDefs", "GVLocate"]; Substitute["ProtocolDefs", "GVProtocol"]; Substitute["RetrieveDefs", "GVRetrieve"]; Substitute["RetrieveXDefs", "GVRetrieveInternal"]; Substitute["SendDefs", "GVSend"]; END; [] _ Buttons.Create[info: [name: "MultiSub"], proc: DoMultiSub]; END. :MultiSub.mesa Andrew Birrell May 19, 1983 3:44 pm Ê!˜Jšœ ™ J™$J˜šÏk ˜ Jšœœ˜$Jšœœ˜0Jšœœœ˜Jšœ œ˜ —J˜šœ œ˜Jšœ(˜/—J˜Jš˜J˜šÏn œœœ˜-Jš˜J˜HJ˜HJšœ"œ˜7Jšœ˜—J˜šœ œ˜&Jš˜J˜&J˜J˜&J˜'J˜%J˜/J˜J˜*J˜J˜#J˜&J˜%J˜)J˜)J˜2J˜!J˜Jšœ˜—J˜J˜@J˜Jšœ˜J˜—…—šõ