SHA256
1
0
forked from pool/file
file/file-5.12-nitpick.dif
2013-10-01 10:43:52 +00:00

54 lines
2.0 KiB
Plaintext

--- src/file.c
+++ src/file.c 2013-09-30 00:00:00.000000000 +0000
@@ -94,10 +94,12 @@ private const char *separator = ":"; /*
private const struct option long_options[] = {
#define OPT(shortname, longname, opt, doc) \
{longname, opt, NULL, shortname},
+#define OPT_POSIX OPT
#define OPT_LONGONLY(longname, opt, doc) \
{longname, opt, NULL, 0},
#include "file_opts.h"
#undef OPT
+#undef OPT_POSIX
#undef OPT_LONGONLY
{0, 0, NULL, 0}
};
@@ -525,6 +527,7 @@ docprint(const char *opts)
private void
help(void)
{
+ const unsigned long posix = (unsigned long)getenv("POSIXLY_CORRECT");
(void)fputs(
"Usage: file [OPTION...] [FILE...]\n"
"Determine type of FILEs.\n"
@@ -532,11 +535,16 @@ help(void)
#define OPT(shortname, longname, opt, doc) \
fprintf(stdout, " -%c, --" longname, shortname), \
docprint(doc);
+#define OPT_POSIX(shortname, longname, opt, doc) \
+ fprintf(stdout, " -%c, --" longname "%s", shortname, \
+ (shortname == 'L') ? (posix ? " (default)" : "") : (posix ? "" : " (default)")), \
+ docprint(doc);
#define OPT_LONGONLY(longname, opt, doc) \
fprintf(stdout, " --" longname), \
docprint(doc);
#include "file_opts.h"
#undef OPT
+#undef OPT_POSIX
#undef OPT_LONGONLY
fprintf(stdout, "\nReport bugs to http://bugs.gw.com/\n");
exit(0);
--- src/file_opts.h
+++ src/file_opts.h 2013-09-30 13:44:17.000000000 +0000
@@ -34,8 +34,8 @@ OPT_LONGONLY("mime-encoding", 0, "
OPT('k', "keep-going", 0, " don't stop at the first match\n")
OPT('l', "list", 0, " list magic strength\n")
#ifdef S_IFLNK
-OPT('L', "dereference", 0, " follow symlinks (default)\n")
-OPT('h', "no-dereference", 0, " don't follow symlinks\n")
+OPT_POSIX('L', "dereference", 0, " follow symlinks\n")
+OPT_POSIX('h', "no-dereference", 0, " don't follow symlinks\n")
#endif
OPT('n', "no-buffer", 0, " do not buffer output\n")
OPT('N', "no-pad", 0, " do not pad output\n")