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