1: #include <stdio.h>
   2: FILE    *fin;
   3: int delim   = 0;
   4: /* today's version assumes no delimiters;
   5: they must be explicitly set
   6: */
   7: 
   8: main(argc, argv) char **argv; {
   9: 
  10:     while (argc > 1 && argv[1][0] == '-') {
  11:         switch (argv[1][1]) {
  12:         case 'd':
  13:             delim = argv[1][2];
  14:             break;
  15:         }
  16:         argc--;
  17:         argv++;
  18:     }
  19:     if (argc <= 1)
  20:         check(stdin);
  21:     else
  22:         while (--argc > 0) {
  23:             if ((fin = fopen(*++argv, "r")) == NULL) {
  24:                 printf("Can't open %s\n", *argv);
  25:                 exit(1);
  26:             }
  27:             printf("%s:\n", *argv);
  28:             check(fin);
  29:             fclose(fin);
  30:         }
  31: }
  32: 
  33: check(f)
  34: FILE    *f;
  35: {
  36:     int start, line, eq, ndel, totdel;
  37:     char in[600], *p;
  38: 
  39:     start = eq = line = ndel = totdel = 0;
  40:     while (fgets(in, 600, f) != NULL) {
  41:         line++;
  42:         ndel = 0;
  43:         for (p = in; *p; p++)
  44:             if (*p == delim)
  45:                 ndel++;
  46:         if (*in=='.' && *(in+1)=='E' && *(in+2)=='Q') {
  47:             if (eq++)
  48:                 printf("   Spurious EQ, line %d\n", line);
  49:             if (totdel)
  50:                 printf("   EQ in %c%c, line %d\n", delim, delim, line);
  51:         } else if (*in=='.' && *(in+1)=='E' && *(in+2)=='N') {
  52:             if (eq==0)
  53:                 printf("   Spurious EN, line %d\n", line);
  54:             else
  55:                 eq = 0;
  56:             if (totdel > 0)
  57:                 printf("   EN in %c%c, line %d\n", delim, delim, line);
  58:             start = 0;
  59:         } else if (eq && *in=='d' && *(in+1)=='e' && *(in+2)=='l' && *(in+3)=='i' && *(in+4)=='m') {
  60:             for (p=in+5; *p; p++)
  61:                 if (*p != ' ') {
  62:                     if (*p == 'o' && *(p+1) == 'f')
  63:                         delim = 0;
  64:                     else {
  65:                         delim = *p;
  66:                         ndel = totdel = 0;
  67:                     }
  68:                     break;
  69:                 }
  70:             if (delim == 0)
  71:                 printf("   Delim off, line %d\n", line);
  72:             else
  73:                 printf("   New delims %c%c, line %d\n", delim, delim, line);
  74:         }
  75:         if (ndel > 0 && eq > 0)
  76:             printf("   %c%c in EQ, line %d\n", delim, delim, line);
  77:         if (ndel == 0)
  78:             continue;
  79:         totdel += ndel;
  80:         if (totdel%2) {
  81:             if (start == 0)
  82:                 start = line;
  83:             else {
  84:                 printf("   %d line %c%c, lines %d-%d\n", line-start+1, delim, delim, start, line);
  85:                 start = line;
  86:             }
  87:         } else {
  88:             if (start > 0) {
  89:                 printf("   %d line %c%c, lines %d-%d\n", line-start+1, delim, delim, start, line);
  90:                 start = 0;
  91:             }
  92:             totdel = 0;
  93:         }
  94:     }
  95:     if (totdel)
  96:         printf("   Unfinished %c%c\n", delim, delim);
  97:     if (eq)
  98:         printf("   Unfinished EQ\n");
  99: }

Defined functions

check defined in line 33; used 2 times
main defined in line 8; never used

Defined variables

delim defined in line 3; used 19 times
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 666
Valid CSS Valid XHTML 1.0 Strict