Move node Argp Helper Functions to follow Argp Parsing State

Resolves BZ #14246.
This commit is contained in:
Siddhesh Poyarekar 2012-12-11 08:59:06 +05:30
parent f70bfe80e2
commit 3c8b4190fe
3 changed files with 93 additions and 89 deletions

View File

@ -1,5 +1,9 @@
2012-12-11 Siddhesh Poyarekar <siddhesh@redhat.com> 2012-12-11 Siddhesh Poyarekar <siddhesh@redhat.com>
[BZ #14246]
* manual/argp.texi (Argp Helper Functions): Move node to follow
Argp Parsing State.
[BZ #14872] [BZ #14872]
* manual/conf.texi (Limits on File System Capacity): Mention if * manual/conf.texi (Limits on File System Capacity): Mention if
terminating null is included in the max size. terminating null is included in the max size.

20
NEWS
View File

@ -14,16 +14,16 @@ Version 2.17
12140, 13013, 13412, 13542, 13601, 13603, 13604, 13629, 13679, 13696, 12140, 13013, 13412, 13542, 13601, 13603, 13604, 13629, 13679, 13696,
13698, 13717, 13741, 13759, 13761, 13763, 13881, 13939, 13950, 13952, 13698, 13717, 13741, 13759, 13761, 13763, 13881, 13939, 13950, 13952,
13966, 14042, 14047, 14090, 14150, 14151, 14152, 14154, 14157, 14166, 13966, 14042, 14047, 14090, 14150, 14151, 14152, 14154, 14157, 14166,
14173, 14195, 14197, 14237, 14251, 14252, 14283, 14298, 14303, 14307, 14173, 14195, 14197, 14237, 14246, 14251, 14252, 14283, 14298, 14303,
14328, 14331, 14336, 14337, 14347, 14349, 14368, 14376, 14417, 14447, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14368, 14376, 14417,
14459, 14476, 14477, 14501, 14505, 14510, 14516, 14518, 14519, 14530, 14447, 14459, 14476, 14477, 14501, 14505, 14510, 14516, 14518, 14519,
14532, 14538, 14543, 14544, 14545, 14557, 14562, 14568, 14576, 14579, 14530, 14532, 14538, 14543, 14544, 14545, 14557, 14562, 14568, 14576,
14583, 14587, 14595, 14602, 14610, 14621, 14638, 14645, 14648, 14652, 14579, 14583, 14587, 14595, 14602, 14610, 14621, 14638, 14645, 14648,
14660, 14661, 14669, 14672, 14683, 14694, 14716, 14719, 14743, 14767, 14652, 14660, 14661, 14669, 14672, 14683, 14694, 14716, 14719, 14743,
14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803, 14805, 14807, 14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803, 14805,
14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833, 14835, 14838, 14807, 14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833, 14835,
14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872, 14879, 14889, 14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872, 14879,
14893, 14898, 14914. 14889, 14893, 14898, 14914.
* CVE-2011-4609 svc_run() produces high cpu usage when accept fails with * CVE-2011-4609 svc_run() produces high cpu usage when accept fails with
EMFILE has been fixed (Bugzilla #14889). EMFILE has been fixed (Bugzilla #14889).

View File

@ -561,85 +561,6 @@ function returned an error value, each parser is called with
@code{ARGP_KEY_ERROR}. No further calls are made, except the final call @code{ARGP_KEY_ERROR}. No further calls are made, except the final call
with @code{ARGP_KEY_FINI}. with @code{ARGP_KEY_FINI}.
@node Argp Helper Functions, , Argp Parsing State, Argp Parser Functions
@subsubsection Functions For Use in Argp Parsers
Argp provides a number of functions available to the user of argp
(@pxref{Argp Parser Functions}), mostly for producing error messages.
These take as their first argument the @var{state} argument to the
parser function. @xref{Argp Parsing State}.
@cindex usage messages, in argp
@comment argp.h
@comment GNU
@deftypefun void argp_usage (const struct argp_state *@var{state})
Outputs the standard usage message for the argp parser referred to by
@var{state} to @code{@var{state}->err_stream} and terminate the program
with @code{exit (argp_err_exit_status)}. @xref{Argp Global Variables}.
@end deftypefun
@cindex syntax error messages, in argp
@comment argp.h
@comment GNU
@deftypefun void argp_error (const struct argp_state *@var{state}, const char *@var{fmt}, @dots{})
Prints the printf format string @var{fmt} and following args, preceded
by the program name and @samp{:}, and followed by a @w{@samp{Try @dots{}
--help}} message, and terminates the program with an exit status of
@code{argp_err_exit_status}. @xref{Argp Global Variables}.
@end deftypefun
@cindex error messages, in argp
@comment argp.h
@comment GNU
@deftypefun void argp_failure (const struct argp_state *@var{state}, int @var{status}, int @var{errnum}, const char *@var{fmt}, @dots{})
Similar to the standard gnu error-reporting function @code{error}, this
prints the program name and @samp{:}, the printf format string
@var{fmt}, and the appropriate following args. If it is non-zero, the
standard unix error text for @var{errnum} is printed. If @var{status} is
non-zero, it terminates the program with that value as its exit status.
The difference between @code{argp_failure} and @code{argp_error} is that
@code{argp_error} is for @emph{parsing errors}, whereas
@code{argp_failure} is for other problems that occur during parsing but
don't reflect a syntactic problem with the input, such as illegal values
for options, bad phase of the moon, etc.
@end deftypefun
@comment argp.h
@comment GNU
@deftypefun void argp_state_help (const struct argp_state *@var{state}, FILE *@var{stream}, unsigned @var{flags})
Outputs a help message for the argp parser referred to by @var{state},
to @var{stream}. The @var{flags} argument determines what sort of help
message is produced. @xref{Argp Help Flags}.
@end deftypefun
Error output is sent to @code{@var{state}->err_stream}, and the program
name printed is @code{@var{state}->name}.
The output or program termination behavior of these functions may be
suppressed if the @code{ARGP_NO_EXIT} or @code{ARGP_NO_ERRS} flags are
passed to @code{argp_parse}. @xref{Argp Flags}.
This behavior is useful if an argp parser is exported for use by other
programs (e.g., by a library), and may be used in a context where it is
not desirable to terminate the program in response to parsing errors. In
argp parsers intended for such general use, and for the case where the
program @emph{doesn't} terminate, calls to any of these functions should
be followed by code that returns the appropriate error code:
@smallexample
if (@var{bad argument syntax})
@{
argp_usage (@var{state});
return EINVAL;
@}
@end smallexample
@noindent
If a parser function will @emph{only} be used when @code{ARGP_NO_EXIT}
is not set, the return may be omitted.
@node Argp Parsing State, Argp Helper Functions, Argp Special Keys, Argp Parser Functions @node Argp Parsing State, Argp Helper Functions, Argp Special Keys, Argp Parser Functions
@subsubsection Argp Parsing State @subsubsection Argp Parsing State
@ -726,6 +647,85 @@ Private, for use by the argp implementation.
@end table @end table
@end deftp @end deftp
@node Argp Helper Functions, , Argp Parsing State, Argp Parser Functions
@subsubsection Functions For Use in Argp Parsers
Argp provides a number of functions available to the user of argp
(@pxref{Argp Parser Functions}), mostly for producing error messages.
These take as their first argument the @var{state} argument to the
parser function. @xref{Argp Parsing State}.
@cindex usage messages, in argp
@comment argp.h
@comment GNU
@deftypefun void argp_usage (const struct argp_state *@var{state})
Outputs the standard usage message for the argp parser referred to by
@var{state} to @code{@var{state}->err_stream} and terminate the program
with @code{exit (argp_err_exit_status)}. @xref{Argp Global Variables}.
@end deftypefun
@cindex syntax error messages, in argp
@comment argp.h
@comment GNU
@deftypefun void argp_error (const struct argp_state *@var{state}, const char *@var{fmt}, @dots{})
Prints the printf format string @var{fmt} and following args, preceded
by the program name and @samp{:}, and followed by a @w{@samp{Try @dots{}
--help}} message, and terminates the program with an exit status of
@code{argp_err_exit_status}. @xref{Argp Global Variables}.
@end deftypefun
@cindex error messages, in argp
@comment argp.h
@comment GNU
@deftypefun void argp_failure (const struct argp_state *@var{state}, int @var{status}, int @var{errnum}, const char *@var{fmt}, @dots{})
Similar to the standard gnu error-reporting function @code{error}, this
prints the program name and @samp{:}, the printf format string
@var{fmt}, and the appropriate following args. If it is non-zero, the
standard unix error text for @var{errnum} is printed. If @var{status} is
non-zero, it terminates the program with that value as its exit status.
The difference between @code{argp_failure} and @code{argp_error} is that
@code{argp_error} is for @emph{parsing errors}, whereas
@code{argp_failure} is for other problems that occur during parsing but
don't reflect a syntactic problem with the input, such as illegal values
for options, bad phase of the moon, etc.
@end deftypefun
@comment argp.h
@comment GNU
@deftypefun void argp_state_help (const struct argp_state *@var{state}, FILE *@var{stream}, unsigned @var{flags})
Outputs a help message for the argp parser referred to by @var{state},
to @var{stream}. The @var{flags} argument determines what sort of help
message is produced. @xref{Argp Help Flags}.
@end deftypefun
Error output is sent to @code{@var{state}->err_stream}, and the program
name printed is @code{@var{state}->name}.
The output or program termination behavior of these functions may be
suppressed if the @code{ARGP_NO_EXIT} or @code{ARGP_NO_ERRS} flags are
passed to @code{argp_parse}. @xref{Argp Flags}.
This behavior is useful if an argp parser is exported for use by other
programs (e.g., by a library), and may be used in a context where it is
not desirable to terminate the program in response to parsing errors. In
argp parsers intended for such general use, and for the case where the
program @emph{doesn't} terminate, calls to any of these functions should
be followed by code that returns the appropriate error code:
@smallexample
if (@var{bad argument syntax})
@{
argp_usage (@var{state});
return EINVAL;
@}
@end smallexample
@noindent
If a parser function will @emph{only} be used when @code{ARGP_NO_EXIT}
is not set, the return may be omitted.
@node Argp Children, Argp Help Filtering, Argp Parser Functions, Argp Parsers @node Argp Children, Argp Help Filtering, Argp Parser Functions, Argp Parsers
@subsection Combining Multiple Argp Parsers @subsection Combining Multiple Argp Parsers