files with same inode are considered as different
.TP
\fB-m\fR, \fB--md5\fR
-use MD5 hashing
+use MD5 hashing (if compiled with the option)
.SH "BUGS"
match and we have to read them completely).
Hence, in practice lot of partial MD5s are computed, which costs a lot
-of cpu and is useless. This often hurts more than it helps, hence it
-is off by default. The only case when it should really be useful is
-when you have plenty of different files of same size, and lot of
-similar ones, which does not happen often.
+of cpu and is useless. This often hurts more than it helps. The only
+case when it should really be useful is when you have plenty of
+different files of same size, and lot of similar ones, which does not
+happen often.
Forcing the files to be read fully so that the MD5s are properly
computed is not okay neither, since it would fully read certain files,
even if we will never need their MD5s.
+Anyway, it has to be compiled in with 'make WITH_MD5=yes', and even in
+that case it will be off by default
+
.SH "WISH LIST"
The format of the output should definitely be improved. Not clear how.
free(buffer2);
}
-void print_help(FILE *out) {
+void usage(FILE *out) {
fprintf(out, "Usage: finddup [OPTION]... DIR1 [[and:|not:]DIR2]\n");
fprintf(out, "Version %s (%s)\n", VERSION_NUMBER, UNAME);
fprintf(out, "Without DIR2, lists duplicated files found in DIR1. With DIR2, lists files common to both directories. With the not: prefix, lists files found in DIR1 which do not exist in DIR2. The and: prefix is the default and should be used only if you have a directory starting with 'not:'\n");
switch (c) {
case 'h':
- print_help(stdout);
+ usage(stdout);
exit(EXIT_SUCCESS);
break;
use_md5 = 1;
#else
fprintf(stderr,
- "finddup has not be compiled with MD5 hashing.\n");
+ "finddup has not been compiled with MD5 hashing.\n");
+ usage(stderr);
exit(EXIT_FAILURE);
#endif
break;
default:
+ usage(stderr);
exit(EXIT_FAILURE);
}
}
same_inodes_are_different = 1;
start(argv[optind], 0);
} else {
- print_help(stderr);
+ usage(stderr);
exit(EXIT_FAILURE);
}