<> <> <> <> DIRECTORY CD USING [Design, Object], Rope USING [ROPE]; CDDirectoryOps: CEDAR DEFINITIONS = BEGIN <> <<>> RemoveIfUnused: PROC [design: CD.Design, ob: CD.Object] RETURNS [done: BOOL, msg: Rope.ROPE]; <<--removes ob from the directory>> <<--but succeeds only if the object is not used anywhere else in the design>> <<--msg_NIL if succeded without problem >> <<--uses CDMarks!>> PruneDirectory: PROC [design: CD.Design, autoOnly: BOOL _ FALSE, askFirst: BOOL _ FALSE]; <<--removes objects which are not used in the design from the directory>> <<--autoOnly: only objects with names starting with a special letter>> <<--askFirst makes it verbose>> <<--uses CDMarks!>> <<>> RenameNRemove: PROC [design: CD.Design, ob: CD.Object, name: Rope.ROPE]; <<--tries hard to rename ob>> <<--removes conflicting ob from directory if possible>> <<--uses CDMarks!>> END.