| 374 | } |
| 375 | |
| 376 | static void init_structure_mac(const disk_t *disk_car,list_part_t *list_part, const int verbose) |
| 377 | { |
| 378 | list_part_t *element; |
| 379 | list_part_t *new_list_part=NULL; |
| 380 | /* Create new list */ |
| 381 | for(element=list_part;element!=NULL;element=element->next) |
| 382 | element->to_be_removed=0; |
| 383 | for(element=list_part;element!=NULL;element=element->next) |
| 384 | { |
| 385 | list_part_t *element2; |
| 386 | for(element2=element->next;element2!=NULL;element2=element2->next) |
| 387 | { |
| 388 | if(element->part->part_offset+element->part->part_size-1 >= element2->part->part_offset) |
| 389 | { |
| 390 | element->to_be_removed=1; |
| 391 | element2->to_be_removed=1; |
| 392 | } |
| 393 | } |
| 394 | if(element->to_be_removed==0) |
| 395 | { |
| 396 | int insert_error=0; |
| 397 | new_list_part=insert_new_partition(new_list_part, element->part, 0, &insert_error); |
| 398 | } |
| 399 | } |
| 400 | for(element=new_list_part;element!=NULL;element=element->next) |
| 401 | element->part->status=STATUS_PRIM; |
| 402 | if(test_structure_mac(new_list_part)) |
| 403 | { |
| 404 | for(element=new_list_part;element!=NULL;element=element->next) |
| 405 | element->part->status=STATUS_DELETED; |
| 406 | } |
| 407 | part_free_list_only(new_list_part); |
| 408 | } |
| 409 | |
| 410 | static int check_part_mac(disk_t *disk_car,const int verbose,partition_t *partition, const int saveheader) |
| 411 | { |
nothing calls this directly
no test coverage detected