|
@@ -445,52 +445,53 @@ static void parse_file(FILE *infile)
|
|
char line[MAXLINESZ];
|
|
char line[MAXLINESZ];
|
|
char * s;
|
|
char * s;
|
|
while (fgets(line, MAXLINESZ, infile)) {
|
|
while (fgets(line, MAXLINESZ, infile)) {
|
|
- if (line[0] == '!') {
|
|
|
|
- s = line + 2;
|
|
|
|
- switch (line[1]) {
|
|
|
|
- case 'E':
|
|
|
|
- while (*s && !isspace(*s)) s++;
|
|
|
|
- *s = '\0';
|
|
|
|
- externalfunctions(line+2);
|
|
|
|
- break;
|
|
|
|
- case 'I':
|
|
|
|
- while (*s && !isspace(*s)) s++;
|
|
|
|
- *s = '\0';
|
|
|
|
- internalfunctions(line+2);
|
|
|
|
- break;
|
|
|
|
- case 'D':
|
|
|
|
- while (*s && !isspace(*s)) s++;
|
|
|
|
- *s = '\0';
|
|
|
|
- symbolsonly(line+2);
|
|
|
|
- break;
|
|
|
|
- case 'F':
|
|
|
|
- /* filename */
|
|
|
|
- while (*s && !isspace(*s)) s++;
|
|
|
|
- *s++ = '\0';
|
|
|
|
- /* function names */
|
|
|
|
- while (isspace(*s))
|
|
|
|
- s++;
|
|
|
|
- singlefunctions(line +2, s);
|
|
|
|
- break;
|
|
|
|
- case 'P':
|
|
|
|
- /* filename */
|
|
|
|
- while (*s && !isspace(*s)) s++;
|
|
|
|
- *s++ = '\0';
|
|
|
|
- /* DOC: section name */
|
|
|
|
- while (isspace(*s))
|
|
|
|
- s++;
|
|
|
|
- docsection(line + 2, s);
|
|
|
|
- break;
|
|
|
|
- case 'C':
|
|
|
|
- while (*s && !isspace(*s)) s++;
|
|
|
|
- *s = '\0';
|
|
|
|
- if (findall)
|
|
|
|
- findall(line+2);
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- defaultline(line);
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
|
|
+ if (line[0] != '!') {
|
|
|
|
+ defaultline(line);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ s = line + 2;
|
|
|
|
+ switch (line[1]) {
|
|
|
|
+ case 'E':
|
|
|
|
+ while (*s && !isspace(*s)) s++;
|
|
|
|
+ *s = '\0';
|
|
|
|
+ externalfunctions(line+2);
|
|
|
|
+ break;
|
|
|
|
+ case 'I':
|
|
|
|
+ while (*s && !isspace(*s)) s++;
|
|
|
|
+ *s = '\0';
|
|
|
|
+ internalfunctions(line+2);
|
|
|
|
+ break;
|
|
|
|
+ case 'D':
|
|
|
|
+ while (*s && !isspace(*s)) s++;
|
|
|
|
+ *s = '\0';
|
|
|
|
+ symbolsonly(line+2);
|
|
|
|
+ break;
|
|
|
|
+ case 'F':
|
|
|
|
+ /* filename */
|
|
|
|
+ while (*s && !isspace(*s)) s++;
|
|
|
|
+ *s++ = '\0';
|
|
|
|
+ /* function names */
|
|
|
|
+ while (isspace(*s))
|
|
|
|
+ s++;
|
|
|
|
+ singlefunctions(line +2, s);
|
|
|
|
+ break;
|
|
|
|
+ case 'P':
|
|
|
|
+ /* filename */
|
|
|
|
+ while (*s && !isspace(*s)) s++;
|
|
|
|
+ *s++ = '\0';
|
|
|
|
+ /* DOC: section name */
|
|
|
|
+ while (isspace(*s))
|
|
|
|
+ s++;
|
|
|
|
+ docsection(line + 2, s);
|
|
|
|
+ break;
|
|
|
|
+ case 'C':
|
|
|
|
+ while (*s && !isspace(*s)) s++;
|
|
|
|
+ *s = '\0';
|
|
|
|
+ if (findall)
|
|
|
|
+ findall(line+2);
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
defaultline(line);
|
|
defaultline(line);
|
|
}
|
|
}
|
|
}
|
|
}
|