X-Git-Url: http://git.efficios.com/?p=argpar.git;a=blobdiff_plain;f=argpar%2Fargpar.h;h=27503c56fd56944207b4cf60869196bf1ae51c64;hp=3cd437fa043d68390a933f4f4c1e99912935027f;hb=1c88181255c1d2516b035f678ae7e6929cb9bf76;hpb=8b95d883334b188d05cb1967980eae628e295d10
diff --git a/argpar/argpar.h b/argpar/argpar.h
index 3cd437f..27503c5 100644
--- a/argpar/argpar.h
+++ b/argpar/argpar.h
@@ -83,7 +83,8 @@ A parsing item (the result of argpar_iter_next()) has the type
#argpar_item.
Get the type (option or non-option) of an item with
-argpar_item_type(). Each item type has its set of dedicated functions
+\link argpar_item_type(const struct argpar_item *) argpar_item_type()\endlink.
+Each item type has its set of dedicated functions
(\c argpar_item_opt_ and \c argpar_item_non_opt_ prefixes).
argpar_iter_next() produces the items in the same order that it parses
@@ -128,7 +129,8 @@ struct argpar_opt_descr;
/*!
@brief
- Type of a parsing item, as returned by argpar_item_type().
+ Type of a parsing item, as returned by
+ \link argpar_item_type(const struct argpar_item *) argpar_item_type()\endlink.
*/
enum argpar_item_type {
/// Option
@@ -338,6 +340,22 @@ void argpar_item_destroy(const struct argpar_item *item);
@{
*/
+/*!
+@brief
+ Parsing error type, as returned by
+ \link argpar_error_type(const struct argpar_error *) argpar_error_type()\endlink.
+*/
+enum argpar_error_type {
+ /// Unknown option error
+ ARGPAR_ERROR_TYPE_UNKNOWN_OPT,
+
+ /// Missing option argument error
+ ARGPAR_ERROR_TYPE_MISSING_OPT_ARG,
+
+ /// Unexpected option argument error
+ ARGPAR_ERROR_TYPE_UNEXPECTED_OPT_ARG,
+};
+
/*!
@struct argpar_error
@@ -346,6 +364,24 @@ void argpar_item_destroy(const struct argpar_item *item);
*/
struct argpar_error;
+/*!
+@brief
+ Returns the type of the parsing error object \p error.
+
+@param[in] error
+ Parsing error of which to get the type.
+
+@returns
+ Type of \p error.
+
+@pre
+ \p error is not \c NULL.
+*/
+/// @cond hidden_macro
+ARGPAR_HIDDEN
+/// @endcond
+enum argpar_error_type argpar_error_type(const struct argpar_error *error);
+
/*!
@brief
Returns the index of the original argument (in \p argv, as passed to
@@ -378,9 +414,6 @@ With the long option with argument form, for example
\--mireille=deyglun
, this function only returns the name
part (\--mireille
in the last example).
-You may only call this function if the call to argpar_iter_next() which
-set \p error returned #ARGPAR_ITER_NEXT_STATUS_ERROR_UNKNOWN_OPT.
-
@param[in] error
Parsing error of which to get the name of the unknown option.
@@ -390,8 +423,9 @@ set \p error returned #ARGPAR_ITER_NEXT_STATUS_ERROR_UNKNOWN_OPT.
@pre
\p error is not \c NULL.
@pre
- The call to argpar_iter_next() which set \p error returned
- #ARGPAR_ITER_NEXT_STATUS_ERROR_UNKNOWN_OPT.
+ The type of \p error, as returned by
+ \link argpar_error_type(const struct argpar_error *) argpar_error_type()\endlink,
+ is #ARGPAR_ERROR_TYPE_UNKNOWN_OPT.
*/
/// @cond hidden_macro
ARGPAR_HIDDEN
@@ -403,10 +437,6 @@ const char *argpar_error_unknown_opt_name(const struct argpar_error *error);
Returns the descriptor of the option for which the parsing error
described by \p error occurred.
-You may only call this function if the call to argpar_iter_next() which
-set \p error returned #ARGPAR_ITER_NEXT_STATUS_ERROR_MISSING_OPT_ARG or
-#ARGPAR_ITER_NEXT_STATUS_ERROR_UNEXPECTED_OPG_ARG.
-
@param[in] error
Parsing error of which to get the option descriptor.
@param[out] is_short
@@ -426,9 +456,10 @@ set \p error returned #ARGPAR_ITER_NEXT_STATUS_ERROR_MISSING_OPT_ARG or
@pre
\p error is not \c NULL.
@pre
- The call to argpar_iter_next() which set \p error returned
- #ARGPAR_ITER_NEXT_STATUS_ERROR_MISSING_OPT_ARG or
- #ARGPAR_ITER_NEXT_STATUS_ERROR_UNEXPECTED_OPG_ARG.
+ The type of \p error, as returned by
+ \link argpar_error_type(const struct argpar_error *) argpar_error_type()\endlink,
+ is #ARGPAR_ERROR_TYPE_MISSING_OPT_ARG or
+ #ARGPAR_ERROR_TYPE_UNEXPECTED_OPT_ARG.
*/
/// @cond hidden_macro
ARGPAR_HIDDEN
@@ -593,6 +624,8 @@ void argpar_iter_destroy(struct argpar_iter *iter);
/*!
@brief
Return type of argpar_iter_next().
+
+Error status enumerators have a negative value.
*/
enum argpar_iter_next_status {
/// Success
@@ -601,17 +634,11 @@ enum argpar_iter_next_status {
/// End of iteration (no more original arguments to parse)
ARGPAR_ITER_NEXT_STATUS_END,
- /// Unknown option error
- ARGPAR_ITER_NEXT_STATUS_ERROR_UNKNOWN_OPT,
-
- /// Missing option argument error
- ARGPAR_ITER_NEXT_STATUS_ERROR_MISSING_OPT_ARG,
-
- /// Unexpected option argument error
- ARGPAR_ITER_NEXT_STATUS_ERROR_UNEXPECTED_OPT_ARG,
+ /// Parsing error
+ ARGPAR_ITER_NEXT_STATUS_ERROR = -1,
/// Memory error
- ARGPAR_ITER_NEXT_STATUS_ERROR_MEMORY,
+ ARGPAR_ITER_NEXT_STATUS_ERROR_MEMORY = -12,
};
/*!
@@ -632,12 +659,9 @@ If there are no more original arguments to parse, this function returns
@endparblock
@param[out] error
@parblock
- When this function returns
- #ARGPAR_ITER_NEXT_STATUS_ERROR_UNKNOWN_OPT,
- #ARGPAR_ITER_NEXT_STATUS_ERROR_MISSING_OPT_ARG, or
- #ARGPAR_ITER_NEXT_STATUS_ERROR_UNEXPECTED_OPG_ARG, if this parameter
- is not \c NULL,
- \p *error contains details about the error.
+ When this function returns #ARGPAR_ITER_NEXT_STATUS_ERROR,
+ if this parameter is not \c NULL, \p *error contains details about
+ the error.
Destroy \p *error with argpar_error_destroy().
@endparblock