+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, or the current directory if DIR1 is not provided. 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");
+ fprintf(out, "\n");
+ /* 01234567890123456789012345678901234567890123456789012345678901234567890123456789*/
+ fprintf(out, " -v, --version prints the version number and exit\n");
+ fprintf(out, " -h, --help show this help\n");
+ fprintf(out, " -d, --ignore-dots ignore dot files and directories\n");
+ fprintf(out, " -0, --ignore-empty ignore empty files\n");
+ fprintf(out, " -c, --hide-matchings do not show which files in DIR2 corresponds to\n");
+ fprintf(out, " those in DIR1\n");
+ fprintf(out, " -g, --no-group-ids do not show the file groups\n");
+ fprintf(out, " -t, --time-sort sort according to modification time in each group\n");
+ fprintf(out, " -p, --show-progress show progress\n");
+ fprintf(out, " -r, --real-paths show the real file paths\n");
+ fprintf(out, " -i, --same-inodes-are-different\n");
+ fprintf(out, " consider files with same inode as different\n");
+ fprintf(out, " -e <command>, --exec <command>\n");
+ fprintf(out, " execute the provided command for each group of\n");
+ fprintf(out, " identical files, with their names as arguments\n");
+ fprintf(out, " -f <string>, --result-prefix <string>\n");
+ fprintf(out, " for each group of identical files, write one\n");
+ fprintf(out, " result file whose name is the given prefix string\n");
+ fprintf(out, " followed the group number, and containing one\n");
+ fprintf(out, " filename per line\n");
+ fprintf(out, "\n");
+ fprintf(out, "Report bugs and comments to <francois@fleuret.org>.\n");