diff options
Diffstat (limited to 'sysutils/same/patches/patch-ab')
-rw-r--r-- | sysutils/same/patches/patch-ab | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/sysutils/same/patches/patch-ab b/sysutils/same/patches/patch-ab new file mode 100644 index 00000000000..461ec92bdf2 --- /dev/null +++ b/sysutils/same/patches/patch-ab @@ -0,0 +1,133 @@ +$NetBSD: patch-ab,v 1.1.1.1 2004/04/17 13:21:48 minskim Exp $ + +--- same.c.orig 2000-10-16 10:04:15.000000000 +0200 ++++ same.c 2004-01-31 20:14:29.000000000 +0100 +@@ -143,6 +143,9 @@ + dev_t device; + ino_t inode; + nlink_t nlink; ++ mode_t mode; ++ uid_t owner; ++ gid_t group; + long crc; + struct inode_entry *next; + struct name_entry *names; +@@ -254,11 +257,19 @@ + fprintf(stderr, "%-60s: %10.2f s\n", "*** Total execution time ***", + (double)total_time/CLK_TCK); + fputs("Statistics:\n", stderr); +- fprintf(stderr, " Merged %lu hard links\n", stat_merge); +- fprintf(stderr, " Calculated %lu CRCs\n", stat_crc); +- fprintf(stderr, " Compared %lu files\n", stat_cmp); +- fprintf(stderr, " Linked %lu names for %lu identical files\n", +- stat_link_name, stat_link_inode); ++ if (o_dryrun) { ++ fprintf(stderr, " Would have merged %lu hard links\n", stat_merge); ++ fprintf(stderr, " Calculated %lu CRCs\n", stat_crc); ++ fprintf(stderr, " Compared %lu files\n", stat_cmp); ++ fprintf(stderr, " Would have linked %lu names for %lu identical files\n", ++ stat_link_name, stat_link_inode); ++ } else { ++ fprintf(stderr, " Merged %lu hard links\n", stat_merge); ++ fprintf(stderr, " Calculated %lu CRCs\n", stat_crc); ++ fprintf(stderr, " Compared %lu files\n", stat_cmp); ++ fprintf(stderr, " Linked %lu names for %lu identical files\n", ++ stat_link_name, stat_link_inode); ++ } + } + + static void progress(int percent) +@@ -292,10 +303,10 @@ + { + struct name_entry *names; + +- printf("%sentry %p size %ld device %lx inode %lx nlink %d crc %08lx\n", ++ printf("%sentry %p size %ld device %lx inode %lx nlink %d mode %06o owner %d group %d crc %08lx\n", + indent, entry, (unsigned long)entry->size, + (unsigned long)entry->device, (unsigned long)entry->inode, +- entry->nlink, entry->crc); ++ entry->nlink, entry->mode, entry->owner, entry->group, entry->crc); + for (names = entry->names; names; names = names->next) + printf("%s %s\n", indent, names->name); + } +@@ -435,6 +446,9 @@ + entry1 = entry0->next; + while (!stop && entry1) { + if ((entry0->size == entry1->size) && ++ (entry0->mode == entry1->mode) && ++ (entry0->owner == entry1->owner) && ++ (entry0->group == entry1->group) && + (entry0->size != 0 || o_nullfiles)) { + if (entry0->crc == -1) + calc_crc(entry0); +@@ -474,10 +488,16 @@ + { + int res = 0; + +- if (o_debug > 0) +- printf("unlink %s\n", name); +- if (!o_dryrun && ((res = unlink(name)) == -1)) ++ if (o_debug > 0) { ++ if (o_dryrun) { ++ printf("would unlink %s\n", name); ++ } else { ++ printf("unlink %s\n", name); ++ } ++ } ++ if (!o_dryrun && ((res = unlink(name)) == -1)) { + fprintf(stderr, "unlink %s: %s\n", name, strerror(errno)); ++ } + return res; + } + +@@ -485,8 +505,13 @@ + { + int res = 0; + +- if (o_debug > 0) +- printf("link %s %s\n", master, slave); ++ if (o_debug > 0) { ++ if (o_dryrun) { ++ printf("would link %s %s\n", master, slave); ++ } else { ++ printf("link %s %s\n", master, slave); ++ } ++ } + if (!o_dryrun && ((res = link(master, slave)) == -1)) + fprintf(stderr, "link %s %s: %s\n", master, slave, strerror(errno)); + return res; +@@ -496,8 +521,13 @@ + { + int res = 0; + +- if (o_debug > 0) +- printf("symlink %s %s\n", master, slave); ++ if (o_debug > 0) { ++ if (o_dryrun) { ++ printf("would symlink %s %s\n", master, slave); ++ } else { ++ printf("symlink %s %s\n", master, slave); ++ } ++ } + if (!o_dryrun && ((res = symlink(master, slave)) == -1)) + fprintf(stderr, "symlink %s %s: %s\n", master, slave, strerror(errno)); + return res; +@@ -618,7 +648,7 @@ + return NULL; + buf[strlen(buf)-1] = '\0'; + if (lstat(buf, &sb) < 0) { +- fprintf(stderr, "stat %s: %s", buf, strerror(errno)); ++ fprintf(stderr, "stat %s: %s\n", buf, strerror(errno)); + exit (1); + } + } while (!S_ISREG(sb.st_mode)); +@@ -630,6 +660,9 @@ + entry->device = sb.st_dev; + entry->inode = sb.st_ino; + entry->nlink = sb.st_nlink; ++ entry->mode = sb.st_mode; ++ entry->owner = sb.st_uid; ++ entry->group = sb.st_gid; + entry->crc = -1; + + return entry; |