return option->id;
}
-char** option_parser_get_args(OptionParser *state, int argc, char *argv[]) {
+char** option_parser_get_args(const OptionParser *state, int argc, char *argv[]) {
/* Returns positional args as a strv.
* If "--" was found, it has been removed. */
#pragma once
#include "shared-forward.h"
+#include "strv.h"
typedef enum OptionFlags {
OPTION_OPTIONAL_ARG = 1U << 0, /* Same as optional_argument in getopt */
#define FOREACH_OPTION(parser, opt, argc, argv, ret_a, on_error) \
FOREACH_OPTION_FULL(parser, opt, argc, argv, /* ret_o= */ NULL, ret_a, on_error)
-char** option_parser_get_args(OptionParser *state, int argc, char *argv[]);
+char** option_parser_get_args(const OptionParser *state, int argc, char *argv[]);
+static inline size_t option_parser_get_n_args(const OptionParser *state, int argc, char *argv[]) {
+ return strv_length(option_parser_get_args(state, argc, argv));
+}
+
int _option_parser_get_help_table(
const Option options[],
const Option options_end[],
char **args = option_parser_get_args(&state, argc, argv);
ASSERT_TRUE(strv_equal(args, remaining));
ASSERT_STREQ(argv[0], saved_argv0);
+
+ ASSERT_EQ(option_parser_get_n_args(&state, argc, argv), strv_length(remaining));
}
static void test_option_invalid_one(