summaryrefslogtreecommitdiff
path: root/sysutils/same/patches/patch-ab
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/same/patches/patch-ab')
-rw-r--r--sysutils/same/patches/patch-ab133
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;