Lines Matching refs:cbi

32 	tpx *p, v = (func)(cbi->data, NULL, 0); \
47 cbi->data_long = v; \
128 struct HXoptcb cbi; member
150 static void do_assign(struct HXoptcb *cbi, const char *arg0) in do_assign() argument
152 const struct HXoption *opt = cbi->current; in do_assign()
162 cbi->data_long = 1; in do_assign()
166 *static_cast(int *, opt->ptr) = cbi->data_long = opt->val; in do_assign()
169 *static_cast(const char **, opt->ptr) = cbi->data = opt->uptr; in do_assign()
174 *p = strcasecmp(cbi->data, "yes") == 0 || in do_assign()
175 strcasecmp(cbi->data, "on") == 0 || in do_assign()
176 strcasecmp(cbi->data, "true") == 0 || in do_assign()
177 (HX_isdigit(*cbi->data) && in do_assign()
178 strtoul(cbi->data, NULL, 0) != 0); in do_assign()
182 *static_cast(unsigned char *, opt->ptr) = *cbi->data; in do_assign()
207 cbi->data_dbl = strtod(cbi->data, NULL); in do_assign()
209 *static_cast(float *, opt->ptr) = cbi->data_dbl; in do_assign()
212 cbi->data_dbl = strtod(cbi->data, NULL); in do_assign()
214 *static_cast(double *, opt->ptr) = cbi->data_dbl; in do_assign()
218 *static_cast(char **, opt->ptr) = HX_strdup(cbi->data); in do_assign()
221 HXdeque_push(opt->ptr, HX_strdup(cbi->data)); in do_assign()
225 HXmc_strcpy(opt->ptr, cbi->data); in do_assign()
228 cbi->data = arg0; in do_assign()
236 opt->cb(cbi); in do_assign()
501 par->cbi.current = lookup_long_pfx(par->cbi.table, key + 2); in HX_getopt_twolong()
502 if (par->cbi.current == &HXopt_ambig_prefix) in HX_getopt_twolong()
504 if (par->cbi.current == NULL) { in HX_getopt_twolong()
518 par->cbi.flags = HXOPTCB_BY_LONG; in HX_getopt_twolong()
519 if (takes_void(par->cbi.current->type)) { in HX_getopt_twolong()
520 par->cbi.data = NULL; in HX_getopt_twolong()
522 } else if (par->cbi.current->type & HXOPT_OPTIONAL) { in HX_getopt_twolong()
527 par->cbi.data = value; in HX_getopt_twolong()
531 par->cbi.data = NULL; in HX_getopt_twolong()
537 par->cbi.data = value; in HX_getopt_twolong()
553 par->cbi.current = lookup_long_pfx(par->cbi.table, key + 2); in HX_getopt_long()
554 if (par->cbi.current == &HXopt_ambig_prefix) { in HX_getopt_long()
559 if (par->cbi.current == NULL) { in HX_getopt_long()
577 if (takes_void(par->cbi.current->type)) { in HX_getopt_long()
583 par->cbi.flags = HXOPTCB_BY_LONG; in HX_getopt_long()
584 par->cbi.data = value; in HX_getopt_long()
586 do_assign(&par->cbi, par->arg0); in HX_getopt_long()
599 par->cbi.current = lookup_short(par->cbi.table, op); in HX_getopt_short()
600 if (par->cbi.current == NULL) { in HX_getopt_short()
618 par->cbi.flags = HXOPTCB_BY_SHORT; in HX_getopt_short()
619 if (takes_void(par->cbi.current->type)) { in HX_getopt_short()
621 par->cbi.data = NULL; in HX_getopt_short()
625 par->cbi.data = cur + 1; in HX_getopt_short()
630 if (par->cbi.current->type & HXOPT_OPTIONAL) { in HX_getopt_short()
634 par->cbi.data = cur; in HX_getopt_short()
638 par->cbi.data = NULL; in HX_getopt_short()
645 par->cbi.data = cur; in HX_getopt_short()
712 ps.cbi.table = table; in HX_getopt()
749 do_assign(&ps.cbi, ps.arg0); in HX_getopt()
783 ps.cbi.data = ps.arg0; in HX_getopt()
785 HX_getopt_help(&ps.cbi, stderr); in HX_getopt()
787 HX_getopt_usage(&ps.cbi, stderr); in HX_getopt()
798 EXPORT_SYMBOL void HX_getopt_help(const struct HXoptcb *cbi, FILE *nfp) in HX_getopt_help() argument
805 HX_getopt_usage(cbi, nfp); in HX_getopt_help()
808 for (travp = cbi->table; travp->type != HXTYPE_XSNTMARK; ++travp) { in HX_getopt_help()
817 for (travp = cbi->table; travp->type != HXTYPE_XSNTMARK; ++travp) { in HX_getopt_help()
827 EXPORT_SYMBOL void HX_getopt_help_cb(const struct HXoptcb *cbi) in HX_getopt_help_cb() argument
829 HX_getopt_help(cbi, stdout); in HX_getopt_help_cb()
833 EXPORT_SYMBOL void HX_getopt_usage(const struct HXoptcb *cbi, FILE *nfp) in HX_getopt_usage() argument
840 const char *arg0 = cbi->data; in HX_getopt_usage()
854 for (travp = cbi->table; travp->type != HXTYPE_XSNTMARK; ++travp) { in HX_getopt_usage()
878 for (travp = cbi->table; travp->type != HXTYPE_XSNTMARK; ++travp) { in HX_getopt_usage()
895 EXPORT_SYMBOL void HX_getopt_usage_cb(const struct HXoptcb *cbi) in HX_getopt_usage_cb() argument
897 HX_getopt_usage(cbi, stdout); in HX_getopt_usage_cb()
933 struct HXoptcb cbi = { in HX_shconf_assign() local
939 if ((cbi.current = lookup_long(table, key)) == NULL) in HX_shconf_assign()
941 do_assign(&cbi, NULL); in HX_shconf_assign()