X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fargpar-utils%2Fargpar-utils.h;h=1bdff7e19822b065e056acfe348ab34c985de1f8;hb=ef9ff9cb5ff4dd763d4c9dbbcfcb5952adce167e;hp=89c5db3118d1d90f8c7efac24912bdd52885459b;hpb=35c4b2b3fec47b84bf169557ea23454881b76027;p=lttng-tools.git diff --git a/src/common/argpar-utils/argpar-utils.h b/src/common/argpar-utils/argpar-utils.h index 89c5db311..1bdff7e19 100644 --- a/src/common/argpar-utils/argpar-utils.h +++ b/src/common/argpar-utils/argpar-utils.h @@ -18,11 +18,14 @@ extern "C" { #include #include +#define WHILE_PARSING_ARG_N_ARG_FMT "While parsing argument #%d (`%s`): " + enum parse_next_item_status { PARSE_NEXT_ITEM_STATUS_OK = 0, PARSE_NEXT_ITEM_STATUS_END = 1, PARSE_NEXT_ITEM_STATUS_ERROR = -1, + PARSE_NEXT_ITEM_STATUS_ERROR_MEMORY = -2, }; /* @@ -43,11 +46,16 @@ enum parse_next_item_status * * If `unknown_opt_is_error` is true, an unknown option is considered an error. * Otherwise, it is considered as the end of the argument list. + * + * If `error_out` is given and PARSE_NEXT_ITEM_STATUS_ERROR is returned, set + * `*error_out` to the argpar_error object corresponding to the error. The + * caller must free the object with `argpar_error_destroy`. */ -ATTR_FORMAT_PRINTF(6, 7) +ATTR_FORMAT_PRINTF(7, 8) enum parse_next_item_status parse_next_item(struct argpar_iter *iter, const struct argpar_item **item, int argc_offset, const char **argv, bool unknown_opt_is_error, + const struct argpar_error **error_out, const char *context_fmt, ...); #ifdef __cplusplus