geany  1.38
About: Geany is a text editor (using GTK2) with basic features of an integrated development environment (syntax highlighting, code folding, symbol name auto-completion, ...). F: office T: editor programming GTK+ IDE
  Fossies Dox: geany-1.38.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

options_p.h
Go to the documentation of this file.
1/*
2* Copyright (c) 1998-2003, Darren Hiebert
3*
4* This source code is released for free distribution under the terms of the
5* GNU General Public License version 2 or (at your option) any later version.
6*
7* Defines internal interface to option processing.
8*/
9#ifndef CTAGS_MAIN_OPTIONS_PRIVATE_H
10#define CTAGS_MAIN_OPTIONS_PRIVATE_H
11
12#if defined(OPTION_WRITE)
13# define CONST_OPTION
14#else
15# define CONST_OPTION const
16#endif
17
18/*
19* INCLUDE FILES
20*/
21#include "general.h" /* must always come first */
22
23#include "args_p.h"
24#include "field.h"
25#include "fmt_p.h"
26#include "options.h"
27#include "parse.h"
28#include "strlist.h"
29#include "vstring.h"
30
31/*
32* MACROS
33*/
34#define includeExtensionFlags() (Option.tagFileFormat > 1)
35
36/*
37* DATA DECLARATIONS
38*/
40
41typedef struct sCookedArgs {
42 /* private */
45 char simple[2];
48 const char* parameter;
49 /* public */
50 char* item;
52
53typedef enum eLocate {
54 EX_MIX, /* line numbers for defines, patterns otherwise */
55 EX_LINENUM, /* -n only line numbers in tag file */
56 EX_PATTERN, /* -N only patterns in tag file */
57 EX_COMBINE, /* Combine linenum and pattern with `;'*/
59
60typedef enum sortType {
65
66typedef enum eTagRelative {
72
73typedef enum eOptionLoadingStage {
86
87/* This stores the command line options.
88 */
89typedef struct sOptionValues {
90 bool append; /* -a append to "tags" file */
91 bool backward; /* -B regexp patterns search backwards */
92 bool etags; /* -e output Emacs style tags file */
93 exCmd locate; /* --excmd EX command used to locate tag */
94 bool recurse; /* -R recurse into directories */
95 sortType sorted; /* -u,--sort sort tags */
96 bool xref; /* -x generate xref output instead */
97 fmtElement *customXfmt; /* compiled code for --xformat=XFMT */
98 char *fileList; /* -L name of file containing names of files */
99 char *tagFileName; /* -o name of tags file */
100 stringList* headerExt; /* -h header extensions */
101 stringList* etagsInclude;/* --etags-include list of TAGS files to include*/
102 unsigned int tagFileFormat;/* --format tag file format (level) */
103#ifdef HAVE_ICONV
104 char *inputEncoding; /* --input-encoding convert text into --output-encoding */
105 char *outputEncoding; /* --output-encoding write tags file as this encoding */
106#endif
107 langType language; /* --lang specified language override */
108 bool followLinks; /* --link follow symbolic links? */
109 bool filter; /* --filter behave as filter: files in, tags out */
110 char* filterTerminator; /* --filter-terminator string to output */
111 tagRelative tagRelative; /* --tag-relative file paths relative to tag file */
112 int printTotals; /* --totals print cumulative statistics */
113 bool lineDirectives; /* --linedirectives process #line directives */
114 bool printLanguage; /* --print-language */
115 bool guessLanguageEagerly; /* --guess-language-eagerly|-G */
116 bool quiet; /* --quiet */
117 bool fatalWarnings; /* --_fatal-warnings */
118 unsigned int patternLengthLimit; /* --pattern-length-limit=N */
119 bool putFieldPrefix; /* --put-field-prefix */
120 unsigned int maxRecursionDepth; /* --maxdepth=<max-recursion-depth> */
123 INTERACTIVE_SANDBOX, } interactive; /* --interactive */
124#ifdef WIN32
125 enum filenameSepOp { FILENAME_SEP_NO_REPLACE = false,
126 FILENAME_SEP_USE_SLASH = true,
127 FILENAME_SEP_UNSET,
128 } useSlashAsFilenameSeparator; /* --use-slash-as-filename-separator */
129#endif
130#ifdef DEBUG
131 unsigned long breakLine;/* -b input line at which to call lineBreak() */
132#endif
133
135
136typedef void (* mainLoopFunc) (cookedArgs *args, void *data);
137
138/*
139* GLOBAL VARIABLES
140*/
141
143
144/*
145* FUNCTION PROTOTYPES
146*/
147extern void freeList (stringList** const pString);
148extern void setDefaultTagFileName (void);
149extern void checkOptions (void);
150extern bool filesRequired (void);
151extern void testEtagsInvocation (void);
152
153extern cookedArgs* cArgNewFromString (const char* string);
154extern cookedArgs* cArgNewFromArgv (char* const* const argv);
155extern cookedArgs* cArgNewFromFile (FILE* const fp);
156extern cookedArgs* cArgNewFromLineFile (FILE* const fp);
157extern void cArgDelete (cookedArgs* const current);
158extern bool cArgOff (cookedArgs* const current);
159extern bool cArgIsOption (cookedArgs* const current);
160extern const char* cArgItem (cookedArgs* const current);
161extern void cArgForth (cookedArgs* const current);
162extern bool isExcludedFile (const char* const name,
163 bool falseIfExceptionsAreDefeind);
164extern bool isIncludeFile (const char *const fileName);
165extern void parseCmdlineOptions (cookedArgs* const cargs);
166extern void previewFirstOption (cookedArgs* const cargs);
167extern void readOptionConfiguration (void);
168extern void initOptions (void);
169extern void freeOptionResources (void);
170
171extern langType getLanguageComponentInOption (const char *const option,
172 const char *const prefix);
173extern langType getLanguageComponentInOptionFull (const char *const option,
174 const char *const prefix, bool noPretending);
175
176extern void processLanguageDefineOption (const char *const option, const char *const parameter);
177extern bool processMapOption (const char *const option, const char *const parameter);
178extern bool processParamOption (const char *const option, const char *const value);
179extern bool processKinddefOption (const char *const option, const char *const parameter);
180extern bool processKindsOption (const char *const option, const char *const parameter);
181extern bool processExtradefOption (const char *const option, const char *const parameter);
182extern bool processFielddefOption (const char *const option, const char *const parameter);
183extern bool processAliasOption (const char *const option, const char *const parameter);
184extern bool processTabledefOption (const char *const option, const char *const parameter);
185#ifdef HAVE_ICONV
186extern bool processLanguageEncodingOption (const char *const option, const char *const parameter);
187#endif
188extern bool processRoledefOption (const char *const option, const char *const parameter);
189extern bool processScopesepOption (const char *const option, const char *const parameter);
190extern bool processPretendOption (const char *const option, const char *const parameter);
191extern bool processRolesOption (const char *const option, const char *const parameter);
192
193extern bool isDestinationStdout (void);
194
195extern void setMainLoop (mainLoopFunc func, void *data);
196
197extern bool ptagMakePatternLengthLimit (ptagDesc *pdesc, langType langType, const void *data);
198#endif /* CTAGS_MAIN_OPTIONS_PRIVATE_H */
const gchar * name
Definition: document.c:3219
eOptionLoadingStage
Definition: options_p.h:73
@ OptionLoadingStageCmdline
Definition: options_p.h:84
@ OptionLoadingStageNone
Definition: options_p.h:74
@ OptionLoadingStageXdg
Definition: options_p.h:79
@ OptionLoadingStageDosCnf
Definition: options_p.h:76
@ OptionLoadingStageCurrentRecursive
Definition: options_p.h:81
@ OptionLoadingStagePreload
Definition: options_p.h:82
@ OptionLoadingStageHomeRecursive
Definition: options_p.h:80
@ OptionLoadingStageEnvVar
Definition: options_p.h:83
@ OptionLoadingStageLocalEtc
Definition: options_p.h:78
@ OptionLoadingStageCustom
Definition: options_p.h:75
@ OptionLoadingStageEtc
Definition: options_p.h:77
bool processScopesepOption(const char *const option, const char *const parameter)
Definition: parse.c:665
cookedArgs * cArgNewFromArgv(char *const *const argv)
Definition: options.c:938
const char * cArgItem(cookedArgs *const current)
Definition: options.c:996
bool cArgOff(cookedArgs *const current)
Definition: options.c:984
langType getLanguageComponentInOptionFull(const char *const option, const char *const prefix, bool noPretending)
Definition: options.c:762
bool processAliasOption(const char *const option, const char *const parameter)
Definition: parse.c:3314
optionType
Definition: options_p.h:39
@ OPTION_SHORT
Definition: options_p.h:39
@ OPTION_NONE
Definition: options_p.h:39
@ OPTION_LONG
Definition: options_p.h:39
bool processRoledefOption(const char *const option, const char *const parameter)
Definition: parse.c:2651
void(* mainLoopFunc)(cookedArgs *args, void *data)
Definition: options_p.h:136
void testEtagsInvocation(void)
Definition: options.c:817
eLocate
Definition: options_p.h:53
@ EX_LINENUM
Definition: options_p.h:55
@ EX_PATTERN
Definition: options_p.h:56
@ EX_COMBINE
Definition: options_p.h:57
@ EX_MIX
Definition: options_p.h:54
const optionValues Option
Definition: options.c:137
enum eLocate exCmd
bool processTabledefOption(const char *const option, const char *const parameter)
Definition: parse.c:4296
cookedArgs * cArgNewFromFile(FILE *const fp)
Definition: options.c:947
bool isIncludeFile(const char *const fileName)
Definition: options.c:1114
sortType
Definition: options_p.h:60
@ SO_SORTED
Definition: options_p.h:62
@ SO_FOLDSORTED
Definition: options_p.h:63
@ SO_UNSORTED
Definition: options_p.h:61
bool processKindsOption(const char *const option, const char *const parameter)
Definition: parse.c:2728
void freeList(stringList **const pString)
Definition: options.c:697
bool filesRequired(void)
Definition: options.c:722
enum eTagRelative tagRelative
cookedArgs * cArgNewFromLineFile(FILE *const fp)
Definition: options.c:956
void initOptions(void)
Definition: options.c:3804
void checkOptions(void)
Definition: options.c:730
#define CONST_OPTION
Definition: options_p.h:15
void cArgDelete(cookedArgs *const current)
Definition: options.c:965
bool processFielddefOption(const char *const option, const char *const parameter)
Definition: parse.c:3693
bool processKinddefOption(const char *const option, const char *const parameter)
Definition: parse.c:2640
bool cArgIsOption(cookedArgs *const current)
Definition: options.c:990
bool processExtradefOption(const char *const option, const char *const parameter)
Definition: parse.c:3622
bool processRolesOption(const char *const option, const char *const parameter)
Definition: parse.c:2979
bool ptagMakePatternLengthLimit(ptagDesc *pdesc, langType langType, const void *data)
Definition: options.c:2767
void cArgForth(cookedArgs *const current)
Definition: options.c:1002
bool processMapOption(const char *const option, const char *const parameter)
Definition: options.c:1939
void processLanguageDefineOption(const char *const option, const char *const parameter)
Definition: parse.c:2146
bool processPretendOption(const char *const option, const char *const parameter)
Definition: parse.c:4953
void setDefaultTagFileName(void)
Definition: options.c:706
bool isDestinationStdout(void)
Definition: options.c:3918
void parseCmdlineOptions(cookedArgs *const cargs)
Definition: options.c:3464
struct sCookedArgs cookedArgs
void readOptionConfiguration(void)
Definition: options.c:3791
void previewFirstOption(cookedArgs *const cargs)
Definition: options.c:3507
langType getLanguageComponentInOption(const char *const option, const char *const prefix)
Definition: options.c:801
struct sOptionValues optionValues
bool isExcludedFile(const char *const name, bool falseIfExceptionsAreDefeind)
Definition: options.c:1184
bool processParamOption(const char *const option, const char *const value)
Definition: options.c:1994
void freeOptionResources(void)
Definition: options.c:3881
eTagRelative
Definition: options_p.h:66
@ TREL_NEVER
Definition: options_p.h:70
@ TREL_ALWAYS
Definition: options_p.h:69
@ TREL_NO
Definition: options_p.h:67
@ TREL_YES
Definition: options_p.h:68
void setMainLoop(mainLoopFunc func, void *data)
Definition: main.c:324
enum eOptionLoadingStage OptionLoadingStage
cookedArgs * cArgNewFromString(const char *string)
Definition: options.c:929
Definition: args_p.h:25
char * shortOptions
Definition: options_p.h:44
char simple[2]
Definition: options_p.h:45
bool isOption
Definition: options_p.h:46
bool longOption
Definition: options_p.h:47
char * item
Definition: options_p.h:50
Arguments * args
Definition: options_p.h:43
const char * parameter
Definition: options_p.h:48
char * filterTerminator
Definition: options_p.h:110
sortType sorted
Definition: options_p.h:95
bool followLinks
Definition: options_p.h:108
unsigned int tagFileFormat
Definition: options_p.h:102
@ INTERACTIVE_DEFAULT
Definition: options_p.h:122
@ INTERACTIVE_SANDBOX
Definition: options_p.h:123
bool backward
Definition: options_p.h:91
bool lineDirectives
Definition: options_p.h:113
unsigned int patternLengthLimit
Definition: options_p.h:118
tagRelative tagRelative
Definition: options_p.h:111
fmtElement * customXfmt
Definition: options_p.h:97
bool putFieldPrefix
Definition: options_p.h:119
stringList * etagsInclude
Definition: options_p.h:101
bool printLanguage
Definition: options_p.h:114
char * fileList
Definition: options_p.h:98
enum sOptionValues::interactiveMode interactive
langType language
Definition: options_p.h:107
unsigned int maxRecursionDepth
Definition: options_p.h:120
bool fatalWarnings
Definition: options_p.h:117
exCmd locate
Definition: options_p.h:93
bool recurse
Definition: options_p.h:94
char * tagFileName
Definition: options_p.h:99
bool guessLanguageEagerly
Definition: options_p.h:115
stringList * headerExt
Definition: options_p.h:100
int langType
Definition: types.h:13