/* * Write a new lint library. */ void outlib(const char *name) { /* Open of output file and initialisation of the output buffer */ outopen(name); /* write name of lint library */ outsrc(name); /* name of lint lib has index 0 */ outclr(); outint(0); outchar('s'); outstrg(name); /* * print the names of all files references by unnamed * struct/union/enum declarations. */ outfiles(); /* write all definitions with external linkage */ forall(dumpname); /* close the output */ outclose(); }
/* * Write a new lint library. */ void outlib(const char *name) { /* Open of output file and initialisation of the output buffer */ outopen(name); /* write name of lint library */ outsrc(name); /* name of lint lib has index 0 */ outclr(); outint(0); outchar('s'); outstrg(name); /* write all definitions with external linkage */ forall(dumpname); /* close the output */ outclose(); }
int main(int argc, char *argv[]) { int c; char *ptr; ERR_ZERO(&msgset); while ((c = getopt(argc, argv, "abcdeghmprstuvwyzFX:")) != -1) { switch (c) { case 'a': aflag++; break; case 'b': bflag = 1; break; case 'c': cflag = 1; break; case 'd': dflag = 1; break; case 'e': eflag = 1; break; case 'F': Fflag = 1; break; case 'g': gflag = 1; break; case 'h': hflag = 1; break; case 'p': pflag = 1; break; case 'r': rflag = 1; break; case 's': sflag = 1; break; case 't': tflag = 1; break; case 'u': uflag = 0; break; case 'w': wflag = 1; break; case 'v': vflag = 0; break; case 'y': yflag = 1; break; case 'z': zflag = 0; break; case 'm': msglist(); return(0); case 'X': for (ptr = strtok(optarg, ","); ptr; ptr = strtok(NULL, ",")) { char *eptr; long msg = strtol(ptr, &eptr, 0); if ((msg == LONG_MIN || msg == LONG_MAX) && errno == ERANGE) err(1, "invalid error message id '%s'", ptr); if (*eptr || ptr == eptr || msg < 0 || msg >= ERR_SETSIZE) errx(1, "invalid error message id '%s'", ptr); ERR_SET(msg, &msgset); } break; case '?': default: usage(); break; } } argc -= optind; argv += optind; if (argc != 2) usage(); /* open the input file */ if ((yyin = fopen(argv[0], "r")) == NULL) err(1, "cannot open '%s'", argv[0]); /* initialize output */ outopen(argv[1]); if (yflag) yydebug = 1; initmem(); initdecl(); initscan(); initmtab(); yyparse(); /* Following warnings cannot be suppressed by LINTED */ nowarn = 0; chkglsyms(); outclose(); return (nerr != 0); }