DIRECTORY CD, CDSequencer, Rope USING [ROPE]; CDCommandOps: CEDAR DEFINITIONS = BEGIN TheApplication: PROC[comm: CDSequencer.Command, text: Rope.ROPE_NIL] RETURNS [aptr: CD.ApplicationPtr]; ImplementSpecificCommand: PROC [specificAtom: ATOM, text: Rope.ROPE_NIL, tipBase: Rope.ROPE_NIL, useFor: Rope.ROPE_NIL, x: REF_NIL, technology: CD.Technology_NIL]; WriteInfo: PROC[aptr: CD.ApplicationPtr, verbosity: INT_1]; RedrawApplication: PROC[design: CD.Design, aptr: CD.ApplicationPtr_NIL, erase: BOOL_TRUE]; CallWithResource: PROC [proc: PROC[CDSequencer.Command], comm: CDSequencer.Command, resource: REF, abortFlag: REF BOOL_NIL] RETURNS [skipped: BOOL]; IsPushedIn: PROC [design: CD.Design] RETURNS [yes: BOOL] = INLINE { RETURN [ design^.actual.rest#NIL ] }; END. .CDCommandOps.mesa (part of ChipNDale) Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. by Christian Jacobi, July 12, 1984 3:46:45 pm PDT last edited by Christian Jacobi, April 11, 1985 12:28:36 pm PST --Various tools to ease implementing commands --extracts the application given a command --if returned application is nil, all the messages are made and caller should return quiet; --if returned application is not nil; text line is written and object is there --Implements a command which is executed by using CDCallSpecific --specificAtom: handled through to select CDCallSpecific command --text: logged; defaults to tipBase --tipBase: How command is called in tiptable; defaults to specificAtom --useFor: Suffix letters appended to tipBase getting the tip table entry --x: handled through to CDCallSpecific --technology: NIL => all technologies --command will be queued and changeflag will be set --Monitoring commands using global resources --proc will be called with comm as parameter, but is skipped if resource is already in use --resource: typically atom; every resource is called only once at a time --abortFlag: will be set to TRUE if an abort event occurs while execution of proc --the procedure message on Terminal if it skipped the call, or, if abortFlag is true on return ʘšœ,™,Jšœ Ïmœ7™BJšœ2™2Jšœ?™?—J˜šÏk ˜ Jšžœ˜Jšœ ˜ Jšœžœžœ˜J˜—JšÏb œžœž œ˜!Jšž˜Jšœ-™-J˜š Ïnœžœ'žœžœžœžœ˜gJ™*Jšœ[™[JšœN™N—J˜š œžœžœ žœžœžœžœžœžœžœžœžœ žœ˜£Jšœ@™@Jšœ@™@Jšœ#™#JšœF™FJšœH™HJšœ&™&Jšœ%™%J™3—J˜Jš  œžœžœžœ˜;J˜Jš œžœ žœžœžœ žœžœ˜ZJ˜š œžœžœ<žœ žœžœžœžœ žœ˜”Jšœ.™.Jšœ\™\JšœH™HJšœQ™QJšœa™a—J˜š   œžœ žœ žœžœžœ˜CJšžœžœ˜"Jšœ˜—J˜J˜Jšžœ˜J˜—…— :