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