X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fopt%2Fprivate.h;h=47b8c4e056eead80956103965c1324033da9b05a;hb=2ab3ac5b30c1cc58c0846e05c5943c03e7111ad8;hp=5d9eca23a0ddf55b81f812009b2b09e0fed104d7;hpb=d89e5744f30b584ac4909ce1164af1289c41359b;p=ccan diff --git a/ccan/opt/private.h b/ccan/opt/private.h index 5d9eca23..47b8c4e0 100644 --- a/ccan/opt/private.h +++ b/ccan/opt/private.h @@ -1,3 +1,4 @@ +/* Licensed under GPLv2+ - see LICENSE file for details */ #ifndef CCAN_OPT_PRIVATE_H #define CCAN_OPT_PRIVATE_H @@ -6,9 +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); + +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, ...)); #endif /* CCAN_OPT_PRIVATE_H */