DIRECTORY CommandTool, Rope, TerminalIO, UserProfile, ViewerClasses, ViewerOps; CDStarter: CEDAR PROGRAM IMPORTS CommandTool, Rope, TerminalIO, UserProfile, ViewerOps = --, Process = BEGIN StartPrograms: PROC[] = BEGIN runList: LIST OF Rope.ROPE = UserProfile.ListOfTokens[key: "ChipNDale.RunPrograms"]; FOR l: LIST OF Rope.ROPE _ runList, l.rest WHILE l#NIL DO IF NOT Rope.IsEmpty[l.first] THEN { msg: Rope.ROPE = CommandTool.Run[bcdName: l.first].errMsg; IF msg#NIL THEN TerminalIO.WriteRope[msg]; } ENDLOOP; END; MoveTerminal: PROC[] = BEGIN v: ViewerClasses.Viewer _ ViewerOps.FindViewer["Terminal"]; IF v#NIL THEN ViewerOps.ChangeColumn[v, right]; END; StartPrograms[]; IF UserProfile.Boolean["ChipNDale.TerminalStartRight", TRUE] THEN MoveTerminal[]; END. ÞCDStarter.mesa (part of ChipNDale) Copyright c 1983, 1985 by Xerox Corporation. All rights reserved. by Christian Jacobi, November 7, 1983 5:39 pm last edited Christian Jacobi, September 3, 1985 11:37:30 am PDT Process, TrojanHorse: PROC[] = BEGIN trojanHorse: Rope.ROPE = "/Cedar/ChipNDale/6.0/cd21/CDTroja"; TRUSTED {Process.SetPriority[Process.priorityBackground]}; [] _ CommandTool.Run[bcdName: trojanHorse]; END; TRUSTED {Process.Detach[FORK TrojanHorse[]]}; Êݘšœ$™$Jšœ Ïmœ7™BJšœ/™/Jšœ@™@—J˜šÏk ˜ Jšœ ˜ Jšœ™Jšœ˜Jšœ ˜ Jšœ ˜ Jšœ˜Jšœ ˜ J˜—šÏb œžœžœ˜JšžœG˜N—Jšž˜J˜šÏn œžœ˜Jšž˜Jšœ žœžœžœ:˜Tš žœžœžœžœžœžœž˜9šžœžœžœ˜#Jšœ žœ,˜:Jšžœžœžœ˜*Jšœ˜—Jšžœ˜—Jšžœ˜—J˜š  œžœ™Jšž™Jšœžœ'™=Jšžœ3™:Jšœ+™+Jšžœ™—J™š  œžœ˜Jšž˜Jšœ;˜;Jšžœžœžœ"˜/Jšžœ˜—J˜Jšœ˜Jšžœ5žœžœ˜QJšžœžœ™-Jšžœ˜J˜J˜—…—Á