static void init_release_level (void) { char *char_ptr; int length; char *location; char new_release[RELEASE_LEVEL_LEN]; int str_idx; FILE *release_file_ptr; char *version_string_location = "COMPILER"; TRACE (Func_Entry, "init_release_level", NULL); location = getenv(version_string_location); if (location != NULL) { length = WORD_LEN(strlen(location) + 14); str_idx = str_pool_idx; TBL_REALLOC_CK(str_pool, length); strcpy(&str_pool[str_idx].name_char, location); char_ptr = strrchr(&str_pool[str_idx].name_char, SLASH); if (char_ptr == NULL) { release_file_ptr = fopen("version.string", "r"); } else { strcpy(++char_ptr, "version.string"); release_file_ptr = fopen(&str_pool[str_idx].name_char, "r"); } /* If not found - default to initial value in release_level #.x.x.x */ if (release_file_ptr != NULL) { fgets(new_release, RELEASE_LEVEL_LEN, release_file_ptr); if (new_release != NULL) { char_ptr = strrchr(new_release, NEWLINE); *char_ptr = EOS; strcpy(release_level, new_release); } } str_pool_idx = str_idx; } TRACE (Func_Exit, "init_release_level", NULL); return; } /* init_release_level */
void read_global_line_table() { int i, found, idx; long length, lengthp; long global_line; long file_line; char file_name[1024]; long file_name_idx; long cif_file_id; long file_name_len; long incld_file_line; long incld_file_col; char path_name[1024]; long path_name_idx; long path_name_len; long source_lines; long num_global_lines; static int last_global_line_idx = 0; setLongVar("num_global_lines", &num_global_lines); TBL_REALLOC_CK (global_line_tbl, num_global_lines); for (i = last_global_line_idx + 1; i <= num_global_lines + last_global_line_idx; i++) { curr_glb_line = i; setLongVar("global_line", &global_line); setLongVar("file_line", &file_line); setStrVar("file_name", file_name); trim(file_name); setLongVar("file_name_idx", &file_name_idx); setLongVar("cif_file_id", &cif_file_id); setLongVar("file_name_len", &file_name_len); setLongVar("incld_file_line", &incld_file_line); setLongVar("incld_file_col", &incld_file_col); setStrVar("path_name", path_name); trim(path_name); setLongVar("path_name_idx", &path_name_idx); setLongVar("path_name_len", &path_name_len); setLongVar("source_lines", &source_lines); global_line_tbl[i].global_line = global_line; global_line_tbl[i].file_line = file_line; global_line_tbl[i].cif_file_id = cif_file_id; /* Clear the field. It gets set at EOF of each file. */ /* It also holds a running total of file lines at each end statement */ /* because of mif inflexibility. */ global_line_tbl[i].source_lines = source_lines; global_line_tbl[i].incld_file_line = incld_file_line; global_line_tbl[i].incld_file_col = incld_file_col; /* prevent duplication of file name strings in string pool */ global_line_tbl[i].file_name_idx = 0; global_line_tbl[i].path_name_idx = 0; length = file_name_len; lengthp = path_name_len; /* check for file name already in the string pool */ if (global_line_tbl[i].file_name_idx == 0) { global_line_tbl[i].file_name_len = length; global_line_tbl[i].file_name_idx = str_pool_idx+1; TBL_REALLOC_CK(str_pool, WORD_LEN(length)); for (idx = global_line_tbl[i].file_name_idx; idx <= str_pool_idx; idx++) { str_pool[idx].name_long = 0; } strcpy(&str_pool[global_line_tbl[i].file_name_idx].name_char, file_name); } if (global_line_tbl[i].path_name_idx == 0) { global_line_tbl[i].path_name_len = lengthp; global_line_tbl[i].path_name_idx = str_pool_idx+1; TBL_REALLOC_CK(str_pool, WORD_LEN(lengthp)); for (idx = global_line_tbl[i].path_name_idx; idx <= str_pool_idx; idx++) { str_pool[idx].name_long = 0; } strcpy(&str_pool[global_line_tbl[i].path_name_idx].name_char, path_name); } } last_global_line_idx += num_global_lines; }