home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / monitors / rsys / rsyssrc.lha / RSysFlush.c < prev    next >
C/C++ Source or Header  |  1993-08-22  |  2KB  |  119 lines

  1. /*
  2. ***************************************************************************
  3. *
  4. * Datei:
  5. *      RSysFlush.c
  6. *
  7. * Inhalt:
  8. *
  9. *      --- Globale Routinen ---
  10. *
  11. *    void RSysFlushAll ( void );
  12. *    void RSysFlushAllFonts ( void );
  13. *    void RSysFlushAllLibraries ( void );
  14. *
  15. *      --- Lokale  Routinen ---
  16. *
  17. *
  18. * Bemerkungen:
  19. *      Speicherfreigabe durch Beseitigen von nicht benutzten
  20. *      Fonts und Libraries.
  21. *
  22. * Erstellungsdatum:
  23. *      07-Jul-93     Rolf Böhme
  24. *
  25. * Änderungen:
  26. *      07-Jul-93     Rolf Böhme      Erstellung
  27. *
  28. ***************************************************************************
  29. */
  30.  
  31. #include "RSys.h"
  32.  
  33.     /*
  34.      * FlushAllLibraries() entfernt alle geschlossenen Libraries aus
  35.      * dem System
  36.      */
  37. void
  38. RSysFlushAllLibraries(void)
  39. {
  40.     struct Library *result;
  41.     struct Node *node;
  42.  
  43.    HandleHelp(MN_RSysFlushAllLibraries);
  44.  
  45.     if (Question(SysWnd, "Do you really want to remove all unused  Libraries?", YES))
  46.     {
  47.         Forbid();
  48.  
  49.         for (node = SysBase->LibList.lh_Head; node->ln_Succ;
  50.               node = node->ln_Succ)
  51.         {
  52.             result = (struct Library *) node;
  53.  
  54.             if (result->lib_OpenCnt == 0)
  55.                 RemLibrary(result);
  56.         }
  57.  
  58.         Permit();
  59.  
  60.         PrintInfo("All libraries flushed", SPEAK, SEC);
  61.  
  62.         RefreshList(LastID);
  63.  
  64.         PrintStatistics();
  65.     }
  66.  
  67.     return;
  68. }
  69.  
  70.  
  71.     /*
  72.      * RSysFlushAllFonts() entfernt alle unbenutzten Diskfonts aus
  73.      * dem System
  74.      */
  75. void
  76. RSysFlushAllFonts(void)
  77. {
  78.     struct TextFont *tf;
  79.     struct Node *node;
  80.  
  81.    HandleHelp(MN_RSysFlushAllFonts);
  82.  
  83.     if (Question(SysWnd, "Do you really want to remove all unused Not-ROM-Fonts?", YES))
  84.     {
  85.         Forbid();
  86.  
  87.         for (node = GfxBase->TextFonts.lh_Head; node->ln_Succ;
  88.               node = node->ln_Succ)
  89.         {
  90.             tf = (struct TextFont *) node;
  91.  
  92.             if ((tf->tf_Accessors == 0) && (tf->tf_Flags & FPF_DISKFONT))
  93.             {
  94.                 RemFont(tf);
  95.                 Remove(node);
  96.             }
  97.         }
  98.  
  99.         Permit();
  100.  
  101.         PrintInfo("All disk fonts in RAM flushed", SPEAK, SEC);
  102.  
  103.         RefreshList(LastID);
  104.  
  105.         PrintStatistics();
  106.     }
  107.  
  108.     return;
  109. }
  110.  
  111. void
  112. RSysFlushAll(void)
  113. {
  114.     RSysFlushAllLibraries();
  115.     RSysFlushAllFonts();
  116.  
  117.     return;
  118. }
  119.