argv[argc++] = "-c";
if (cflags != NULL)
- snprintf(cmd, sizeof(cmd), "%s %s -E %s", preproc, cflags, file);
+ snprintf(cmd, sizeof(cmd), "%s %s -E -P %s", preproc, cflags, file);
else
- snprintf(cmd, sizeof(cmd), "%s -E %s", preproc, file);
+ snprintf(cmd, sizeof(cmd), "%s -E -P %s", preproc, file);
argv[argc++] = cmd;
argv[argc] = NULL;
/* extract path name from preprocessor line-markers */
case '#':
+ if (input_read(in) == 'p') { /* p for pragma */
+ while((ch = input_read(in)) != '\n' && ch) {}
+ break;
+ }
+ /* not pragma, assume linemarker */
v = input_parse_linemarker(in, path, sizeof(path));
if (v != NULL) {
tokens[n].type = TOKEN_LINEMARKER;