Indicate an array option with a flag rather than a special type so that

in future will not have to be strings.
This commit is contained in:
nicm
2019-04-23 20:36:55 +00:00
parent 564e44adc6
commit 772b3b7a06
8 changed files with 164 additions and 125 deletions

19
cmd.c
View File

@ -321,10 +321,11 @@ cmd_try_alias(int *argc, char ***argv)
{
struct options_entry *o;
struct options_array_item *a;
union options_value *ov;
int old_argc = *argc, new_argc, i;
char **old_argv = *argv, **new_argv;
size_t wanted;
const char *s, *cp = NULL;
const char *cp = NULL;
o = options_get_only(global_options, "command-alias");
if (o == NULL)
@ -333,14 +334,16 @@ cmd_try_alias(int *argc, char ***argv)
a = options_array_first(o);
while (a != NULL) {
s = options_array_item_value(a);
if (s != NULL) {
cp = strchr(s, '=');
if (cp != NULL &&
(size_t)(cp - s) == wanted &&
strncmp(old_argv[0], s, wanted) == 0)
break;
ov = options_array_item_value(a);
if (ov == NULL) {
a = options_array_next(a);
continue;
}
cp = strchr(ov->string, '=');
if (cp != NULL &&
(size_t)(cp - ov->string) == wanted &&
strncmp(old_argv[0], ov->string, wanted) == 0)
break;
a = options_array_next(a);
}
if (a == NULL)