};
static void
-getopt_long_loop (int argc, char **argv,
+getopt_long_loop (int argc, const char **argv,
const char *options, const struct option *long_options,
const char **p_value, const char **q_value,
int *non_options_count, const char **non_options,
int c;
opterr = 0;
- while ((c = getopt_long (argc, argv, options, long_options, &option_index))
+ while ((c = getopt_long (argc, (char **) argv, options, long_options,
+ &option_index))
!= -1)
{
switch (c)
}
}
+/* Reduce casting, so we can use string literals elsewhere.
+ getopt_long takes an array of char*, but luckily does not modify
+ those elements, so we can pass const char*. */
+static int
+do_getopt_long (int argc, const char **argv, const char *shortopts,
+ const struct option *longopts, int *longind)
+{
+ return getopt_long (argc, (char **) argv, shortopts, longopts, longind);
+}
+
static void
test_getopt_long (void)
{
/* Test disambiguation of options. */
{
int argc = 0;
- char *argv[10];
+ const char *argv[10];
int option_index;
int c;
argv[argc++] = "--x";
optind = 1;
opterr = 0;
- c = getopt_long (argc, argv, "ab", long_options_required, &option_index);
+ c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index);
ASSERT (c == '?');
ASSERT (optopt == 0);
}
{
int argc = 0;
- char *argv[10];
+ const char *argv[10];
int option_index;
int c;
argv[argc++] = "--xt";
optind = 1;
opterr = 0;
- c = getopt_long (argc, argv, "ab", long_options_required, &option_index);
+ c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index);
ASSERT (c == '?');
ASSERT (optopt == 0);
}
{
int argc = 0;
- char *argv[10];
+ const char *argv[10];
int option_index;
int c;
argv[argc++] = "--xtr";
optind = 1;
opterr = 0;
- c = getopt_long (argc, argv, "ab", long_options_required, &option_index);
+ c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index);
ASSERT (c == '?');
ASSERT (optopt == 0);
}
{
int argc = 0;
- char *argv[10];
+ const char *argv[10];
int option_index;
int c;
argv[argc++] = "--xtra";
optind = 1;
opterr = 0;
- c = getopt_long (argc, argv, "ab", long_options_required, &option_index);
+ c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index);
ASSERT (c == 1001);
}
{
int argc = 0;
- char *argv[10];
+ const char *argv[10];
int option_index;
int c;
argv[argc++] = "--xtre";
optind = 1;
opterr = 0;
- c = getopt_long (argc, argv, "ab", long_options_required, &option_index);
+ c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index);
ASSERT (c == '?');
ASSERT (optopt == 0);
}
{
int argc = 0;
- char *argv[10];
+ const char *argv[10];
int option_index;
int c;
argv[argc++] = "--xtrem";
optind = 1;
opterr = 0;
- c = getopt_long (argc, argv, "ab", long_options_required, &option_index);
+ c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index);
ASSERT (c == '?');
ASSERT (optopt == 0);
}
{
int argc = 0;
- char *argv[10];
+ const char *argv[10];
int option_index;
int c;
argv[argc++] = "--xtreme";
optind = 1;
opterr = 0;
- c = getopt_long (argc, argv, "ab", long_options_required, &option_index);
+ c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index);
ASSERT (c == 1002);
}
{
int argc = 0;
- char *argv[10];
+ const char *argv[10];
int option_index;
int c;
argv[argc++] = "--xtremel";
optind = 1;
opterr = 0;
- c = getopt_long (argc, argv, "ab", long_options_required, &option_index);
+ c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index);
ASSERT (c == 1003);
}
{
int argc = 0;
- char *argv[10];
+ const char *argv[10];
int option_index;
int c;
argv[argc++] = "--xtremely";
optind = 1;
opterr = 0;
- c = getopt_long (argc, argv, "ab", long_options_required, &option_index);
+ c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index);
ASSERT (c == 1003);
}
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[20];
+ const char *argv[20];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[20];
+ const char *argv[20];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[20];
+ const char *argv[20];
a_seen = 0;
b_seen = 0;
const char *non_options[10];
int unrecognized = 0;
int argc = 0;
- char *argv[10];
+ const char *argv[10];
a_seen = 0;
b_seen = 0;
test_getopt_long_posix (void)
{
int c = 3;
- char *v[4] = {"test", "-r", "foo", NULL};
- struct option l[] = {{NULL}};
+ const char *v[4] = {"test", "-r", "foo", NULL};
+ struct option l[] = {{NULL, 0, NULL, 0}};
int start;
int result;
for (start = OPTIND_MIN; start <= 1; start++)
{
optind = start;
- result = getopt_long (c, v, "r::", l, NULL);
+ result = do_getopt_long (c, v, "r::", l, NULL);
}
ASSERT (result == 'r');
ASSERT (optarg == NULL);