home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / XGRP_000.SZH / CLEANUP.C < prev    next >
C/C++ Source or Header  |  1991-05-20  |  2KB  |  59 lines

  1. #include "xgroup.h"
  2.  
  3. /* external var references */
  4.  
  5. extern GROUP    *group;
  6. extern CONTROLS control;
  7. extern ADDR     *myaddr;
  8. extern char     *groupin;
  9. extern char     *groupout;
  10. extern char     *grouphold;
  11. extern char     *msgdir;
  12. extern char     *outbound;
  13. extern char     *inbound;
  14. extern char     *archive;
  15. extern char     *unarchive;
  16. extern word     packsize;
  17. extern word     netarea;
  18. extern char     buffer[1024];
  19.  
  20.  
  21.  
  22. void _fastcall clean_up (void) {
  23.  
  24.     FILEFINDBUF f;
  25.     int         search_handle,num_matches;
  26.     struct stat st;
  27.     GROUP       *currgroup;
  28.     char        *p;
  29.  
  30.  
  31.     currgroup = group;
  32.     while(currgroup) {
  33.         if(!currgroup->numdays) {
  34.             currgroup = currgroup->next;
  35.         }
  36.         sprintf(buffer,"%s/%s.*",groupout,currgroup->id);
  37.         search_handle = 1;  /* for bound purposes */
  38.         num_matches = 1;
  39.         if(!DosFindFirst(buffer,&search_handle,0,&f,
  40.           sizeof(FILEFINDBUF),&num_matches,0L)) {
  41.             do {
  42.                 p = strrchr(f.achName,'.');
  43.                 if(!p) continue;    /* can't be group file */
  44.                 p++;
  45.                 if(ext_reserved(p)) continue;   /* reserved extension */
  46.                 sprintf(buffer,"%s/%s",groupout,f.achName);
  47.                 if(stat(buffer,&st)) st.st_mtime = time(NULL);
  48.                 if((st.st_mtime / 84000L) < ((time(NULL) / 84000L) - (long)currgroup->numdays)) {
  49.                     unlink(buffer);
  50.                 }
  51.                 num_matches = 1;
  52.             } while(!DosFindNext(search_handle,&f,sizeof(FILEFINDBUF),
  53.                     &num_matches));
  54.             DosFindClose(search_handle);
  55.         }
  56.         currgroup = currgroup->next;
  57.     }
  58. }
  59.