/** * Print program details. * @param[in] opts the program option descriptor */ static void prt_prog_detail(tOptions * opts) { bool need_intro = (opts->papzHomeList == NULL); /* * Display all the places we look for config files, if we have * a list of directories to search. */ if (! need_intro) prt_ini_list(opts->papzHomeList, opts->pzRcName, opts->pzProgPath); /* * Let the user know about environment variable settings */ if ((opts->fOptSet & OPTPROC_ENVIRON) != 0) { if (need_intro) fputs(zPresetIntro, option_usage_fp); fprintf(option_usage_fp, zExamineFmt, opts->pzPROGNAME); } /* * IF we found an enumeration, * THEN hunt for it again. Call the handler proc with a NULL * option struct pointer. That tells it to display the keywords. */ if (displayEnum) { int ct = opts->optCt; int optNo = 0; tOptDesc * od = opts->pOptDesc; fputc(NL, option_usage_fp); fflush(option_usage_fp); do { switch (OPTST_GET_ARGTYPE(od->fOptState)) { case OPARG_TYPE_ENUMERATION: case OPARG_TYPE_MEMBERSHIP: (*(od->pOptProc))(OPTPROC_EMIT_USAGE, od); } } while (od++, optNo++, (--ct > 0)); } /* * If there is a detail string, now is the time for that. */ if (opts->pzDetail != NULL) fputs(opts->pzDetail, option_usage_fp); }
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PROGRAM DETAILS */ static void prt_prog_detail(tOptions* pOptions) { ag_bool initIntro = AG_TRUE; /* * Display all the places we look for config files */ prt_ini_list(pOptions->papzHomeList, &initIntro, pOptions->pzRcName, pOptions->pzProgPath); /* * Let the user know about environment variable settings */ if ((pOptions->fOptSet & OPTPROC_ENVIRON) != 0) { if (initIntro) fputs(zPresetIntro, option_usage_fp); fprintf(option_usage_fp, zExamineFmt, pOptions->pzPROGNAME); } /* * IF we found an enumeration, * THEN hunt for it again. Call the handler proc with a NULL * option struct pointer. That tells it to display the keywords. */ if (displayEnum) { int ct = pOptions->optCt; int optNo = 0; tOptDesc* pOD = pOptions->pOptDesc; fputc('\n', option_usage_fp); fflush(option_usage_fp); do { switch (OPTST_GET_ARGTYPE(pOD->fOptState)) { case OPARG_TYPE_ENUMERATION: case OPARG_TYPE_MEMBERSHIP: (*(pOD->pOptProc))(OPTPROC_EMIT_USAGE, pOD); } } while (pOD++, optNo++, (--ct > 0)); } /* * If there is a detail string, now is the time for that. */ if (pOptions->pzDetail != NULL) fputs(pOptions->pzDetail, option_usage_fp); }