Add build options to control SuS compatability, allows numeric
option handling to be disabled.
Defaults to enabled, so no changes in default behaviour
diff --git a/coreutils/fold.c b/coreutils/fold.c
index 8f74ed8..ee0fdc2 100644
--- a/coreutils/fold.c
+++ b/coreutils/fold.c
@@ -52,6 +52,8 @@
int i;
int errs = 0;
+
+#ifdef CONFIG_FEATURE_SUSv2_OBSOLETE
/* Turn any numeric options into -w options. */
for (i = 1; i < argc; i++) {
char const *a = argv[i];
@@ -69,6 +71,7 @@
}
}
}
+#endif
flags = bb_getopt_ulflags(argc, argv, "bsw:", &w_opt);
if (flags & FLAG_WIDTH)
diff --git a/coreutils/head.c b/coreutils/head.c
index dab4de1..a208733 100644
--- a/coreutils/head.c
+++ b/coreutils/head.c
@@ -56,6 +56,7 @@
int c;
int retval = EXIT_SUCCESS;
+#if defined CONFIG_FEATURE_SUSv2 || defined CONFIG_FEATURE_FANCY_HEAD
/* Allow legacy syntax of an initial numeric option without -n. */
if ((argc > 1) && (argv[1][0] == '-')
/* && (isdigit)(argv[1][1]) */
@@ -66,7 +67,9 @@
p = (*argv) + 1;
goto GET_COUNT;
}
+#endif
+ /* No size benefit in converting this to bb_getopt_ulflags */
while ((opt = getopt(argc, argv, head_opts)) > 0) {
switch(opt) {
#ifdef CONFIG_FEATURE_FANCY_HEAD
diff --git a/coreutils/tail.c b/coreutils/tail.c
index 1db1e2b..cc1517a 100644
--- a/coreutils/tail.c
+++ b/coreutils/tail.c
@@ -121,6 +121,7 @@
char *s, *buf;
const char *fmt;
+#ifdef CONFIG_FEATURE_SUSv2
/* Allow legacy syntax of an initial numeric option without -n. */
if (argc >=2 && ((argv[1][0] == '+') || ((argv[1][0] == '-')
/* && (isdigit)(argv[1][1]) */
@@ -130,6 +131,7 @@
optarg = argv[1];
goto GET_COUNT;
}
+#endif
while ((opt = getopt(argc, argv, tail_opts)) > 0) {
switch (opt) {
diff --git a/include/usage.h b/include/usage.h
index 53832b9..2cfd2b0 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -766,7 +766,7 @@
"/etc/passwd\n"
#define fold_trivial_usage \
- "[-bsw] [FILE]"
+ "[-bs] [-w WIDTH] [FILE]"
#define fold_full_usage \
"Wrap input lines in each FILE (standard input by default), writing to\n" \
"standard output.\n\n" \
diff --git a/sysdeps/linux/Config.in b/sysdeps/linux/Config.in
index 95491c9..fb97c8f 100644
--- a/sysdeps/linux/Config.in
+++ b/sysdeps/linux/Config.in
@@ -203,6 +203,21 @@
if you want to add some simple compiler switches (like -march=i686),
or check for warnings using -Werror, just those options here.
+config CONFIG_FEATURE_SUSv2
+ bool "Enable features that are in SuSv2 but not SuSv3?"
+ default y
+ help
+ This option will enable backwards compatability with SuSv2,
+ specifically, numeric options such as 'head -1 <file>' will be
+ supported.
+
+config CONFIG_FEATURE_SUSv2_OBSOLETE
+ bool "Enable features that are obsolete in SuSv2"
+ depends on CONFIG_FEATURE_SUSv2
+ default y
+ help
+ Disables support for numeric arguments in fold.
+
endmenu
menu 'Installation Options'