static void create_file_names(void) { size_t len; const char *defines_suffix; const char *externs_suffix; char *prefix; prefix = NULL; defines_suffix = DEFINES_SUFFIX; externs_suffix = EXTERNS_SUFFIX; /* compute the file_prefix from the user provided output_file_name */ if (output_file_name != 0) { if (!(prefix = strstr(output_file_name, ".tab.c")) && (prefix = strstr(output_file_name, ".c"))) { defines_suffix = ".h"; externs_suffix = ".i"; } } if (prefix != NULL) { len = (size_t) (prefix - output_file_name); file_prefix = (char *)MALLOC(len + 1); NO_SPACE(file_prefix); strncpy(file_prefix, output_file_name, len)[len] = 0; } else len = strlen(file_prefix); /* if "-o filename" was not given */ if (output_file_name == 0) { oflag = 1; CREATE_FILE_NAME(output_file_name, OUTPUT_SUFFIX); } if (rflag) { CREATE_FILE_NAME(code_file_name, CODE_SUFFIX); } else code_file_name = output_file_name; if (dflag) { CREATE_FILE_NAME(defines_file_name, defines_suffix); } if (iflag) { CREATE_FILE_NAME(externs_file_name, externs_suffix); } if (vflag) { CREATE_FILE_NAME(verbose_file_name, VERBOSE_SUFFIX); } if (gflag) { CREATE_FILE_NAME(graph_file_name, GRAPH_SUFFIX); } if (prefix != NULL) { FREE(file_prefix); } }
static void create_file_names(void) { size_t len; const char *defines_suffix; const char *externs_suffix; char *prefix; prefix = NULL; defines_suffix = DEFINES_SUFFIX; externs_suffix = EXTERNS_SUFFIX; /* compute the file_prefix from the user provided output_file_name */ if (output_file_name != 0) { if (!(prefix = strstr(output_file_name, ".tab.c")) && (prefix = strstr(output_file_name, ".c"))) { defines_suffix = ".h"; externs_suffix = ".i"; } } if (prefix != NULL) { len = (size_t) (prefix - output_file_name); file_prefix = MALLOC(len + 1); NO_SPACE(file_prefix); strncpy(file_prefix, output_file_name, len)[len] = 0; } else len = strlen(file_prefix); /* if "-o filename" was not given */ if (output_file_name == 0) { oflag = 1; CREATE_FILE_NAME(output_file_name, OUTPUT_SUFFIX); } if (rflag) { CREATE_FILE_NAME(code_file_name, CODE_SUFFIX); } else code_file_name = output_file_name; if (dflag) { if (explicit_file_name) { char *suffix; defines_file_name = strdup(output_file_name); if (defines_file_name == 0) no_space(); /* does the output_file_name have a known suffix */ suffix = strrchr(output_file_name, '.'); if (suffix != 0 && (!strcmp(suffix, ".c") || /* good, old-fashioned C */ !strcmp(suffix, ".C") || /* C++, or C on Windows */ !strcmp(suffix, ".cc") || /* C++ */ !strcmp(suffix, ".cxx") || /* C++ */ !strcmp(suffix, ".cpp"))) /* C++ (Windows) */ { strncpy(defines_file_name, output_file_name, suffix - output_file_name + 1); defines_file_name[suffix - output_file_name + 1] = 'h'; defines_file_name[suffix - output_file_name + 2] = 0; } else { fprintf(stderr,"%s: suffix of output file name %s" " not recognized, no -d file generated.\n", myname, output_file_name); dflag = 0; free(defines_file_name); defines_file_name = 0; } } else { CREATE_FILE_NAME(defines_file_name, defines_suffix); } } if (iflag) { CREATE_FILE_NAME(externs_file_name, externs_suffix); } if (vflag) { CREATE_FILE_NAME(verbose_file_name, VERBOSE_SUFFIX); } if (gflag) { CREATE_FILE_NAME(graph_file_name, GRAPH_SUFFIX); } if (prefix != NULL) { FREE(file_prefix); } }
static void create_file_names(void) { register int len; register char *defines_suffix; register char *prefix; prefix = NULL; defines_suffix = DEFINES_SUFFIX; /* compute the file_prefix from the user provided output_file_name */ if (output_file_name != 0) { defines_suffix = ".h"; if (!(prefix = is_suffix(output_file_name, ".cpp"))) prefix = is_suffix(output_file_name, ""); } if (prefix != NULL) { len = prefix - output_file_name; file_prefix = (char *)MALLOC(len + 1); if (file_prefix == 0) no_space(); strncpy(file_prefix, output_file_name, len)[len] = 0; } else len = strlen(file_prefix); /* if "-o filename" was not given */ if (output_file_name == 0) { oflag = 1; CREATE_FILE_NAME(output_file_name, OUTPUT_SUFFIX); } if (rflag) { CREATE_FILE_NAME(code_file_name, CODE_SUFFIX); } else code_file_name = output_file_name; if (dflag) { CREATE_FILE_NAME(defines_file_name, defines_suffix); } if (vflag) { CREATE_FILE_NAME(verbose_file_name, VERBOSE_SUFFIX); } if (gflag) { CREATE_FILE_NAME(graph_file_name, GRAPH_SUFFIX); } if (prefix != NULL) { FREE(file_prefix); } create_temp_name(&text_file_name, output_file_name, ".byacc.text"); create_temp_name(&union_file_name, output_file_name, ".byacc.union"); create_temp_name(&action_file_name, output_file_name, ".byacc.action"); }