Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Aug 2018 00:51:20 +0000 (UTC)
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r338079 - stable/11/lib/libc/stdlib
Message-ID:  <201808200051.w7K0pKtH077087@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kevans
Date: Mon Aug 20 00:51:19 2018
New Revision: 338079
URL: https://svnweb.freebsd.org/changeset/base/338079

Log:
  MFC r337666: getopt_long(3): Document behavior, optstring leading characters
  
  Leading '+', '-', and ':' in optstring have special meaning. We briefly
  mention that the first two have special meaning in that we say
  POSIXLY_CORRECT turns them off, but we don't actually document their
  meaning. Add a paragraph to RETURN VALUES explaining how they control
  the treatment of non-option arguments.
  
  A leading ':' has no mention; add a note that it suppresses warnings about
  missing arguments.

Modified:
  stable/11/lib/libc/stdlib/getopt_long.3
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/stdlib/getopt_long.3
==============================================================================
--- stable/11/lib/libc/stdlib/getopt_long.3	Mon Aug 20 00:50:11 2018	(r338078)
+++ stable/11/lib/libc/stdlib/getopt_long.3	Mon Aug 20 00:51:19 2018	(r338079)
@@ -31,7 +31,7 @@
 .\"     @(#)getopt.3	8.5 (Berkeley) 4/27/95
 .\" $FreeBSD$
 .\"
-.Dd December 25, 2011
+.Dd May 2, 2018
 .Dt GETOPT_LONG 3
 .Os
 .Sh NAME
@@ -207,12 +207,53 @@ these functions return 0 and store
 .Fa val
 in the location pointed to by
 .Fa flag .
+.Pp
 These functions return
 .Ql \&:
-if there was a missing option argument,
+if there was a missing option argument and error messages are suppressed,
 .Ql \&?
 if the user specified an unknown or ambiguous option, and
 \-1 when the argument list has been exhausted.
+The default behavior when a missing option argument is encountered is to write
+an error and return
+.Ql \&? .
+Specifying
+.Ql \&:
+in
+.Fa optstr
+will cause the error message to be suppressed and
+.Ql \&:
+to be returned instead.
+.Pp
+In addition to
+.Ql \&: ,
+a leading
+.Ql \&+
+or
+.Ql \&-
+in
+.Fa optstr
+also has special meaning.
+If either of these are specified, they must appear before
+.Ql \&: .
+.Pp
+A leading
+.Ql \&+
+indicates that processing should be halted at the first non-option argument,
+matching the default behavior of
+.Xr getopt 3 .
+The default behavior without
+.Ql \&+
+is to permute non-option argments to the end of
+.Fa argv .
+.Pp
+A leading
+.Ql \&-
+indicates that all non-option arguments should be treated as if they are
+arguments to a literal
+.Ql \&1
+flag (i.e., the function call will return the value 1, rather than the char
+literal '1').
 .Sh ENVIRONMENT
 .Bl -tag -width ".Ev POSIXLY_CORRECT"
 .It Ev POSIXLY_CORRECT



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201808200051.w7K0pKtH077087>