home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / C / CDEP / CDEP.C next >
C/C++ Source or Header  |  1991-02-04  |  1KB  |  64 lines

  1. #include    <stdio.h>
  2. #include    <rwlib.h>
  3.  
  4. char searchstr[] = "\n#include";
  5. char fname[256];
  6.  
  7. main (int argc,char **argv)
  8. {
  9.     FILE *f;
  10.     int i;
  11.     if (argc == 1)
  12.         perr ("cdep v1.0 by Russell Wallace  " __DATE__ "\n"
  13.                 "Generates dependency reports for C source files\n"
  14.                 "Usage: cdep <source files>");
  15.     for (i=1 ; i<argc ; i++)
  16.     {
  17.         f = Fopen (argv[i],"r");
  18.         int doneinputfname = FALSE;
  19.         int j,c;
  20.         j = 1;
  21.         while ((c = fgetc (f)) != EOF)
  22.             if (c == searchstr[j])
  23.             {
  24.                 j++;
  25.                 if (!searchstr[j])
  26.                 {
  27.                     do
  28.                         c = fgetc (f);
  29.                     while (c != EOF && c != '"' && c != '\n');
  30.                     if (c != EOF)
  31.                     {
  32.                         if (c == '\n')
  33.                             j = 1;
  34.                         else
  35.                         {
  36.                             j = 0;
  37.                             do
  38.                                 fname[j++] = c = fgetc (f);
  39.                             while (c != EOF && c != '"');
  40.                             fname[j-1] = 0;
  41.                             if (!doneinputfname)
  42.                             {
  43.                                 printf ("%s:",argv[i]);
  44.                                 doneinputfname = TRUE;
  45.                             }
  46.                             printf (" %s",fname);
  47.                             if (c == EOF)
  48.                                 break;
  49.                             j = 0;
  50.                         }
  51.                     }
  52.                     else
  53.                         break;
  54.                 }
  55.             }
  56.             else
  57.                 j = 0;
  58.         if (doneinputfname)
  59.             putchar ('\n');
  60.         fclose (f);
  61.     }
  62.     return 0;
  63. }
  64.