Add build options to control SuS compatability, allows numeric

option handling to be disabled.
Defaults to enabled, so no changes in default behaviour
This commit is contained in:
Glenn L McGrath 2005-12-11 03:09:05 +00:00
parent d77b781c1f
commit 0bd0257fe0
5 changed files with 24 additions and 1 deletions

View File

@ -52,6 +52,8 @@ extern int fold_main(int argc, char **argv)
int i; int i;
int errs = 0; int errs = 0;
#ifdef CONFIG_FEATURE_SUSv2_OBSOLETE
/* Turn any numeric options into -w options. */ /* Turn any numeric options into -w options. */
for (i = 1; i < argc; i++) { for (i = 1; i < argc; i++) {
char const *a = argv[i]; char const *a = argv[i];
@ -69,6 +71,7 @@ extern int fold_main(int argc, char **argv)
} }
} }
} }
#endif
flags = bb_getopt_ulflags(argc, argv, "bsw:", &w_opt); flags = bb_getopt_ulflags(argc, argv, "bsw:", &w_opt);
if (flags & FLAG_WIDTH) if (flags & FLAG_WIDTH)

View File

@ -56,6 +56,7 @@ int head_main(int argc, char **argv)
int c; int c;
int retval = EXIT_SUCCESS; int retval = EXIT_SUCCESS;
#if defined CONFIG_FEATURE_SUSv2 || defined CONFIG_FEATURE_FANCY_HEAD
/* Allow legacy syntax of an initial numeric option without -n. */ /* Allow legacy syntax of an initial numeric option without -n. */
if ((argc > 1) && (argv[1][0] == '-') if ((argc > 1) && (argv[1][0] == '-')
/* && (isdigit)(argv[1][1]) */ /* && (isdigit)(argv[1][1]) */
@ -66,7 +67,9 @@ int head_main(int argc, char **argv)
p = (*argv) + 1; p = (*argv) + 1;
goto GET_COUNT; goto GET_COUNT;
} }
#endif
/* No size benefit in converting this to bb_getopt_ulflags */
while ((opt = getopt(argc, argv, head_opts)) > 0) { while ((opt = getopt(argc, argv, head_opts)) > 0) {
switch(opt) { switch(opt) {
#ifdef CONFIG_FEATURE_FANCY_HEAD #ifdef CONFIG_FEATURE_FANCY_HEAD

View File

@ -121,6 +121,7 @@ int tail_main(int argc, char **argv)
char *s, *buf; char *s, *buf;
const char *fmt; const char *fmt;
#ifdef CONFIG_FEATURE_SUSv2
/* Allow legacy syntax of an initial numeric option without -n. */ /* Allow legacy syntax of an initial numeric option without -n. */
if (argc >=2 && ((argv[1][0] == '+') || ((argv[1][0] == '-') if (argc >=2 && ((argv[1][0] == '+') || ((argv[1][0] == '-')
/* && (isdigit)(argv[1][1]) */ /* && (isdigit)(argv[1][1]) */
@ -130,6 +131,7 @@ int tail_main(int argc, char **argv)
optarg = argv[1]; optarg = argv[1];
goto GET_COUNT; goto GET_COUNT;
} }
#endif
while ((opt = getopt(argc, argv, tail_opts)) > 0) { while ((opt = getopt(argc, argv, tail_opts)) > 0) {
switch (opt) { switch (opt) {

View File

@ -766,7 +766,7 @@
"/etc/passwd\n" "/etc/passwd\n"
#define fold_trivial_usage \ #define fold_trivial_usage \
"[-bsw] [FILE]" "[-bs] [-w WIDTH] [FILE]"
#define fold_full_usage \ #define fold_full_usage \
"Wrap input lines in each FILE (standard input by default), writing to\n" \ "Wrap input lines in each FILE (standard input by default), writing to\n" \
"standard output.\n\n" \ "standard output.\n\n" \

View File

@ -203,6 +203,21 @@ config EXTRA_CFLAGS_OPTIONS
if you want to add some simple compiler switches (like -march=i686), if you want to add some simple compiler switches (like -march=i686),
or check for warnings using -Werror, just those options here. 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 endmenu
menu 'Installation Options' menu 'Installation Options'