| 82 | } |
| 83 | |
| 84 | bool parse_early_args(int *argc, char ***argv, ...) |
| 85 | { |
| 86 | char **a; |
| 87 | va_list ap; |
| 88 | |
| 89 | va_start(ap, argv); |
| 90 | *argc = 1; |
| 91 | a = malloc(sizeof(*a) * (*argc + 1)); |
| 92 | a[0] = (*argv)[0]; |
| 93 | while ((a[*argc] = va_arg(ap, char *)) != NULL) { |
| 94 | (*argc)++; |
| 95 | a = realloc(a, sizeof(*a) * (*argc + 1)); |
| 96 | } |
| 97 | |
| 98 | if (allocated) |
| 99 | free(*argv); |
| 100 | |
| 101 | *argv = a; |
| 102 | allocated = true; |
| 103 | |
| 104 | return opt_early_parse(*argc, *argv, save_err_output); |
| 105 | } |
| 106 | |
| 107 | bool parse_early_args_incomplete(int *argc, char ***argv, ...) |
| 108 | { |
no test coverage detected