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

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

?? options.c

?? ctags的最新版5.7,可以比較5.6版看看,免費(fèi)下載
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
/**   $Id: options.c 576 2007-06-30 04:16:23Z elliotth $**   Copyright (c) 1996-2003, Darren Hiebert**   This source code is released for free distribution under the terms of the*   GNU General Public License.**   This module contains functions to process command line options.*//**   INCLUDE FILES*/#include "general.h"  /* must always come first */#include <stdlib.h>#include <string.h>#include <stdio.h>#include <ctype.h>  /* to declare isspace () */#include "ctags.h"#include "debug.h"#include "main.h"#define OPTION_WRITE#include "options.h"#include "parse.h"#include "routines.h"/**   MACROS*/#define INVOCATION  "Usage: %s [options] [file(s)]\n"#define CTAGS_ENVIRONMENT  "CTAGS"#define ETAGS_ENVIRONMENT  "ETAGS"#define CTAGS_FILE  "tags"#define ETAGS_FILE  "TAGS"#ifndef ETAGS# define ETAGS	"etags"  /* name which causes default use of to -e */#endif/*  The following separators are permitted for list options. */#define EXTENSION_SEPARATOR '.'#define PATTERN_START '('#define PATTERN_STOP  ')'#define IGNORE_SEPARATORS   ", \t\n"#ifndef DEFAULT_FILE_FORMAT# define DEFAULT_FILE_FORMAT  2#endif#if defined (HAVE_OPENDIR) || defined (HAVE_FINDFIRST) || defined (HAVE__FINDFIRST) || defined (AMIGA)# define RECURSE_SUPPORTED#endif#define isCompoundOption(c)  (boolean) (strchr ("fohiILpDb", (c)) != NULL)/**   Data declarations*/enum eOptionLimits {	MaxHeaderExtensions	= 100,  /* maximum number of extensions in -h option */	MaxSupportedTagFormat = 2};typedef struct sOptionDescription {	int usedByEtags;	const char *description;} optionDescription;typedef void (*parametricOptionHandler) (const char *const option, const char *const parameter);typedef const struct {	const char* name;   /* name of option as specified by user */	parametricOptionHandler handler;  /* routine to handle option */	boolean initOnly;   /* option must be specified before any files */} parametricOption;typedef const struct {	const char* name;   /* name of option as specified by user */	boolean* pValue;    /* pointer to option value */	boolean initOnly;   /* option must be specified before any files */} booleanOption;/**   DATA DEFINITIONS*/static boolean NonOptionEncountered;static stringList *OptionFiles;static stringList* Excluded;static boolean FilesRequired = TRUE;static boolean SkipConfiguration;static const char *const HeaderExtensions [] = {	"h", "H", "hh", "hpp", "hxx", "h++", "inc", "def", NULL};optionValues Option = {	{		FALSE,  /* --extra=f */		FALSE,  /* --extra=q */		TRUE,   /* --file-scope */	},	{		FALSE,  /* -fields=a */		TRUE,   /* -fields=f */		FALSE,  /* -fields=m */		FALSE,  /* -fields=i */		TRUE,   /* -fields=k */		FALSE,  /* -fields=z */		FALSE,  /* -fields=K */		FALSE,  /* -fields=l */		FALSE,  /* -fields=n */		TRUE,   /* -fields=s */		FALSE,  /* -fields=S */		TRUE    /* -fields=t */	},	NULL,       /* -I */	FALSE,      /* -a */	FALSE,      /* -B */	FALSE,      /* -e */#ifdef MACROS_USE_PATTERNS	EX_PATTERN, /* -n, --excmd */#else	EX_MIX,     /* -n, --excmd */#endif	FALSE,      /* -R */	SO_SORTED,  /* -u, --sort */	FALSE,      /* -V */	FALSE,      /* -x */	NULL,       /* -L */	NULL,       /* -o */	NULL,       /* -h */	NULL,       /* --etags-include */	DEFAULT_FILE_FORMAT,/* --format */	FALSE,      /* --if0 */	FALSE,      /* --kind-long */	LANG_AUTO,  /* --lang */	TRUE,       /* --links */	FALSE,      /* --filter */	NULL,       /* --filter-terminator */	FALSE,      /* --tag-relative */	FALSE,      /* --totals */	FALSE,      /* --line-directives */#ifdef DEBUG	0, 0        /* -D, -b */#endif};/*-   Locally used only*/static optionDescription LongOptionDescription [] = { {1,"  -a   Append the tags to an existing tag file."},#ifdef DEBUG {1,"  -b <line>"}, {1,"       Set break line."},#endif {0,"  -B   Use backward searching patterns (?...?)."},#ifdef DEBUG {1,"  -D <level>"}, {1,"       Set debug level."},#endif {0,"  -e   Output tag file for use with Emacs."}, {1,"  -f <name>"}, {1,"       Write tags to specified file. Value of \"-\" writes tags to stdout"}, {1,"       [\"tags\"; or \"TAGS\" when -e supplied]."}, {0,"  -F   Use forward searching patterns (/.../) (default)."}, {1,"  -h <list>"}, {1,"       Specify list of file extensions to be treated as include files."}, {1,"       [\".h.H.hh.hpp.hxx.h++\"]."}, {1,"  -I <list|@file>"}, {1,"       A list of tokens to be specially handled is read from either the"}, {1,"       command line or the specified file."}, {1,"  -L <file>"}, {1,"       A list of source file names are read from the specified file."}, {1,"       If specified as \"-\", then standard input is read."}, {0,"  -n   Equivalent to --excmd=number."}, {0,"  -N   Equivalent to --excmd=pattern."}, {1,"  -o   Alternative for -f."},#ifdef RECURSE_SUPPORTED {1,"  -R   Equivalent to --recurse."},#else {1,"  -R   Not supported on this platform."},#endif {0,"  -u   Equivalent to --sort=no."}, {1,"  -V   Equivalent to --verbose."}, {1,"  -x   Print a tabular cross reference file to standard output."}, {1,"  --append=[yes|no]"}, {1,"       Should tags should be appended to existing tag file [no]?"}, {1,"  --etags-include=file"}, {1,"      Include reference to 'file' in Emacs-style tag file (requires -e)."}, {1,"  --exclude=pattern"}, {1,"      Exclude files and directories matching 'pattern'."}, {0,"  --excmd=number|pattern|mix"},#ifdef MACROS_USE_PATTERNS {0,"       Uses the specified type of EX command to locate tags [pattern]."},#else {0,"       Uses the specified type of EX command to locate tags [mix]."},#endif {1,"  --extra=[+|-]flags"}, {1,"      Include extra tag entries for selected information (flags: \"fq\")."}, {1,"  --fields=[+|-]flags"}, {1,"      Include selected extension fields (flags: \"afmikKlnsStz\") [fks]."}, {1,"  --file-scope=[yes|no]"}, {1,"       Should tags scoped only for a single file (e.g. \"static\" tags"}, {1,"       be included in the output [yes]?"}, {1,"  --filter=[yes|no]"}, {1,"       Behave as a filter, reading file names from standard input and"}, {1,"       writing tags to standard output [no]."}, {1,"  --filter-terminator=string"}, {1,"       Specify string to print to stdout following the tags for each file"}, {1,"       parsed when --filter is enabled."}, {0,"  --format=level"},#if DEFAULT_FILE_FORMAT == 1 {0,"       Force output of specified tag file format [1]."},#else {0,"       Force output of specified tag file format [2]."},#endif {1,"  --help"}, {1,"       Print this option summary."}, {1,"  --if0=[yes|no]"}, {1,"       Should C code within #if 0 conditional branches be parsed [no]?"}, {1,"  --<LANG>-kinds=[+|-]kinds"}, {1,"       Enable/disable tag kinds for language <LANG>."}, {1,"  --langdef=name"}, {1,"       Define a new language to be parsed with regular expressions."}, {1,"  --langmap=map(s)"}, {1,"       Override default mapping of language to source file extension."}, {1,"  --language-force=language"}, {1,"       Force all files to be interpreted using specified language."}, {1,"  --languages=[+|-]list"}, {1,"       Restrict files scanned for tags to those mapped to langauges"}, {1,"       specified in the comma-separated 'list'. The list can contain any"}, {1,"       built-in or user-defined language [all]."}, {1,"  --license"}, {1,"       Print details of software license."}, {0,"  --line-directives=[yes|no]"}, {0,"       Should #line directives be processed [no]?"}, {1,"  --links=[yes|no]"}, {1,"       Indicate whether symbolic links should be followed [yes]."}, {1,"  --list-kinds=[language|all]"}, {1,"       Output a list of all tag kinds for specified language or all."}, {1,"  --list-languages"}, {1,"       Output list of supported languages."}, {1,"  --list-maps=[language|all]"}, {1,"       Output list of language mappings."}, {1,"  --options=file"}, {1,"       Specify file from which command line options should be read."}, {1,"  --recurse=[yes|no]"},#ifdef RECURSE_SUPPORTED {1,"       Recurse into directories supplied on command line [no]."},#else {1,"       Not supported on this platform."},#endif#ifdef HAVE_REGEX {1,"  --regex-<LANG>=/line_pattern/name_pattern/[flags]"}, {1,"       Define regular expression for locating tags in specific language."},#endif {0,"  --sort=[yes|no|foldcase]"}, {0,"       Should tags be sorted (optionally ignoring case) [yes]?."}, {0,"  --tag-relative=[yes|no]"}, {0,"       Should paths be relative to location of tag file [no; yes when -e]?"}, {1,"  --totals=[yes|no]"}, {1,"       Print statistics about source and tag files [no]."}, {1,"  --verbose=[yes|no]"}, {1,"       Enable verbose messages describing actions on each source file."}, {1,"  --version"}, {1,"       Print version identifier to standard output."}, {1, NULL}};static const char* const License1 ="This program is free software; you can redistribute it and/or\n""modify it under the terms of the GNU General Public License\n""as published by the Free Software Foundation; either version 2\n""of the License, or (at your option) any later version.\n""\n";static const char* const License2 ="This program is distributed in the hope that it will be useful,\n""but WITHOUT ANY WARRANTY; without even the implied warranty of\n""MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n""GNU General Public License for more details.\n""\n""You should have received a copy of the GNU General Public License\n""along with this program; if not, write to the Free Software\n""Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n";/*  Contains a set of strings describing the set of "features" compiled into *  the code. */static const char *const Features [] = {#ifdef WIN32	"win32",#endif#ifdef DJGPP	"msdos_32",#else# ifdef MSDOS	"msdos_16",# endif#endif#ifdef OS2	"os2",#endif#ifdef AMIGA	"amiga",#endif#ifdef VMS	"vms",#endif#ifdef HAVE_FNMATCH	"wildcards",#endif#ifdef HAVE_REGEX	"regex",#endif#ifndef EXTERNAL_SORT	"internal-sort",#endif#ifdef CUSTOM_CONFIGURATION_FILE	"custom-conf",#endif#if (defined (MSDOS) || defined (WIN32) || defined (OS2)) && defined (UNIX_PATH_SEPARATOR)	"unix-path-separator",#endif#ifdef DEBUG	"debug",#endif	NULL};/**   FUNCTION PROTOTYPES*/static boolean parseFileOptions (const char *const fileName);/**   FUNCTION DEFINITIONS*/extern void verbose (const char *const format, ...){	if (Option.verbose)	{		va_list ap;		va_start (ap, format);		vprintf (format, ap);		va_end (ap);	}}static char *stringCopy (const char *const string){	char* result = NULL;	if (string != NULL)		result = eStrdup (string);	return result;}static void freeString (char **const pString){	if (*pString != NULL)	{		eFree (*pString);		*pString = NULL;	}}extern void freeList (stringList** const pList){	if (*pList != NULL)	{		stringListDelete (*pList);		*pList = NULL;	}}extern void setDefaultTagFileName (void){	if (Option.tagFileName != NULL)		;  /* accept given name */	else if (Option.etags)		Option.tagFileName = stringCopy (ETAGS_FILE);	else		Option.tagFileName = stringCopy (CTAGS_FILE);}extern boolean filesRequired (void){	boolean result = FilesRequired;	if (Option.recurse)		result = FALSE;	return result;}extern void checkOptions (void){	const char* notice;	if (Option.xref)	{		notice = "xref output";		if (Option.include.fileNames)		{			error (WARNING, "%s disables file name tags", notice);			Option.include.fileNames = FALSE;		}	}	if (Option.append)	{		notice = "append mode is not compatible with";		if (isDestinationStdout ())			error (FATAL, "%s tags to stdout", notice);	}	if (Option.filter)	{		notice = "filter mode";		if (Option.printTotals)		{			error (WARNING, "%s disables totals", notice);			Option.printTotals = FALSE;		}		if (Option.tagFileName != NULL)			error (WARNING, "%s ignores output tag file name", notice);	}}static void setEtagsMode (void){	Option.etags = TRUE;	Option.sorted = SO_UNSORTED;	Option.lineDirectives = FALSE;	Option.tagRelative = TRUE;}extern void testEtagsInvocation (void){	char* const execName = eStrdup (getExecutableName ());	char* const etags = eStrdup (ETAGS);#ifdef CASE_INSENSITIVE_FILENAMES	toLowerString (execName);	toLowerString (etags);#endif	if (strstr (execName, etags) != NULL)	{		verbose ("Running in etags mode\n");		setEtagsMode ();	}	eFree (execName);	eFree (etags);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品欧美乱码久久久久久| 久久久高清一区二区三区| 久久99国产精品免费| 国产精品乱人伦| 日韩精品一区在线| 在线免费观看成人短视频| 国产精品中文有码| 五月婷婷另类国产| 亚洲精品乱码久久久久| 久久久www成人免费毛片麻豆| 欧美人与禽zozo性伦| 99精品国产热久久91蜜凸| 国模套图日韩精品一区二区| 香蕉影视欧美成人| 亚洲卡通动漫在线| 国产精品久久久久影视| xnxx国产精品| 日韩精品资源二区在线| 884aa四虎影成人精品一区| 色综合中文字幕国产 | 亚洲美女电影在线| 国产精品视频一二三| 久久色中文字幕| 欧美大片一区二区| 欧美一级在线观看| 777xxx欧美| 欧美一区二区视频免费观看| 欧美日韩高清一区二区不卡| 在线免费亚洲电影| 色八戒一区二区三区| 99精品视频在线观看| 不卡av免费在线观看| 成人综合在线网站| 成人晚上爱看视频| 成人动漫视频在线| 99这里只有久久精品视频| 国产.精品.日韩.另类.中文.在线.播放| 久久99精品国产| 狠狠色丁香久久婷婷综| 国产一区二区毛片| 国产一区二区三区黄视频| 国产精品一品二品| 成人一区二区三区视频| av欧美精品.com| 色噜噜狠狠色综合欧洲selulu| 97久久超碰精品国产| 色av综合在线| 欧美人牲a欧美精品| 91精品国产91久久久久久最新毛片| 欧美片网站yy| 欧美精品一区二区三区很污很色的 | 五月婷婷久久综合| 看电影不卡的网站| 成人午夜电影久久影院| www.日韩大片| 91成人国产精品| 在线不卡中文字幕| 精品国产麻豆免费人成网站| 国产日韩精品一区二区三区在线| 国产欧美日韩视频在线观看| 亚洲欧洲在线观看av| 亚洲在线一区二区三区| 日韩国产精品久久久| 国产精品一二三四区| 一本色道a无线码一区v| 欧美肥妇bbw| 国产欧美日韩在线| 亚洲高清久久久| 国内精品在线播放| 91麻豆国产在线观看| 3atv一区二区三区| 欧美国产一区二区| 亚洲成av人片在www色猫咪| 黄色资源网久久资源365| 成人av资源网站| 3d动漫精品啪啪一区二区竹菊| 国产亚洲精品bt天堂精选| 成人免费在线视频观看| 日本欧美在线看| 成人理论电影网| 3atv一区二区三区| 国产精品国产精品国产专区不蜜| 丝袜诱惑制服诱惑色一区在线观看| 国产精品一品二品| 欧美日韩亚洲综合在线 | 国产日韩v精品一区二区| 亚洲美女视频在线观看| 狠狠色丁香婷婷综合| 色乱码一区二区三区88| 亚洲精品在线免费播放| 一区二区三区四区高清精品免费观看| 蜜臀av国产精品久久久久| 99热在这里有精品免费| 日韩精品一区二区三区蜜臀| 亚洲三级在线免费| 国产一区二区不卡在线| 精品视频在线看| 国产精品久久久久久久岛一牛影视| 另类专区欧美蜜桃臀第一页| 欧美在线观看视频一区二区 | 色婷婷综合久久久中文字幕| 久久综合九色综合97婷婷| 亚洲国产wwwccc36天堂| 成人免费观看av| 久久一区二区三区四区| 午夜精品一区二区三区电影天堂 | 日韩欧美一二三| 亚洲自拍与偷拍| av在线播放成人| 国产色一区二区| 久88久久88久久久| 日韩一区二区三区在线| 一区二区三区欧美亚洲| 暴力调教一区二区三区| 欧美精彩视频一区二区三区| 久久97超碰色| 欧美电影免费观看高清完整版在线| 亚洲午夜在线视频| 欧洲国内综合视频| 亚洲色图制服丝袜| 91影视在线播放| 中文字幕一区日韩精品欧美| 国产精品一区不卡| 国产日本一区二区| 国产精品一区二区三区99| 欧美变态凌虐bdsm| 美女在线视频一区| 欧美一级日韩免费不卡| 天堂久久久久va久久久久| 欧美日韩中文精品| 日日摸夜夜添夜夜添国产精品| 欧美视频在线不卡| 亚洲.国产.中文慕字在线| 欧美无乱码久久久免费午夜一区| 夜夜嗨av一区二区三区网页| 色悠久久久久综合欧美99| 亚洲裸体xxx| 色网站国产精品| 洋洋av久久久久久久一区| 欧美亚洲禁片免费| 亚洲第一电影网| 日韩女同互慰一区二区| 韩国午夜理伦三级不卡影院| 久久精品综合网| av不卡在线观看| 亚洲综合精品久久| 日韩一级在线观看| 精品制服美女久久| 国产视频一区不卡| 色综合色综合色综合| 婷婷久久综合九色综合伊人色| 91 com成人网| 国产一区二区三区久久久| 国产精品网站在线播放| 色久综合一二码| 秋霞影院一区二区| 久久精品欧美日韩| 色综合久久综合网97色综合| 五月天亚洲婷婷| 精品区一区二区| yourporn久久国产精品| 亚洲成人你懂的| 337p粉嫩大胆噜噜噜噜噜91av| 日本精品视频一区二区| 爽好多水快深点欧美视频| 久久影音资源网| 一本到高清视频免费精品| 欧美aaaaaa午夜精品| 国产视频亚洲色图| 欧美日韩高清在线| 成人免费av资源| 偷拍一区二区三区| 欧美激情综合网| 欧美精品xxxxbbbb| 成人免费视频视频在线观看免费 | 亚洲国产精品久久久久婷婷884| 日韩一区二区三区电影| 成人丝袜18视频在线观看| 天堂精品中文字幕在线| 国产精品乱码久久久久久| 欧美日韩精品系列| 成人av中文字幕| 麻豆国产精品777777在线| 亚洲欧美偷拍卡通变态| 精品久久久久av影院| 色婷婷综合中文久久一本| 国产乱子伦一区二区三区国色天香| 亚洲男人天堂av| 久久久久久久久久久久久女国产乱| 色婷婷久久综合| 国产成人三级在线观看| 亚洲第一福利一区| 自拍偷拍国产精品| 久久九九久精品国产免费直播| 欧美日韩国产乱码电影| 成人丝袜视频网| 国产在线一区观看| 免费成人性网站| 亚洲va韩国va欧美va| 亚洲麻豆国产自偷在线|