[BACK]Return to maketab.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / awk

Diff for /src/usr.bin/awk/maketab.c between version 1.4 and 1.5

version 1.4, 2001/09/08 00:12:40 version 1.5, 2002/07/04 02:38:58
Line 126 
Line 126 
                 names[i] = "";                  names[i] = "";
   
         if ((fp = fopen("ytab.h", "r")) == NULL) {          if ((fp = fopen("ytab.h", "r")) == NULL) {
                 fprintf(stderr, "maketab can't open ytab.h!\n");                  fprintf(stderr, "maketab: can't open ytab.h!\n");
                 exit(1);                  exit(1);
         }          }
         printf("static char *printname[%d] = {\n", SIZE);          printf("static char *printname[%d] = {\n", SIZE);
         i = 0;          i = 0;
         while (fgets(buf, sizeof buf, fp) != NULL) {          while (fgets(buf, sizeof buf, fp) != NULL) {
                 n = sscanf(buf, "%1c %s %s %d", &c, def, name, &tok);                  n = sscanf(buf, "%1c %s %s %d", &c, def, name, &tok);
                 if (c != '#' || (n != 4 && strcmp(def,"define") != 0))  /* not a valid #define */                  if (c != '#' || (n != 4 && strcmp(def,"define") != 0))
                         continue;                          continue;       /* not a valid #define */
                 if (tok < FIRSTTOKEN || tok > LASTTOKEN) {                  if (tok < FIRSTTOKEN || tok > LASTTOKEN) {
                         fprintf(stderr, "maketab funny token %d %s ignored\n", tok, buf);                          fprintf(stderr, "maketab: funny token %d %s ignored\n",
                               tok, buf);
                         continue;                          continue;
                 }                  }
                 names[tok-FIRSTTOKEN] = (char *) malloc(strlen(name)+1);                  names[tok-FIRSTTOKEN] = (char *) strdup(name);
                 strcpy(names[tok-FIRSTTOKEN], name);                  if (names[tok-FIRSTTOKEN] == NULL) {
                           fprintf(stderr, "maketab: out of memory\n");
                           exit(1);
                   }
                 printf("\t(char *) \"%s\",\t/* %d */\n", name, tok);                  printf("\t(char *) \"%s\",\t/* %d */\n", name, tok);
                 i++;                  i++;
         }          }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5