From 6ec2ddd5365a32afb66baf4b7ad600fb23ae7ddf Mon Sep 17 00:00:00 2001 From: ache Date: Wed, 3 Mar 2004 08:29:00 +0000 Subject: [PATCH] Make return code in noarg case GNU-compatible --- lib/libc/stdlib/getopt_long.3 | 40 +++++++++++++++++------------------ lib/libc/stdlib/getopt_long.c | 4 ++++ 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/lib/libc/stdlib/getopt_long.3 b/lib/libc/stdlib/getopt_long.3 index 88738b020bd4..bd5d2b9ec4e5 100644 --- a/lib/libc/stdlib/getopt_long.3 +++ b/lib/libc/stdlib/getopt_long.3 @@ -311,26 +311,26 @@ This practice is wrong, and should not be used in any current development. .\" to .\" mean the preceding option takes an optional argument. .\" .El -.It -Return value in case of missing argument if first character -(after -.Ql + -or -.Ql - ) -in option string is not -.Ql \&: : -.Bl -tag -width ".Bx" -.It Tn GNU -returns -.Ql \&? -.It Bx -returns -.Ql \&: -(since -.Bx Ns 's -.Fn getopt -does). -.El +.\" .It +.\" Return value in case of missing argument if first character +.\" (after +.\" .Ql + +.\" or +.\" .Ql - ) +.\" in option string is not +.\" .Ql \&: : +.\" .Bl -tag -width ".Bx" +.\" .It Tn GNU +.\" returns +.\" .Ql \&? +.\" .It Bx +.\" returns +.\" .Ql \&: +.\" (since +.\" .Bx Ns 's +.\" .Fn getopt +.\" does). +.\" .El .\" .It .\" Handling of .\" .Ql --a diff --git a/lib/libc/stdlib/getopt_long.c b/lib/libc/stdlib/getopt_long.c index eef627a6a432..74f8aa0630f1 100644 --- a/lib/libc/stdlib/getopt_long.c +++ b/lib/libc/stdlib/getopt_long.c @@ -284,7 +284,11 @@ parse_long_options(char * const *nargv, const char *options, optopt = long_options[match].val; else optopt = 0; +#ifdef GNU_COMPATIBLE + return (BADCH); +#else return (BADARG); +#endif } if (long_options[match].has_arg == required_argument || long_options[match].has_arg == optional_argument) {