home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / OSKBox.lzh / MAILBOX / CC / bidclean.c < prev    next >
Text File  |  1992-01-17  |  2KB  |  107 lines

  1. /* #define DEBUG */
  2.  
  3. #include <stdio.h>
  4. #include <ctype.h>
  5. #include <direct.h>
  6. #include <setjmp.h>
  7. #include <signal.h>
  8. #include "mailbox.h"
  9.  
  10. #define headsize sizeof (struct msg_header)
  11. #define MAXBID 100
  12. #define MAXMSG 100
  13.  
  14. struct userstruct user;
  15. char bid_list[MAXBID][13];
  16. struct msg_header msg_list[MAXMSG];
  17. extern int eflag;
  18.  
  19. main (argc, argv)
  20. char *argv[];
  21. {
  22.     int day, tick;
  23.     int i, max_bid;
  24.  
  25.     chdir (HOME);
  26.     strcpy (user.uscall, "BIDCLN");
  27.     user.usopt = ISSUPER;
  28.     max_bid = read_bid ();
  29.     for (i = 0; i < max_bid; i++)
  30.         clean_bid (bid_list[i]);
  31.     }
  32.  
  33. read_bid ()
  34. {
  35.     int f;
  36.     int i, len;
  37.     char line[80];
  38.  
  39. #ifdef DEBUG
  40. printf ("read_bid\n");
  41. #endif
  42.     if ((f = open ("bidclean.lst", 1)) < 0) return (0);
  43.     for (i = 0; i < MAXBID && (len = readln (f, line, 80)); i++) {
  44.         line[len-1] = '\0';
  45.         scanword (line, bid_list + i, 13);
  46.         upper (bid_list + i);
  47. #ifdef DEBUG
  48. printf ("  %s\n", bid_list+i);
  49. #endif
  50.         }
  51.     close (f);
  52.     return (i);
  53.     }    
  54.  
  55. clean_bid (bid_pat)
  56. char *bid_pat;
  57. {
  58.     struct msg_header *head;
  59.     int i, j, pat_len, max_val;
  60.  
  61. #ifdef DEBUG
  62. int flag = 1;
  63.     eflag = 1;
  64. printf ("clean_bid (%s)\n", bid_pat);
  65. #endif
  66.     pat_len = strlen (bid_pat);
  67.     open_mail ();
  68.     i = 0;
  69.     while ((head = next_mail (is_gnum, 0)) != NULL && i < MAXMSG)
  70.         if (strncmp (bid_pat, head->mhbid, pat_len) == 0) {
  71.             movmem (head, &msg_list[i++], headsize);
  72.             }
  73. /*    if (i < 2) return; */
  74.     max_val = 0;
  75.     for (j = 0; j < i; j++) {
  76.         max_val = max (max_val, atoi ((msg_list[j].mhbid) + pat_len));
  77. #ifdef DEBUG
  78. fflush (stdout);
  79. print_header (msg_list+j, 1, flag);  flag = 0;
  80. #endif
  81.         }
  82. #ifdef DEBUG
  83. printf ("  max = %d\n", max_val);
  84. #endif
  85.     for (j = 0; j < i; j++) {
  86. #ifdef DEBUG
  87. printf ("  msg# %d val=%d\n", msg_list[j].mhnr, atoi ((msg_list[j].mhbid)+pat_len));
  88. #endif        
  89.         if (atoi ((msg_list[j].mhbid) + pat_len) < max_val) {
  90. #ifdef DEBUG
  91. printf ("      kill\n");
  92. #endif            
  93.             reset_mail ();
  94.             head = next_mail (is_num, msg_list[j].mhnr);
  95.             head->mhstat = 'X';
  96.             update_mail ();
  97.             log ("K  %d", head->mhnr);
  98.             }
  99.         }
  100.     close_mail ();
  101.     }
  102.  
  103. max (a,b)
  104. {
  105.     return ((a > b) ? a : b);
  106.     }
  107.