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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? options.c

?? ctags的最新版5.7,可以比較5.6版看看,免費(fèi)下載
?? C
?? 第 1 頁 / 共 4 頁
字號:
	{ "excmd",                  processExcmdOption,             FALSE   },	{ "extra",                  processExtraTagsOption,         FALSE   },	{ "fields",                 processFieldsOption,            FALSE   },	{ "filter-terminator",      processFilterTerminatorOption,  TRUE    },	{ "format",                 processFormatOption,            TRUE    },	{ "help",                   processHelpOption,              TRUE    },	{ "lang",                   processLanguageForceOption,     FALSE   },	{ "language",               processLanguageForceOption,     FALSE   },	{ "language-force",         processLanguageForceOption,     FALSE   },	{ "languages",              processLanguagesOption,         FALSE   },	{ "langdef",                processLanguageDefineOption,    FALSE   },	{ "langmap",                processLanguageMapOption,       FALSE   },	{ "license",                processLicenseOption,           TRUE    },	{ "list-kinds",             processListKindsOption,         TRUE    },	{ "list-maps",              processListMapsOption,          TRUE    },	{ "list-languages",         processListLanguagesOption,     TRUE    },	{ "options",                processOptionFile,              FALSE   },	{ "sort",                   processSortOption,              TRUE    },	{ "version",                processVersionOption,           TRUE    },};static booleanOption BooleanOptions [] = {	{ "append",         &Option.append,                 TRUE    },	{ "file-scope",     &Option.include.fileScope,      FALSE   },	{ "file-tags",      &Option.include.fileNames,      FALSE   },	{ "filter",         &Option.filter,                 TRUE    },	{ "if0",            &Option.if0,                    FALSE   },	{ "kind-long",      &Option.kindLong,               TRUE    },	{ "line-directives",&Option.lineDirectives,         FALSE   },	{ "links",          &Option.followLinks,            FALSE   },#ifdef RECURSE_SUPPORTED	{ "recurse",        &Option.recurse,                FALSE   },#endif	{ "tag-relative",   &Option.tagRelative,            TRUE    },	{ "totals",         &Option.printTotals,            TRUE    },	{ "verbose",        &Option.verbose,                FALSE   },};/* *  Generic option parsing */static void checkOptionOrder (const char* const option){	if (NonOptionEncountered)		error (FATAL, "-%s option may not follow a file name", option);}static boolean processParametricOption (		const char *const option, const char *const parameter){	const int count = sizeof (ParametricOptions) / sizeof (parametricOption);	boolean found = FALSE;	int i;	for (i = 0  ;  i < count  &&  ! found  ;  ++i)	{		parametricOption* const entry = &ParametricOptions [i];		if (strcmp (option, entry->name) == 0)		{			found = TRUE;			if (entry->initOnly)				checkOptionOrder (option);			(entry->handler) (option, parameter);		}	}	return found;}static boolean getBooleanOption (		const char *const option, const char *const parameter){	boolean selection = TRUE;	if (parameter [0] == '\0')		selection = TRUE;	else if (isFalse (parameter))		selection = FALSE;	else if (isTrue (parameter))		selection = TRUE;	else		error (FATAL, "Invalid value for \"%s\" option", option);	return selection;}static boolean processBooleanOption (		const char *const option, const char *const parameter){	const int count = sizeof (BooleanOptions) / sizeof (booleanOption);	boolean found = FALSE;	int i;	for (i = 0  ;  i < count  &&  ! found  ;  ++i)	{		booleanOption* const entry = &BooleanOptions [i];		if (strcmp (option, entry->name) == 0)		{			found = TRUE;			if (entry->initOnly)				checkOptionOrder (option);			*entry->pValue = getBooleanOption (option, parameter);		}	}	return found;}static void processLongOption (		const char *const option, const char *const parameter){	Assert (parameter != NULL);	if (parameter == NULL  &&  parameter [0] == '\0')		verbose ("  Option: --%s\n", option);	else		verbose ("  Option: --%s=%s\n", option, parameter);	if (processBooleanOption (option, parameter))		;	else if (processParametricOption (option, parameter))		;	else if (processKindOption (option, parameter))		;	else if (processRegexOption (option, parameter))		;#ifndef RECURSE_SUPPORTED	else if (strcmp (option, "recurse") == 0)		error (WARNING, "%s option not supported on this host", option);#endif	else		error (FATAL, "Unknown option: --%s", option);}static void processShortOption (		const char *const option, const char *const parameter){	if (parameter == NULL  ||  parameter [0] == '\0')		verbose ("  Option: -%s\n", option);	else		verbose ("  Option: -%s %s\n", option, parameter);	if (isCompoundOption (*option) && (parameter == NULL  ||  parameter [0] == '\0'))		error (FATAL, "Missing parameter for \"%s\" option", option);	else switch (*option)	{		case '?':			processHelpOption ("?", NULL);			exit (0);			break;		case 'a':			checkOptionOrder (option);			Option.append = TRUE;			break;#ifdef DEBUG		case 'b':			if (atol (parameter) < 0)				error (FATAL, "-%s: Invalid line number", option);			Option.breakLine = atol (parameter);			break;		case 'D':			Option.debugLevel = strtol (parameter, NULL, 0);			if (debug (DEBUG_STATUS))				Option.verbose = TRUE;			break;#endif		case 'B':			Option.backward = TRUE;			break;		case 'e':			checkOptionOrder (option);			setEtagsMode ();			break;		case 'f':		case 'o':			checkOptionOrder (option);			if (Option.tagFileName != NULL)			{				error (WARNING,					"-%s option specified more than once, last value used",					option);				freeString (&Option.tagFileName);			}			else if (parameter [0] == '-'  &&  parameter [1] != '\0')				error (FATAL, "output file name may not begin with a '-'");			Option.tagFileName = stringCopy (parameter);			break;		case 'F':			Option.backward = FALSE;			break;		case 'h':			processHeaderListOption (*option, parameter);			break;		case 'I':			processIgnoreOption (parameter);			break;		case 'L':			if (Option.fileList != NULL)			{				error (WARNING,					"-%s option specified more than once, last value used",					option);				freeString (&Option.fileList);			}			Option.fileList = stringCopy (parameter);			break;		case 'n':			Option.locate = EX_LINENUM;			break;		case 'N':			Option.locate = EX_PATTERN;			break;		case 'R':#ifdef RECURSE_SUPPORTED			Option.recurse = TRUE;#else			error (WARNING, "-%s option not supported on this host", option);#endif			break;		case 'u':			checkOptionOrder (option);			Option.sorted = SO_UNSORTED;			break;		case 'V':			Option.verbose = TRUE;			break;		case 'w':			/* silently ignored */			break;		case 'x':			checkOptionOrder (option);			Option.xref = TRUE;			break;		default:			error (FATAL, "Unknown option: -%s", option);			break;	}}extern void parseOption (cookedArgs* const args){	Assert (! cArgOff (args));	if (args->isOption)	{		if (args->longOption)			processLongOption (args->item, args->parameter);		else		{			const char *parameter = args->parameter;			while (*parameter == ' ')				++parameter;			processShortOption (args->item, parameter);		}		cArgForth (args);	}}extern void parseOptions (cookedArgs* const args){	NonOptionEncountered = FALSE;	while (! cArgOff (args)  &&  cArgIsOption (args))		parseOption (args);	if (! cArgOff (args)  &&  ! cArgIsOption (args))		NonOptionEncountered = TRUE;}static const char *CheckFile;static boolean checkSameFile (const char *const fileName){	return isSameFile (CheckFile, fileName);}static boolean parseFileOptions (const char* const fileName){	boolean fileFound = FALSE;	const char* const format = "Considering option file %s: %s\n";	CheckFile = fileName;	if (stringListHasTest (OptionFiles, checkSameFile))		verbose (format, fileName, "already considered");	else	{		FILE* const fp = fopen (fileName, "r");		if (fp == NULL)			verbose (format, fileName, "not found");		else		{			cookedArgs* const args = cArgNewFromLineFile (fp);			vString* file = vStringNewInit (fileName);			stringListAdd (OptionFiles, file);			verbose (format, fileName, "reading...");			parseOptions (args);			if (NonOptionEncountered)				error (WARNING, "Ignoring non-option in %s\n", fileName);			cArgDelete (args);			fclose (fp);			fileFound = TRUE;		}	}	return fileFound;}/* Actions to be taken before reading any other options */extern void previewFirstOption (cookedArgs* const args){	while (cArgIsOption (args))	{		if (strcmp (args->item, "V") == 0 || strcmp (args->item, "verbose") == 0)			parseOption (args);		else if (strcmp (args->item, "options") == 0  &&				strcmp (args->parameter, "NONE") == 0)		{			fprintf (stderr, "No options will be read from files or environment\n");			SkipConfiguration = TRUE;			cArgForth (args);		}		else			break;	}}static void parseConfigurationFileOptionsInDirectoryWithLeafname (const char* directory, const char* leafname){	vString* const pathname = combinePathAndFile (directory, leafname);	parseFileOptions (vStringValue (pathname));	vStringDelete (pathname);}static void parseConfigurationFileOptionsInDirectory (const char* directory){	parseConfigurationFileOptionsInDirectoryWithLeafname (directory, ".ctags");#ifdef MSDOS_STYLE_PATH	parseConfigurationFileOptionsInDirectoryWithLeafname (directory, "ctags.cnf");#endif}static void parseConfigurationFileOptions (void){	/* We parse .ctags on all systems, and additionally ctags.cnf on DOS. */	const char* const home = getenv ("HOME");#ifdef CUSTOM_CONFIGURATION_FILE	parseFileOptions (CUSTOM_CONFIGURATION_FILE);#endif#ifdef MSDOS_STYLE_PATH	parseFileOptions ("/ctags.cnf");#endif	parseFileOptions ("/etc/ctags.conf");	parseFileOptions ("/usr/local/etc/ctags.conf");	if (home != NULL)	{		parseConfigurationFileOptionsInDirectory (home);	}	else	{#ifdef MSDOS_STYLE_PATH		/*		 * Windows users don't usually set HOME.		 * The OS sets HOMEDRIVE and HOMEPATH for them.		 */		const char* homeDrive = getenv ("HOMEDRIVE");		const char* homePath = getenv ("HOMEPATH");		if (homeDrive != NULL && homePath != NULL)		{			vString* const windowsHome = vStringNew ();			vStringCatS (windowsHome, homeDrive);			vStringCatS (windowsHome, homePath);			parseConfigurationFileOptionsInDirectory (vStringValue (windowsHome));			vStringDelete (windowsHome);		}#endif	}	parseConfigurationFileOptionsInDirectory (".");}static void parseEnvironmentOptions (void){	const char *envOptions = NULL;	const char* var = NULL;	if (Option.etags)	{		var = ETAGS_ENVIRONMENT;		envOptions = getenv (var);	}	if (envOptions == NULL)	{		var = CTAGS_ENVIRONMENT;		envOptions = getenv (var);	}	if (envOptions != NULL  &&  envOptions [0] != '\0')	{		cookedArgs* const args = cArgNewFromString (envOptions);		verbose ("Reading options from $CTAGS\n");		parseOptions (args);		cArgDelete (args);		if (NonOptionEncountered)			error (WARNING, "Ignoring non-option in %s variable", var);	}}extern void readOptionConfiguration (void){	if (! SkipConfiguration)	{		parseConfigurationFileOptions ();		parseEnvironmentOptions ();	}}/**   Option initialization*/extern void initOptions (void){	OptionFiles = stringListNew ();	verbose ("Setting option defaults\n");	installHeaderListDefaults ();	verbose ("  Installing default language mappings:\n");	installLanguageMapDefaults ();	/* always excluded by default */	verbose ("  Installing default exclude patterns:\n");	processExcludeOption (NULL, "{arch}");	processExcludeOption (NULL, ".arch-ids");	processExcludeOption (NULL, ".arch-inventory");	processExcludeOption (NULL, "autom4te.cache");	processExcludeOption (NULL, "BitKeeper");	processExcludeOption (NULL, ".bzr");	processExcludeOption (NULL, ".bzrignore");	processExcludeOption (NULL, "CVS");	processExcludeOption (NULL, ".cvsignore");	processExcludeOption (NULL, "_darcs");	processExcludeOption (NULL, ".deps");	processExcludeOption (NULL, "EIFGEN");	processExcludeOption (NULL, ".git");	processExcludeOption (NULL, ".hg");	processExcludeOption (NULL, "PENDING");	processExcludeOption (NULL, "RCS");	processExcludeOption (NULL, "RESYNC");	processExcludeOption (NULL, "SCCS");	processExcludeOption (NULL, ".svn");}extern void freeOptionResources (void){	freeString (&Option.tagFileName);	freeString (&Option.fileList);	freeString (&Option.filterTerminator);	freeList (&Excluded);	freeList (&Option.ignore);	freeList (&Option.headerExt);	freeList (&Option.etagsInclude);	freeList (&OptionFiles);}/* vi:set tabstop=4 shiftwidth=4: */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品高潮久久久久无| 亚洲成人久久影院| 69堂国产成人免费视频| 国产91精品在线观看| 亚洲一区二区四区蜜桃| 久久免费电影网| 欧美男同性恋视频网站| 成人av午夜电影| 狠狠色丁香久久婷婷综合_中 | 国产成人免费av在线| 亚洲一区二区成人在线观看| 欧美激情一区二区三区不卡 | 精品久久久久久久人人人人传媒| 91色.com| 国产suv精品一区二区6| 麻豆精品在线视频| 亚洲高清三级视频| 亚洲色图20p| 国产欧美一区二区精品忘忧草| 91精品国产福利| 欧美日韩一区二区三区在线| 99re66热这里只有精品3直播 | 日韩欧美综合一区| 91麻豆精品国产91久久久资源速度 | 国产精品二区一区二区aⅴ污介绍| 精品少妇一区二区三区在线播放| 91成人在线免费观看| jvid福利写真一区二区三区| 国产成人aaa| 国产精品888| 九九视频精品免费| 毛片av中文字幕一区二区| 亚洲大片精品永久免费| 亚洲一区在线观看视频| 亚洲免费视频成人| 综合亚洲深深色噜噜狠狠网站| 亚洲国产精品ⅴa在线观看| 精品精品欲导航| 日韩视频永久免费| 一区二区三区精品在线观看| 国产精品水嫩水嫩| 中文字幕国产精品一区二区| 久久精品男人的天堂| 久久久久久影视| 国产日韩亚洲欧美综合| 国产欧美一区二区在线| 亚洲国产成人自拍| 国产精品国产三级国产有无不卡| 日本一区二区视频在线观看| 国产精品系列在线| 国产精品成人网| 亚洲人123区| 一区二区三区在线免费| 夜夜精品浪潮av一区二区三区| 亚洲最新视频在线观看| 日韩高清不卡在线| 国产在线精品一区二区不卡了| 丰满少妇久久久久久久| 99精品欧美一区二区三区小说| 色狠狠综合天天综合综合| 欧美探花视频资源| 欧美一级免费大片| 欧美国产日韩精品免费观看| 亚洲精品免费电影| 丝袜国产日韩另类美女| 狠狠色丁香婷综合久久| 99久久久国产精品| 欧美色图免费看| 精品99999| 亚洲精品自拍动漫在线| 久热成人在线视频| 99久久久久免费精品国产| 在线成人免费视频| 国产精品久久久久影院色老大| 亚洲中国最大av网站| 精品一区二区三区日韩| 99精品国产91久久久久久| 51精品秘密在线观看| 欧美—级在线免费片| 亚洲动漫第一页| 国产精品亚洲成人| 欧美曰成人黄网| 国产亚洲欧美一级| 亚洲成人一区二区在线观看| 国产高清在线精品| 欧美日韩国产小视频| 国产精品三级视频| 免费人成精品欧美精品| 91亚洲国产成人精品一区二三| 欧美一级国产精品| 亚洲欧美经典视频| 国产综合久久久久影院| 欧美日韩国产欧美日美国产精品| 国产欧美一区二区在线| 美女爽到高潮91| 欧洲精品一区二区三区在线观看| 国产午夜精品一区二区三区嫩草| 亚洲h精品动漫在线观看| 不卡视频一二三| 精品国产一区二区三区久久影院| 一区二区三区视频在线看| 成人综合在线观看| 2021中文字幕一区亚洲| 天天亚洲美女在线视频| 在线精品视频一区二区三四| 国产精品嫩草影院com| 看电视剧不卡顿的网站| 4438亚洲最大| 亚洲国产日韩在线一区模特 | 北岛玲一区二区三区四区| 日韩女优毛片在线| 亚洲va欧美va国产va天堂影院| 91蜜桃免费观看视频| 国产精品久久久久一区二区三区共| 美女尤物国产一区| 69久久夜色精品国产69蝌蚪网| 亚洲资源在线观看| 91国在线观看| 亚洲免费在线观看视频| av一本久道久久综合久久鬼色| 2021国产精品久久精品| 麻豆一区二区三| 欧美一区二区三区免费视频 | 精品播放一区二区| 极品美女销魂一区二区三区免费| 欧美精品aⅴ在线视频| 亚洲国产精品一区二区久久恐怖片 | 欧美成人一区二区三区在线观看 | 麻豆一区二区三| 日韩美女主播在线视频一区二区三区| 亚洲午夜久久久久久久久电影网 | 国产福利一区在线| 久久精品欧美日韩精品| 国产99久久久国产精品免费看| 久久九九国产精品| 成人精品小蝌蚪| 国产精品美女久久久久aⅴ国产馆| 成人激情av网| 18欧美乱大交hd1984| 成人福利视频在线看| 亚洲欧洲三级电影| 欧美性三三影院| 天天综合色天天综合色h| 日韩欧美国产系列| 国产一区二区三区黄视频| 国产欧美综合色| 色综合久久久久| 亚洲成人av一区二区| 欧美一个色资源| 国产福利91精品一区二区三区| 日本一区二区视频在线观看| 91在线丨porny丨国产| 亚洲摸摸操操av| 91精品福利在线一区二区三区| 久久er99热精品一区二区| 久久久亚洲欧洲日产国码αv| 白白色 亚洲乱淫| 亚洲成人综合在线| 久久青草国产手机看片福利盒子 | 欧美在线|欧美| 久久精品999| 国产精品天美传媒沈樵| 91久久精品网| 看片的网站亚洲| 亚洲欧洲美洲综合色网| 91官网在线免费观看| 日本一不卡视频| 国产精品免费久久久久| 日本国产一区二区| 日韩avvvv在线播放| 26uuu精品一区二区三区四区在线| 成人动漫在线一区| 日韩二区三区四区| 国产精品国产三级国产专播品爱网 | 日韩福利电影在线| 国产三级久久久| 欧美日韩一区 二区 三区 久久精品| 免费国产亚洲视频| 国产精品久久久久7777按摩 | 一区免费观看视频| 91精品国产综合久久久久| 丰满白嫩尤物一区二区| 午夜精品久久久久久久| 久久久久88色偷偷免费| 欧美视频一区二区| 国产+成+人+亚洲欧洲自线| 同产精品九九九| 成人免费一区二区三区视频 | 奇米777欧美一区二区| 中文字幕在线观看不卡| 日韩一区二区视频| 91偷拍与自偷拍精品| 精品制服美女丁香| 亚洲无人区一区| 国产精品国产精品国产专区不蜜 | 亚洲国产精品一区二区尤物区| 精品成人一区二区| 欧美日韩在线亚洲一区蜜芽| 床上的激情91.| 国产一区二区三区免费看 |