Pierre Habouzit <madcoder@xxxxxxxxxx> writes: > With that, you write parsers this way: > > { > struct parse_opt_ctx_t ctx; > > parse_options_start(&ctx, argc, argv, 0); > > for (;;) { > const char *arg; > > switch (parse_options_step(&ctx, options, usagestr)) { > case PARSE_OPT_HELP: > /* dump your help here, the one for options/usagestr is already dumped */ > exit(129); > case PARSE_OPT_DONE: > goto done; > } > > arg = *ctx->argv++; > ctx->argc--; > > if (strcmp(arg, "-")) { > /* you're on baby ! */ > } else if .... > } else { > error("unknown option %s", arg); > parse_options_usage(options, usagestr); > /* dump your help here */ > exit(129); > } > } > > done: > argc = parse_options_end(&ctx); > } Nice. I have started doing the same (insignificant details are different; e.g. I used "positive is unknown" convention instead ) and then the solution is sitting in my mbox ;-) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html