From 417c99f6373076931b66f9d5986cd6ededcbb197 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Wed, 11 Feb 2004 05:03:04 +0000 Subject: If --backup was specified, the links we remove are backed up. --- hlink.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'hlink.c') diff --git a/hlink.c b/hlink.c index f42df53d..110e6ede 100644 --- a/hlink.c +++ b/hlink.c @@ -22,6 +22,7 @@ extern int dry_run; extern int verbose; +extern int make_backups; #if SUPPORT_HARD_LINKS static int hlink_compare(struct file_struct **file1, struct file_struct **file2) @@ -38,8 +39,8 @@ static int hlink_compare(struct file_struct **file1, struct file_struct **file2) return file_compare(file1, file2); } -struct file_struct **hlink_list; -int hlink_count; +static struct file_struct **hlink_list; +static int hlink_count; #define LINKED(p1,p2) ((p1)->F_DEV == (p2)->F_DEV \ && (p1)->F_INODE == (p2)->F_INODE) @@ -190,7 +191,10 @@ void do_hard_links(void) if (st2.st_dev == st1.st_dev && st2.st_ino == st1.st_ino) continue; - if (robust_unlink(hlink2)) { + if (make_backups) { + if (!make_backup(hlink2)) + continue; + } else if (robust_unlink(hlink2)) { if (verbose > 0) { rprintf(FINFO, "unlink %s failed: %s\n", -- cgit v1.2.3