home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 215.lha / AmyLoad / cleanup.c < prev    next >
C/C++ Source or Header  |  1996-02-14  |  1KB  |  47 lines

  1. #include    <intuition/intuition.h>
  2. #include    <devices/load.h>
  3. #include    "execdef.h"
  4. #include    "intuidef.h"
  5. #include    "windownode.h"
  6.  
  7. #include    "Cleanup.proto"
  8.  
  9. #include    <exec/proto.h>
  10.  
  11. #include    "CloseLoadWindow.proto"
  12.  
  13. extern Library *GfxBase;
  14. extern struct IntuitionBase *IntuitionBase;
  15. extern MinList windowList;
  16. extern MsgPort *windowPort;
  17. extern MsgPort *loadPort;
  18. extern loadrequest *loadRequest;
  19.  
  20. void
  21. Cleanup()
  22. {
  23.     WindowNode *windownode, *oldwindownode;
  24.  
  25.     for (windownode = (WindowNode *)windowList.mlh_Head;
  26.      windownode->node.mln_Succ; )
  27.     {
  28.     oldwindownode = windownode;
  29.     windownode = (WindowNode *)windownode->node.mln_Succ;
  30.     CloseLoadWindow(oldwindownode);
  31.     }
  32.     if (loadRequest)
  33.     {
  34.     if (loadRequest->lr_node.io_Device)
  35.         CloseDevice((IORequest *)loadRequest);
  36.     DeleteExtIO((IORequest *)loadRequest, sizeof(loadrequest));
  37.     }
  38.     if (loadPort)
  39.     DeletePort(loadPort);
  40.     if (windowPort)
  41.     DeletePort(windowPort);
  42.     if (IntuitionBase)
  43.     CloseLibrary((Library *)IntuitionBase);
  44.     if (GfxBase)
  45.     CloseLibrary(GfxBase);
  46. }
  47.