/** * Emit GNU-standard long option handling code. * * @param[in] opts the program options */ static void emit_long(tOptions * opts) { tOptDesc * od = opts->pOptDesc; int ct = opts->optCt; fputs(zOptionCase, stdout); /* * do each option, ... */ do { /* * Documentation & compiled-out options */ if (SKIP_OPT(od)) continue; emit_match_expr(od->pz_Name, od, opts); emit_action(opts, od); /* * Now, do the same thing for the disablement version of the option. */ if (od->pz_DisableName != NULL) { emit_match_expr(od->pz_DisableName, od, opts); emit_inaction(opts, od); } } while (od++, --ct > 0); printf(UNK_OPT_FMT, OPTION_STR, opts->pzPROGNAME); }
/** * recognize flag options. These go at the end. * At the end, emit code to handle options we don't recognize. * * @param[in] opts the program options */ static void emit_flag(tOptions * opts) { tOptDesc * od = opts->pOptDesc; int opt_ct = opts->optCt; fputs(zOptionCase, stdout); for (;opt_ct > 0; od++, --opt_ct) { if (SKIP_OPT(od) || ! IS_GRAPHIC_CHAR(od->optValue)) continue; printf(zOptionFlag, od->optValue); emit_action(opts, od); } printf(UNK_OPT_FMT, FLAG_STR, opts->pzPROGNAME); }
static void emit_flag(tOptions * pOpts) { tOptDesc* pOptDesc = pOpts->pOptDesc; int optionCt = pOpts->optCt; fputs(zOptionCase, stdout); for (;optionCt > 0; pOptDesc++, --optionCt) { if (SKIP_OPT(pOptDesc)) continue; if (IS_GRAPHIC_CHAR(pOptDesc->optValue)) { printf(zOptionFlag, pOptDesc->optValue); emit_action(pOpts, pOptDesc); } } printf(UNK_OPT_FMT, FLAG_STR, pOpts->pzPROGNAME); }