storage->families = NULL;
storage->families_no = 0;
- _familia_storage_positions_init();
+/* _familia_storage_positions_init();*/
return storage;
}
storage->families_no = 0;
}
- _familia_storage_positions_free();
+/* _familia_storage_positions_free();*/
}
void familia_storage_add_individual(struct familia_storage * storage, struct familia_individual * individual)
tmp = realloc(storage->individuals, size * sizeof(struct familia_individual *));
if (tmp) {
+ individual->id = storage->individuals_no;
storage->individuals = tmp;
storage->individuals[storage->individuals_no] = individual;
storage->individuals_no++;
tmp = realloc(storage->families, size * sizeof(struct familia_family *));
if (tmp) {
+ family->id = storage->families_no;
storage->families = tmp;
storage->families[storage->families_no] = family;
storage->families_no++;
void familia_storage_dump_all()
{
- int i;
+ unsigned int i;
struct familia_storage * storage = NULL;
struct familia_family * family = NULL;
struct familia_individual * individual = NULL;
+ struct familia_individual * i1 = NULL;
+ struct familia_individual * i2 = NULL;
storage = familia_storage_get_current();
for (i = 0; i < storage->individuals_no; i++) {
+ struct familia_family * f = NULL;
+
individual = storage->individuals[i];
+
printf("Individual (%d)\n", individual->id);
printf("\t First name: %s\n", individual->first_name);
printf("\t Last name: %s\n", individual->last_name);
+
if (individual->families_no > 0) {
- int j;
- struct familia_family * f = NULL;
- struct familia_individual * i1 = NULL;
- struct familia_individual * i2 = NULL;
+ unsigned int j;
printf("\t Families:\n");
for (j = 0; j < individual->families_no; j++) {
f = individual->families[j];
- i1 = familia_family_get_individual(f, Individual1);
- i2 = familia_family_get_individual(f, Individual2);
+ i1 = familia_family_get_parent(f, Individual1);
+ i2 = familia_family_get_parent(f, Individual2);
- printf("\t > %s&%s\n", familia_individual_get_first_name(i1), familia_individual_get_first_name(i2));
+ printf("\t > %s&%s\n",
+ i1 ? familia_individual_get_first_name(i1) : "NULL",
+ i2 ? familia_individual_get_first_name(i2) : "NULL");
}
- printf("\t Parents:\n");
- f = familia_individual_get_parents(individual);
- i1 = familia_family_get_individual(f, Individual1);
- i2 = familia_family_get_individual(f, Individual2);
-
- printf("\t > %s&%s\n", familia_individual_get_first_name(i1), familia_individual_get_first_name(i2));
+ }
+
+ printf("\t Parents:\n");
+ f = NULL;
+ f = familia_individual_get_parents(individual);
+
+ if (f) {
+ i1 = familia_family_get_parent(f, Individual1);
+ i2 = familia_family_get_parent(f, Individual2);
+
+ printf("\t > %s&%s\n",
+ i1 ? familia_individual_get_first_name(i1) : "NULL",
+ i2 ? familia_individual_get_first_name(i2) : "NULL");
+ }
+ else {
+ printf("\t (none)\n");
}
}
for (i = 0; i < storage->families_no; i++) {
- int j;
- struct familia_individual * i1 = NULL;
- struct familia_individual * i2 = NULL;
+ unsigned int j;
family = storage->families[i];
printf("Family (%d)\n", family->id);
- i1 = familia_family_get_individual(family, Individual1);
- i2 = familia_family_get_individual(family, Individual2);
- printf("\t First parent: %s\n", familia_individual_get_first_name(i1));
- printf("\t Second parent: %s\n", familia_individual_get_first_name(i2));
+ i1 = familia_family_get_parent(family, Individual1);
+ printf("\t First parent: %s\n", i1 ? familia_individual_get_first_name(i1) : "NULL");
+
+ i2 = familia_family_get_parent(family, Individual2);
+ printf("\t Second parent: %s\n", i2 ? familia_individual_get_first_name(i2) : "NULL");
printf("\t Children:\n");
if (family->children_no > 0) {
for (j = 0; j < family->children_no; j++) {
i1 = family->children[j];
- printf("\t > %s\n", familia_individual_get_first_name(i1));
+ printf("\t > %s\n", i1 ? familia_individual_get_first_name(i1) : "NULL");
}
}
}