Browse Source

inpcom.c, abstraction, new_lib()

pre-master-46
rlar 13 years ago
parent
commit
f9dca702c9
  1. 25
      src/frontend/inpcom.c

25
src/frontend/inpcom.c

@ -118,6 +118,18 @@ static void inp_poly_err(struct line *deck);
#endif
static struct library *
new_lib(void)
{
if (num_libraries >= N_LIBRARIES) {
fprintf(stderr, "ERROR, N_LIBRARIES overflow\n");
controlled_exit(EXIT_FAILURE);
}
return & libraries[num_libraries++];
}
static struct library *
find_lib(char *name)
{
@ -180,6 +192,8 @@ read_a_lib(char *y, int call_depth, char *dir_name)
if (!find_lib(y)) {
struct library *lib;
bool dir_name_flag = FALSE;
FILE *newfp = inp_pathopen(y, "r");
@ -202,19 +216,16 @@ read_a_lib(char *y, int call_depth, char *dir_name)
dir_name_flag = TRUE;
}
if (num_libraries >= N_LIBRARIES) {
fprintf(stderr, "ERROR, N_LIBRARIES overflow\n");
controlled_exit(EXIT_FAILURE);
}
lib = new_lib();
libraries[num_libraries++].name = strdup(y);
lib->name = strdup(y);
if (dir_name_flag == FALSE) {
char *y_dir_name = ngdirname(y);
libraries[num_libraries-1].deck = inp_readall(newfp, call_depth+1, y_dir_name, FALSE, FALSE);
lib->deck = inp_readall(newfp, call_depth+1, y_dir_name, FALSE, FALSE);
tfree(y_dir_name);
} else {
libraries[num_libraries-1].deck = inp_readall(newfp, call_depth+1, dir_name, FALSE, FALSE);
lib->deck = inp_readall(newfp, call_depth+1, dir_name, FALSE, FALSE);
}
fclose(newfp);

Loading…
Cancel
Save