- if (!(hlink_list =
- (struct file_struct *)malloc(sizeof(hlink_list[0])*flist->count)))
- out_of_memory("init_hard_links");
+ if (!(hlink_list =
+ (struct file_struct *)malloc(sizeof(hlink_list[0])*flist->count)))
+ out_of_memory("init_hard_links");
- bcopy((char *)flist->files,
- (char *)hlink_list,
- sizeof(hlink_list[0])*flist->count);
+ for (i = 0; i < flist->count; i++)
+ bcopy(flist->files[i], &hlink_list[i], sizeof(hlink_list[0]));
- qsort(hlink_list,flist->count,
- sizeof(hlink_list[0]),
- (int (*)())hlink_compare);
+ qsort(hlink_list,flist->count,
+ sizeof(hlink_list[0]),
+ (int (*)())hlink_compare);
if (link_stat(f_name(&hlink_list[i-1]),&st1) != 0) continue;
if (link_stat(f_name(&hlink_list[i]),&st2) != 0) {
if (link_stat(f_name(&hlink_list[i-1]),&st1) != 0) continue;
if (link_stat(f_name(&hlink_list[i]),&st2) != 0) {
- if (!dry_run && (unlink(f_name(&hlink_list[i])) != 0 ||
- link(f_name(&hlink_list[i-1]),f_name(&hlink_list[i])) != 0)) {
+ if (do_unlink(f_name(&hlink_list[i])) != 0 ||
+ do_link(f_name(&hlink_list[i-1]),f_name(&hlink_list[i])) != 0) {