Example #1
0
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 */
Example #2
0
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;

}