X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fopt%2Fprivate.h;h=0621c82eb6bcc693c3d2b6fcee0d30e25f720bf8;hp=f2199e48dc90b3581e376d91323a64d843fa2e2b;hb=HEAD;hpb=74257cee33ae3033f961d5f22a0313b8cb1b18d4 diff --git a/ccan/opt/private.h b/ccan/opt/private.h index f2199e48..0621c82e 100644 --- a/ccan/opt/private.h +++ b/ccan/opt/private.h @@ -1,4 +1,4 @@ -/* Licensed under GPLv3+ - see LICENSE file for details */ +/* Licensed under GPLv2+ - see LICENSE file for details */ #ifndef CCAN_OPT_PRIVATE_H #define CCAN_OPT_PRIVATE_H @@ -7,14 +7,21 @@ extern unsigned int opt_count, opt_num_short, opt_num_short_arg, opt_num_long; extern const char *opt_argv0; -#define subtable_of(entry) ((struct opt_table *)((entry)->names)) +#define subtable_of(entry) ((const struct opt_table *)((entry)->names)) const char *first_sopt(unsigned *i); const char *next_sopt(const char *names, unsigned *i); const char *first_lopt(unsigned *i, unsigned *len); const char *next_lopt(const char *p, unsigned *i, unsigned *len); -int parse_one(int *argc, char *argv[], unsigned *offset, - void (*errlog)(const char *fmt, ...)); +struct opt_alloc { + void *(*alloc)(size_t size); + void *(*realloc)(void *ptr, size_t size); + void (*free)(void *ptr); +}; +extern struct opt_alloc opt_alloc; + +int parse_one(int *argc, char *argv[], enum opt_type is_early, unsigned *offset, + void (*errlog)(const char *fmt, ...), bool unknown_ok); #endif /* CCAN_OPT_PRIVATE_H */