亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usage.c

?? 基于ntp協議的網絡時間服務程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* *  usage.c  $Id: usage.c,v 4.15 2007/04/28 22:19:23 bkorb Exp $ * Time-stamp:      "2007-04-15 11:02:46 bkorb" * *  This module implements the default usage procedure for *  Automated Options.  It may be overridden, of course. * *  Sort options:    --start=END-[S]TATIC-FORWARD --patt='^/\*($|[^:])' \    --out=xx.c key='^[a-zA-Z0-9_]+\(' --trail='^/\*:' \    --spac=2 --input=usage.c *//* *  Automated Options copyright 1992-2007 Bruce Korb * *  Automated Options is free software. *  You may redistribute it and/or modify it under the terms of the *  GNU General Public License, as published by the Free Software *  Foundation; either version 2, or (at your option) any later version. * *  Automated Options is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with Automated Options.  See the file "COPYING".  If not, *  write to:  The Free Software Foundation, Inc., *             51 Franklin Street, Fifth Floor, *             Boston, MA  02110-1301, USA. * * As a special exception, Bruce Korb gives permission for additional * uses of the text contained in his release of AutoOpts. * * The exception is that, if you link the AutoOpts library with other * files to produce an executable, this does not by itself cause the * resulting executable to be covered by the GNU General Public License. * Your use of that executable is in no way restricted on account of * linking the AutoOpts library code into it. * * This exception does not however invalidate any other reasons why * the executable file might be covered by the GNU General Public License. * * This exception applies only to the code released by Bruce Korb under * the name AutoOpts.  If you copy code from other sources under the * General Public License into a copy of AutoOpts, as the General Public * License permits, the exception does not apply to the code that you add * in this way.  To avoid misleading anyone as to the status of such * modified files, you must delete this exception notice from them. * * If you write modifications of your own for AutoOpts, it is your choice * whether to permit this exception to apply to your modifications. * If you do not wish that, delete this exception notice. */#define OPTPROC_L_N_S  (OPTPROC_LONGOPT | OPTPROC_SHORTOPT)static arg_types_t argTypes;FILE* option_usage_fp = NULL;static char    zOptFmtLine[ 16 ];static ag_bool displayEnum;/* = = = START-STATIC-FORWARD = = = *//* static forward declarations maintained by :mkfwd */static ag_boolcheckGNUUsage( tOptions* pOpts );static voidprintExtendedUsage(    tOptions*     pOptions,    tOptDesc*     pOD,    arg_types_t*  pAT );static voidprintInitList(    tCC* const* papz,    ag_bool*    pInitIntro,    tCC*        pzRc,    tCC*        pzPN );static voidprintOneUsage(    tOptions*     pOptions,    tOptDesc*     pOD,    arg_types_t*  pAT );static voidprintOptionUsage(    tOptions* pOpts,    int       ex_code,    tCC*      pOptTitle );static voidprintProgramDetails( tOptions* pOptions );static intsetGnuOptFmts( tOptions* pOpts, tCC** ppT );static intsetStdOptFmts( tOptions* pOpts, tCC** ppT );/* = = = END-STATIC-FORWARD = = = *//* *  Figure out if we should try to format usage text sort-of like *  the way many GNU programs do. */static ag_boolcheckGNUUsage( tOptions* pOpts ){    char* pz = getenv( "AUTOOPTS_USAGE" );    if (pz == NULL)        ;    else if (streqvcmp( pz, "gnu" ) == 0)        pOpts->fOptSet |= OPTPROC_GNUUSAGE;    else if (streqvcmp( pz, "autoopts" ) == 0)        pOpts->fOptSet &= ~OPTPROC_GNUUSAGE;    return (pOpts->fOptSet & OPTPROC_GNUUSAGE) ? AG_TRUE : AG_FALSE;}/*=export_func  optionOnlyUsage * * what:  Print usage text for just the options * arg:   + tOptions*   + pOpts    + program options descriptor + * arg:   + int         + ex_code  + exit code for calling exit(3) + * * doc: *  This routine will print only the usage for each option. *  This function may be used when the emitted usage must incorporate *  information not available to AutoOpts.=*/voidoptionOnlyUsage(    tOptions* pOpts,    int       ex_code ){    tCC* pOptTitle = NULL;    /*     *  Determine which header and which option formatting strings to use     */    if (checkGNUUsage(pOpts)) {        (void)setGnuOptFmts( pOpts, &pOptTitle );    }    else {        (void)setStdOptFmts( pOpts, &pOptTitle );    }    printOptionUsage( pOpts, ex_code, pOptTitle );}/*=export_func  optionUsage * private: * * what:  Print usage text * arg:   + tOptions* + pOptions + program options descriptor + * arg:   + int       + exitCode + exit code for calling exit(3) + * * doc: *  This routine will print usage in both GNU-standard and AutoOpts-expanded *  formats.  The descriptor specifies the default, but AUTOOPTS_USAGE will *  over-ride this, providing the value of it is set to either "gnu" or *  "autoopts".  This routine will @strong{not} return. * *  If "exitCode" is "EX_USAGE" (normally 64), then output will to to stdout *  and the actual exit code will be "EXIT_SUCCESS".=*/voidoptionUsage(    tOptions* pOptions,    int       usage_exit_code ){    int actual_exit_code =        (usage_exit_code == EX_USAGE) ? EXIT_SUCCESS : usage_exit_code;    displayEnum = AG_FALSE;    /*     *  Paged usage will preset option_usage_fp to an output file.     *  If it hasn't already been set, then set it to standard output     *  on successful exit (help was requested), otherwise error out.     */    if (option_usage_fp == NULL)        option_usage_fp = (actual_exit_code != EXIT_SUCCESS) ? stderr : stdout;    fprintf( option_usage_fp, pOptions->pzUsageTitle, pOptions->pzProgName );    {        tCC* pOptTitle = NULL;        /*         *  Determine which header and which option formatting strings to use         */        if (checkGNUUsage(pOptions)) {            int flen = setGnuOptFmts( pOptions, &pOptTitle );            sprintf( zOptFmtLine, zFmtFmt, flen );            fputc( '\n', option_usage_fp );        }        else {            int flen = setStdOptFmts( pOptions, &pOptTitle );            sprintf( zOptFmtLine, zFmtFmt, flen );            /*             *  When we exit with EXIT_SUCCESS and the first option is a doc             *  option, we do *NOT* want to emit the column headers.             *  Otherwise, we do.             */            if (  (usage_exit_code != EXIT_SUCCESS)               || ((pOptions->pOptDesc->fOptState & OPTST_DOCUMENT) == 0) )                fputs( pOptTitle, option_usage_fp );        }        printOptionUsage( pOptions, usage_exit_code, pOptTitle );    }    /*     *  Describe the mechanics of denoting the options     */    switch (pOptions->fOptSet & OPTPROC_L_N_S) {    case OPTPROC_L_N_S:     fputs( zFlagOkay, option_usage_fp ); break;    case OPTPROC_SHORTOPT:  break;    case OPTPROC_LONGOPT:   fputs( zNoFlags,  option_usage_fp ); break;    case 0:                 fputs( zOptsOnly, option_usage_fp ); break;    }    if ((pOptions->fOptSet & OPTPROC_NUM_OPT) != 0) {        fputs( zNumberOpt, option_usage_fp );    }    if ((pOptions->fOptSet & OPTPROC_REORDER) != 0) {        fputs( zReorder, option_usage_fp );    }    if (pOptions->pzExplain != NULL)        fputs( pOptions->pzExplain, option_usage_fp );    /*     *  IF the user is asking for help (thus exiting with SUCCESS),     *  THEN see what additional information we can provide.     */    if (usage_exit_code == EXIT_SUCCESS)        printProgramDetails( pOptions );    if (pOptions->pzBugAddr != NULL)        fprintf( option_usage_fp, zPlsSendBugs, pOptions->pzBugAddr );    fflush( option_usage_fp );    exit( actual_exit_code );}/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *   PER OPTION TYPE USAGE INFORMATION */static voidprintExtendedUsage(    tOptions*     pOptions,    tOptDesc*     pOD,    arg_types_t*  pAT ){    /*     *  IF there are option conflicts or dependencies,     *  THEN print them here.     */    if (  (pOD->pOptMust != NULL)       || (pOD->pOptCant != NULL) ) {        fputs( zTabHyp, option_usage_fp );        /*         *  DEPENDENCIES:         */        if (pOD->pOptMust != NULL) {            const int* pOptNo = pOD->pOptMust;            fputs( zReqThese, option_usage_fp );            for (;;) {                fprintf( option_usage_fp, zTabout, pOptions->pOptDesc[                             *pOptNo ].pz_Name );                if (*++pOptNo == NO_EQUIVALENT)                    break;            }            if (pOD->pOptCant != NULL)                fputs( zTabHypAnd, option_usage_fp );        }        /*         *  CONFLICTS:         */        if (pOD->pOptCant != NULL) {            const int* pOptNo = pOD->pOptCant;            fputs( zProhib, option_usage_fp );            for (;;) {                fprintf( option_usage_fp, zTabout, pOptions->pOptDesc[                             *pOptNo ].pz_Name );                if (*++pOptNo == NO_EQUIVALENT)                    break;            }        }    }    /*     *  IF there is a disablement string     *  THEN print the disablement info     */    if (pOD->pz_DisableName != NULL )        fprintf( option_usage_fp, zDis, pOD->pz_DisableName );    /*     *  IF the numeric option has a special callback,     *  THEN call it, requesting the range or other special info     */    if (  (OPTST_GET_ARGTYPE(pOD->fOptState) == OPARG_TYPE_NUMERIC)       && (pOD->pOptProc != NULL)       && (pOD->pOptProc != optionNumericVal) ) {        (*(pOD->pOptProc))( pOptions, NULL );    }    /*     *  IF the option defaults to being enabled,     *  THEN print that out     */    if (pOD->fOptState & OPTST_INITENABLED)        fputs( zEnab, option_usage_fp );    /*     *  IF  the option is in an equivalence class     *        AND not the designated lead     *  THEN print equivalence and leave it at that.     */    if (  (pOD->optEquivIndex != NO_EQUIVALENT)       && (pOD->optEquivIndex != pOD->optActualIndex )  )  {        fprintf( option_usage_fp, zAlt,                 pOptions->pOptDesc[ pOD->optEquivIndex ].pz_Name );        return;    }    /*     *  IF this particular option can NOT be preset     *    AND some form of presetting IS allowed,     *    AND it is not an auto-managed option (e.g. --help, et al.)     *  THEN advise that this option may not be preset.     */    if (  ((pOD->fOptState & OPTST_NO_INIT) != 0)       && (  (pOptions->papzHomeList != NULL)          || (pOptions->pzPROGNAME != NULL)          )       && (pOD->optIndex < pOptions->presetOptCt)       )        fputs( zNoPreset, option_usage_fp );    /*     *  Print the appearance requirements.     */    if (OPTST_GET_ARGTYPE(pOD->fOptState) == OPARG_TYPE_MEMBERSHIP)        fputs( zMembers, option_usage_fp );    else switch (pOD->optMinCt) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄网站免费久久| 欧美日韩国产小视频| 91亚洲精品乱码久久久久久蜜桃| 一区在线观看免费| 国产精品久久久久影院色老大| 国产午夜精品一区二区三区四区| 日韩精品最新网址| 精品久久人人做人人爰| 亚洲中国最大av网站| 亚洲一区二区三区美女| 国产黄色精品网站| 欧美大片在线观看一区二区| 一区二区三区在线免费播放| 国产精品自在欧美一区| 91精品蜜臀在线一区尤物| 一区二区在线观看免费| 亚洲大片精品永久免费| 一本到高清视频免费精品| 日本一区二区三区免费乱视频| 中文字幕亚洲在| av资源网一区| 亚洲国产精品精华液ab| 国产99精品国产| 欧美激情一二三区| 成人一二三区视频| 国产亚洲欧美一级| 国产精品一区二区x88av| 日韩美女视频在线| 狠狠色丁香婷婷综合久久片| 日韩精品自拍偷拍| 国产在线国偷精品产拍免费yy| 91影院在线免费观看| 国产精品乱人伦中文| 成人综合在线网站| 亚洲国产成人自拍| 亚洲一区二区欧美日韩| 在线观看亚洲专区| 亚洲国产aⅴ成人精品无吗| 日本丶国产丶欧美色综合| 亚洲欧美影音先锋| 一本大道久久a久久精品综合| 欧美一级专区免费大片| 久久精品久久综合| 欧美精品一区二区三区高清aⅴ| 亚洲欧洲日韩在线| 欧美羞羞免费网站| 日韩精品乱码免费| 精品福利在线导航| 性感美女久久精品| 精品国产凹凸成av人导航| 国产一区二区三区四区在线观看| 欧美三级日韩三级| 奇米影视一区二区三区| 色美美综合视频| 欧美国产精品一区| 在线精品视频免费播放| 男男成人高潮片免费网站| 欧美大片一区二区三区| 国产美女在线观看一区| 亚洲欧美日韩一区| jiyouzz国产精品久久| 久久久午夜电影| 色综合久久久久| 黑人巨大精品欧美黑白配亚洲| 欧美理论电影在线| 国产在线播精品第三| 欧美一区二区精品在线| 粉嫩嫩av羞羞动漫久久久| 亚洲一二三四在线观看| 欧美变态口味重另类| av成人老司机| 奇米四色…亚洲| 亚洲欧美日韩精品久久久久| 欧美一级夜夜爽| 日韩福利视频导航| 在线电影国产精品| 成人丝袜视频网| 日日夜夜精品视频免费| 国产精品卡一卡二卡三| 91精品国产免费| 一本久久综合亚洲鲁鲁五月天| 1024亚洲合集| 欧美tk—视频vk| 欧美三级在线视频| 99久久精品国产精品久久| 麻豆精品视频在线观看| 亚洲视频香蕉人妖| 久久久一区二区| 日韩欧美一区电影| 在线观看日韩毛片| fc2成人免费人成在线观看播放| 国产精品久久久久影院色老大| 9i看片成人免费高清| 国产尤物一区二区| 免费av网站大全久久| 亚洲综合精品久久| 国产精品久久久久久福利一牛影视| 99久久综合国产精品| 尤物在线观看一区| 日本三级亚洲精品| 亚洲乱码一区二区三区在线观看| 色综合久久久网| www.在线欧美| 成人午夜精品在线| 玉足女爽爽91| 亚洲欧美一区二区不卡| 中文字幕日韩欧美一区二区三区| 91视频一区二区| 成人国产亚洲欧美成人综合网| 亚洲美女视频一区| 亚洲欧美欧美一区二区三区| 国产精品国产三级国产有无不卡 | 亚洲成人激情综合网| 亚洲三级免费观看| 亚洲少妇30p| 一区二区高清在线| 亚洲资源在线观看| 亚洲成人自拍偷拍| 视频一区二区中文字幕| 午夜亚洲国产au精品一区二区| 欧美一级xxx| 欧美成人免费网站| 色噜噜狠狠成人中文综合| 在线免费一区三区| 欧美日韩精品一区二区在线播放| 国产在线精品一区二区不卡了| 一区二区三区 在线观看视频| 久久综合九色综合97_久久久| 色婷婷狠狠综合| 欧美午夜免费电影| 91精品国产91久久久久久一区二区 | 亚洲人成在线观看一区二区| 国产精品久久久久久久午夜片 | 日韩一区二区免费在线观看| 欧美大黄免费观看| 国产精品免费人成网站| 欧美夫妻性生活| 日韩丝袜情趣美女图片| 久久色视频免费观看| 国产精品素人视频| 亚洲国产欧美一区二区三区丁香婷| 国产午夜精品久久| 亚洲色图视频网站| 免费成人在线观看| 成人激情综合网站| 国产精品亚洲视频| 91久久精品一区二区三| 91精品国产综合久久小美女| 色综合网站在线| 337p亚洲精品色噜噜| 精品粉嫩超白一线天av| 国产精品福利一区二区三区| 久久综合av免费| 亚洲乱码国产乱码精品精98午夜| 国产日产欧美一区| 亚洲专区一二三| 成人免费视频一区| 正在播放亚洲一区| 综合中文字幕亚洲| 麻豆精品视频在线| 一本高清dvd不卡在线观看| 97成人超碰视| 精品少妇一区二区三区在线播放| 欧美日韩国产小视频在线观看| 欧美日韩二区三区| 国产精品视频一二三| 免费高清视频精品| 91亚洲男人天堂| 欧美色视频在线| 中文字幕成人网| 久久69国产一区二区蜜臀| 奇米888四色在线精品| 日韩高清在线不卡| 在线观看日韩电影| 日韩美女啊v在线免费观看| 久久精品国产亚洲aⅴ| 紧缚奴在线一区二区三区| 国产一区中文字幕| 波多野结衣视频一区| 日韩欧美www| 免费成人你懂的| 国产91精品在线观看| 色综合久久天天| 亚洲四区在线观看| 日韩国产欧美一区二区三区| 欧美专区日韩专区| 亚洲综合在线电影| 菠萝蜜视频在线观看一区| 欧美性色黄大片| 亚洲美女一区二区三区| 99久久精品免费观看| 国产精品久久久久久亚洲伦 | 国产精品电影院| 一区二区三区小说| 美女任你摸久久| 欧美精品久久一区二区三区| 亚洲一区中文日韩| 欧洲一区二区三区在线| 亚洲自拍偷拍麻豆| 在线不卡欧美精品一区二区三区|