home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ICCTEE.ZIP / ICCTEE.C next >
C/C++ Source or Header  |  1992-10-07  |  2KB  |  92 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX_STRINGS 50 
  6.  
  7. unsigned char * tStringToIgnore[MAX_STRINGS] ;
  8. int    nStringToCheck = 0 ;
  9.  
  10. int CheckLine(unsigned char * line)
  11. {
  12.   int i;
  13.  
  14.   if (!nStringToCheck)
  15.     return 1 ;
  16.   
  17.   if (strstr(line,"warning EDC")==NULL)
  18.     return 1 ;
  19.  
  20.   for (i=0 ; i<nStringToCheck ; i++)
  21.     if (strstr(line,tStringToIgnore[i])!=NULL)
  22.       return 0 ;
  23.  
  24.   return 1 ;
  25. }
  26.  
  27. main(int argc,char * argv[])
  28. {
  29.   FILE * fileOut=(FILE *)0;
  30.   int    errFound = 0 ;
  31.   int    i ;
  32.  
  33.   if (argc<2)
  34.     {
  35.     fprintf(stderr,"Usage:\n\t%s filename [warning number] ...\n\n",argv[0]);
  36.     exit(-2);
  37.     }
  38.  
  39.   /*
  40.   ** if the first argument is a - don't perform the TEE function
  41.   */
  42.  
  43.   if (strcmp(argv[1],"-")!=0)
  44.     {
  45.     fileOut=fopen(argv[1],"w");
  46.     if (!fileOut)
  47.       {
  48.       fprintf(stderr,"Can't open <%s>\n",argv[1]);
  49.       exit(-3);
  50.       }
  51.     }
  52.  
  53.   /*
  54.   ** read all warning to disable
  55.   */
  56.  
  57.   for (i=2 ; i<argc ; i++)  /* ok ok there is better but quick and dirty */
  58.     {
  59.     if (strcmp(argv[i],"SOM")==0)
  60.       {
  61.       tStringToIgnore[nStringToCheck++]="EDC0811";
  62.       tStringToIgnore[nStringToCheck++]="EDC0805";
  63.       tStringToIgnore[nStringToCheck++]="somInitializeClass";
  64.       }
  65.     else
  66.       tStringToIgnore[nStringToCheck++]=argv[i];
  67.     }
  68.  
  69.   while (!feof(stdin))
  70.     {
  71.     unsigned char line[1000];
  72.     if (fgets(line,sizeof(line),stdin))
  73.       {
  74.       if (CheckLine(line))
  75.         {
  76.         if (fileOut)
  77.           fputs(line,fileOut);
  78.         fputs(line,stdout);
  79.         }
  80.  
  81.       /*
  82.       ** check for the string "error"
  83.       */
  84.       if (!errFound && (strstr(line,"error EDC")!=NULL))
  85.         errFound = 1 ;
  86.       }
  87.     }
  88.   if (fileOut)
  89.     fclose(fileOut);
  90.   return(errFound ? -1 : 0);
  91. }
  92.