static void do_file(char *name) { if (name && !strcmp(name,"-")) name = NULL; set_file(name ? name : "<stdin>"); if (!name) if (dup2(fd0,0) < 0) { perror("dup2"); exit(1); } if (allow_extensions) { int i; for (i = 0; i != cpp_options*2; i++) add_cpp_arg(cpp_option[i]); add_cpp_arg("-I"); add_cpp_arg(INSTALL_PREFIX "/share/m8cutils/include"); run_cpp_on_file(name); } else { int fd; if (name) { fd = open(name,O_RDONLY); if (fd < 0) { perror(name); exit(1); } if (dup2(fd,0) < 0) { perror("dup2"); exit(1); } } } id_begin_file(); (void) yyparse(); id_end_file(); remove_macros(); if (allow_extensions) reap_cpp(); }
void parse_cpp_name (void) { char *n; if (!cpp_name) return; n = strdup (cpp_name); while (*n) { while (*n && *n == ' ') n++; add_cpp_arg (n); while (*n && *n != ' ') n++; if (*n) *n++ = 0; } }