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

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

?? argmatch.c

?? Linux下文件工具。
?? C
字號:
/* argmatch.c -- find a match for a string in an array   Copyright (C) 1990, 1998, 1999, 2001 Free Software Foundation, Inc.   This program is free software; you can 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.   This program 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 this program; if not, write to the Free Software Foundation,   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  *//* Written by David MacKenzie <djm@ai.mit.edu>   Modified by Akim Demaille <demaille@inf.enst.fr> */#include "argmatch.h"#include <stdio.h>#ifdef STDC_HEADERS# include <string.h>#endif#if HAVE_LOCALE_H# include <locale.h>#endif#if ENABLE_NLS# include <libintl.h># define _(Text) gettext (Text)#else# define _(Text) Text#endif#include "error.h"#include "quotearg.h"#include "quote.h"#include "unlocked-io.h"/* When reporting an invalid argument, show nonprinting characters   by using the quoting style ARGMATCH_QUOTING_STYLE.  Do not use   literal_quoting_style.  */#ifndef ARGMATCH_QUOTING_STYLE# define ARGMATCH_QUOTING_STYLE locale_quoting_style#endif/* The following test is to work around the gross typo in   systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE   is defined to 0, not 1.  */#if !EXIT_FAILURE# undef EXIT_FAILURE# define EXIT_FAILURE 1#endif/* Non failing version of argmatch call this function after failing. */#ifndef ARGMATCH_DIE# define ARGMATCH_DIE exit (EXIT_FAILURE)#endif#ifdef ARGMATCH_DIE_DECLARGMATCH_DIE_DECL;#endifstatic void__argmatch_die (void){  ARGMATCH_DIE;}/* Used by XARGMATCH and XARGCASEMATCH.  See description in argmatch.h.   Default to __argmatch_die, but allow caller to change this at run-time. */argmatch_exit_fn argmatch_die = __argmatch_die;/* If ARG is an unambiguous match for an element of the   null-terminated array ARGLIST, return the index in ARGLIST   of the matched element, else -1 if it does not match any element   or -2 if it is ambiguous (is a prefix of more than one element).   If SENSITIVE, comparison is case sensitive.   If VALLIST is none null, use it to resolve ambiguities limited to   synonyms, i.e., for     "yes", "yop" -> 0     "no", "nope" -> 1   "y" is a valid argument, for `0', and "n" for `1'.  */static int__argmatch_internal (const char *arg, const char *const *arglist,		     const char *vallist, size_t valsize,		     int case_sensitive){  int i;			/* Temporary index in ARGLIST.  */  size_t arglen;		/* Length of ARG.  */  int matchind = -1;		/* Index of first nonexact match.  */  int ambiguous = 0;		/* If nonzero, multiple nonexact match(es).  */  arglen = strlen (arg);  /* Test all elements for either exact match or abbreviated matches.  */  for (i = 0; arglist[i]; i++)    {      if (case_sensitive	  ? !strncmp (arglist[i], arg, arglen)	  : !strncasecmp (arglist[i], arg, arglen))	{	  if (strlen (arglist[i]) == arglen)	    /* Exact match found.  */	    return i;	  else if (matchind == -1)	    /* First nonexact match found.  */	    matchind = i;	  else	    {	      /* Second nonexact match found.  */	      if (vallist == NULL		  || memcmp (vallist + valsize * matchind,			     vallist + valsize * i, valsize))		{		  /* There is a real ambiguity, or we could not		     disambiguate. */		  ambiguous = 1;		}	    }	}    }  if (ambiguous)    return -2;  else    return matchind;}/* argmatch - case sensitive version */intargmatch (const char *arg, const char *const *arglist,	  const char *vallist, size_t valsize){  return __argmatch_internal (arg, arglist, vallist, valsize, 1);}/* argcasematch - case insensitive version */intargcasematch (const char *arg, const char *const *arglist,	      const char *vallist, size_t valsize){  return __argmatch_internal (arg, arglist, vallist, valsize, 0);}/* Error reporting for argmatch.   CONTEXT is a description of the type of entity that was being matched.   VALUE is the invalid value that was given.   PROBLEM is the return value from argmatch.  */voidargmatch_invalid (const char *context, const char *value, int problem){  char const *format = (problem == -1			? _("invalid argument %s for %s")			: _("ambiguous argument %s for %s"));  error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value),	 quote_n (1, context));}/* List the valid arguments for argmatch.   ARGLIST is the same as in argmatch.   VALLIST is a pointer to an array of values.   VALSIZE is the size of the elements of VALLIST */voidargmatch_valid (const char *const *arglist,		const char *vallist, size_t valsize){  int i;  const char *last_val = NULL;  /* We try to put synonyms on the same line.  The assumption is that     synonyms follow each other */  fprintf (stderr, _("Valid arguments are:"));  for (i = 0; arglist[i]; i++)    if ((i == 0)	|| memcmp (last_val, vallist + valsize * i, valsize))      {	fprintf (stderr, "\n  - `%s'", arglist[i]);	last_val = vallist + valsize * i;      }    else      {	fprintf (stderr, ", `%s'", arglist[i]);      }  putc ('\n', stderr);}/* Never failing versions of the previous functions.   CONTEXT is the context for which argmatch is called (e.g.,   "--version-control", or "$VERSION_CONTROL" etc.).  Upon failure,   calls the (supposed never to return) function EXIT_FN. */int__xargmatch_internal (const char *context,		      const char *arg, const char *const *arglist,		      const char *vallist, size_t valsize,		      int case_sensitive,		      argmatch_exit_fn exit_fn){  int res = __argmatch_internal (arg, arglist,				 vallist, valsize,				 case_sensitive);  if (res >= 0)    /* Success. */    return res;  /* We failed.  Explain why. */  argmatch_invalid (context, arg, res);  argmatch_valid (arglist, vallist, valsize);  (*exit_fn) ();  return -1; /* To please the compilers. */}/* Look for VALUE in VALLIST, an array of objects of size VALSIZE and   return the first corresponding argument in ARGLIST */const char *argmatch_to_argument (const char *value,		      const char *const *arglist,		      const char *vallist, size_t valsize){  int i;  for (i = 0; arglist[i]; i++)    if (!memcmp (value, vallist + valsize * i, valsize))      return arglist[i];  return NULL;}#ifdef TEST/* * Based on "getversion.c" by David MacKenzie <djm@gnu.ai.mit.edu> */char *program_name;extern const char *getenv ();/* When to make backup files.  */enum backup_type{  /* Never make backups.  */  none,  /* Make simple backups of every file.  */  simple,  /* Make numbered backups of files that already have numbered backups,     and simple backups of the others.  */  numbered_existing,  /* Make numbered backups of every file.  */  numbered};/* Two tables describing arguments (keys) and their corresponding   values */static const char *const backup_args[] ={  "no", "none", "off",  "simple", "never",  "existing", "nil",  "numbered", "t",  0};static const enum backup_type backup_vals[] ={  none, none, none,  simple, simple,  numbered_existing, numbered_existing,  numbered, numbered};intmain (int argc, const char *const *argv){  const char *cp;  enum backup_type backup_type = none;  program_name = (char *) argv[0];  if (argc > 2)    {      fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", program_name);      exit (1);    }  if ((cp = getenv ("VERSION_CONTROL")))    backup_type = XARGCASEMATCH ("$VERSION_CONTROL", cp,				 backup_args, backup_vals);  if (argc == 2)    backup_type = XARGCASEMATCH (program_name, argv[1],				 backup_args, backup_vals);  printf ("The version control is `%s'\n",	  ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));  return 0;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品1区2区3区在线观看| 欧美在线视频全部完| 亚洲成人免费在线观看| 中文字幕欧美一区| 国产乱色国产精品免费视频| 国产乱子轮精品视频| 欧美精品在线视频| 色综合 综合色| 色8久久人人97超碰香蕉987| 91免费看片在线观看| 欧美自拍丝袜亚洲| 欧美一区二区三区在线观看| 日韩久久久久久| 欧美激情中文不卡| 中文字幕亚洲电影| 亚洲精品久久久久久国产精华液| 一区二区三区精品在线观看| 亚洲综合小说图片| 日本不卡一区二区三区高清视频| 日日骚欧美日韩| 久久成人久久爱| www.亚洲在线| 欧美疯狂性受xxxxx喷水图片| 欧美一区二区三区四区久久| 不卡的av在线播放| 欧美吻胸吃奶大尺度电影| 欧美久久久影院| 久久精品日韩一区二区三区| 亚洲欧美精品午睡沙发| 奇米亚洲午夜久久精品| 成人精品在线视频观看| 色一情一乱一乱一91av| 日韩精品资源二区在线| 国产精品久久午夜夜伦鲁鲁| 婷婷夜色潮精品综合在线| 国产成人日日夜夜| 7777精品伊人久久久大香线蕉超级流畅 | 免费一级欧美片在线观看| 国产一区二区三区精品视频| 日本丰满少妇一区二区三区| 欧美成人福利视频| 一区2区3区在线看| 风流少妇一区二区| 日韩欧美的一区二区| 洋洋av久久久久久久一区| 国产在线麻豆精品观看| 欧美挠脚心视频网站| 中文av一区二区| 日韩高清不卡一区二区三区| av电影天堂一区二区在线观看| 7777精品伊人久久久大香线蕉最新版| 国产精品丝袜91| 国产一区二区日韩精品| 91精品国产全国免费观看| 亚洲欧美电影一区二区| 国产91富婆露脸刺激对白| 日本欧美一区二区在线观看| 肉丝袜脚交视频一区二区| 成人深夜福利app| 精品av综合导航| 日韩电影免费一区| 在线观看日韩av先锋影音电影院| 国产日韩av一区二区| 国产一区二区久久| 日韩一级免费一区| 天天av天天翘天天综合网| 色婷婷综合久久久中文一区二区| 久久一区二区三区四区| 免费人成网站在线观看欧美高清| 91在线高清观看| 中文字幕不卡一区| av欧美精品.com| 日韩一区有码在线| 99热精品国产| 亚洲精品成a人| 在线欧美日韩精品| 亚洲一区二区偷拍精品| 欧美日韩极品在线观看一区| 一区二区三区不卡在线观看| 欧美色偷偷大香| 日韩黄色片在线观看| 日韩免费观看高清完整版 | 日本aⅴ亚洲精品中文乱码| 欧美亚洲尤物久久| 亚洲午夜久久久久久久久电影院| 欧美羞羞免费网站| 日韩中文字幕91| 日韩亚洲欧美中文三级| 国内久久婷婷综合| 国产精品视频yy9299一区| 99热99精品| 亚洲综合另类小说| 91精选在线观看| 国产一区二区三区日韩| 亚洲欧美综合另类在线卡通| 在线看不卡av| 日本成人在线一区| 国产欧美一区二区在线| 色诱视频网站一区| 久久精品免费看| 亚洲欧美激情插| 欧美一级免费观看| 不卡的看片网站| 日本怡春院一区二区| 国产精品青草久久| 3d成人h动漫网站入口| 亚洲一区二区三区自拍| 美国十次综合导航| 日韩黄色小视频| 久久精品欧美一区二区三区麻豆| 东方欧美亚洲色图在线| 亚洲综合一区二区| 国产亚洲视频系列| 4438x亚洲最大成人网| youjizz国产精品| 捆绑调教美女网站视频一区| 亚洲欧洲日韩综合一区二区| 欧美一级艳片视频免费观看| 99久久精品国产毛片| 免费观看久久久4p| 亚洲欧美日韩在线| 国产亚洲一区二区三区四区| 欧美日韩精品一区二区三区| 成人黄色免费短视频| 琪琪久久久久日韩精品| 亚洲情趣在线观看| 国产欧美在线观看一区| 精品电影一区二区三区| 欧美精三区欧美精三区| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美一区二区三区在线观看| 国产精品1区2区3区在线观看| 亚洲18色成人| 中文字幕一区免费在线观看| 日韩视频一区二区在线观看| 在线视频你懂得一区二区三区| 国产高清亚洲一区| 日韩成人精品视频| 亚洲一区二区三区影院| 亚洲嫩草精品久久| 国产精品福利影院| 国产精品色哟哟| 国产区在线观看成人精品| 精品国产成人在线影院| 日韩欧美视频在线| 777色狠狠一区二区三区| 欧美日韩大陆一区二区| 欧美综合在线视频| 欧美色精品在线视频| 欧美视频你懂的| 欧美三级蜜桃2在线观看| 欧美色中文字幕| 欧美狂野另类xxxxoooo| 欧美日韩国产123区| 欧美日韩亚洲另类| 在线亚洲人成电影网站色www| 一本大道av伊人久久综合| 欧美亚洲另类激情小说| 欧美色视频在线| 4438x亚洲最大成人网| 日韩精品一区二区三区蜜臀| 亚洲精品一区二区三区在线观看| 精品国产一区二区三区忘忧草| 精品99久久久久久| 国产农村妇女精品| 自拍av一区二区三区| 亚洲图片欧美一区| 精品亚洲成a人在线观看| 国产精品一区二区视频| bt欧美亚洲午夜电影天堂| 91视频一区二区| 欧美福利电影网| 国产偷国产偷亚洲高清人白洁| 国产精品午夜久久| 亚洲国产毛片aaaaa无费看| 日本欧美一区二区三区乱码 | 麻豆高清免费国产一区| 国产乱一区二区| 在线亚洲精品福利网址导航| 91精品婷婷国产综合久久| 久久久精品天堂| 亚洲一区免费观看| 国产精品亚洲人在线观看| 色嗨嗨av一区二区三区| 欧美岛国在线观看| ●精品国产综合乱码久久久久| 日韩精品色哟哟| av一二三不卡影片| 欧美一区二区三区啪啪| 亚洲欧洲日产国产综合网| 日韩精品电影一区亚洲| 国产成人啪免费观看软件 | 欧美xxxx老人做受| 亚洲另类中文字| 精品一区二区免费| 欧美视频一区二区| 国产精品色一区二区三区| 蜜臀av性久久久久蜜臀aⅴ | 一区二区久久久久| 国内成+人亚洲+欧美+综合在线|