It turns out that although the feature has been added to allow the various built-in tests to be turned off, it's broken in 4.20 (I don't think it can be made to work, and trying to use it can make file segfault).

I attach a patch against file.c from 4.20 to fix the command-line parsing. It does two things: first, it adds "e:" to the short options string; secondly, it changes the argument flag of the long option 'exclude' from 0 to 1 (because --exclude takes an argument).

--
http://rrt.sc3d.org/ | think tank, n.  a safe container for noxious gases
--- file-4.20/src/file.c	2007-01-25 21:05:46.000000000 +0000
+++ file-4.20-rrt/src/file.c	2007-03-23 14:19:24.000000000 +0000
@@ -128,7 +128,7 @@
 	char *home, *usermagic;
 	struct stat sb;
 	static const char hmagic[] = "/.magic";
-#define OPTSTRING	"bcCdf:F:hikLm:nNprsvz0"
+#define OPTSTRING	"bcCde:f:F:hikLm:nNprsvz0"
 #ifdef HAVE_GETOPT_LONG
 	int longindex;
 	static const struct option long_options[] =
@@ -138,7 +138,7 @@
 		{"brief", 0, 0, 'b'},
 		{"checking-printout", 0, 0, 'c'},
 		{"debug", 0, 0, 'd'},
-		{"exclude", 0, 0, 'e' },
+		{"exclude", 1, 0, 'e' },
 		{"files-from", 1, 0, 'f'},
 		{"separator", 1, 0, 'F'},
 		{"mime", 0, 0, 'i'},

Reply via email to