int parse_deltat (const char *resp, krb5_deltat *value, int *mask, int bit) { krb5_deltat tmp; if (str2deltat(resp, &tmp) == 0) { *value = tmp; if (mask) *mask |= bit; return 0; } else if(*resp == '?') { print_time_table (stderr); } else { fprintf (stderr, "Unable to parse time \"%s\"\n", resp); } return -1; }
int allocate(teacher_lec_t* tl_array, int teacher, int day, int period) { int i, j, k; if(teacher >= num_teachers) { teacher = 0; period++; } if(period >= num_periods) { period = 0; day++; } if(day >= num_days) { counter1++; print_time_table(); return 1; } if(strcmp(time_table[teacher][day][period].std, "") != 0 && strcmp(time_table[teacher][day][period].sub, "") != 0) { allocate(tl_array, teacher + 1, day, period); } else { for(i = 0; i < tl_array[teacher].num_lectures; i++) { strcpy(time_table[teacher][day][period].std, tl_array[teacher].lectures[i].std); strcpy(time_table[teacher][day][period].sub, tl_array[teacher].lectures[i].sub); if(!validateStandardConflicts(teacher, day, period)) continue; allocate(tl_array, teacher + 1, day, period); strcpy(time_table[teacher][day][period].std, ""); strcpy(time_table[teacher][day][period].sub, ""); } } return 1; }