blob: 875daa00a4c5df4e3162c5da76efc96a79500fd1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
type
Pargp_option = ^argp_option;
argp_option = record
name : Pchar;
key : longint;
arg : Pchar;
flags : longint;
doc : Pchar;
group : longint;
end;
const
OPTION_ARG_OPTIONAL = $1;
OPTION_HIDDEN = $2;
OPTION_ALIAS = $4;
OPTION_DOC = $8;
OPTION_NO_USAGE = $10;
ARGP_ERR_UNKNOWN = E2BIG;
ARGP_KEY_ARG = 0;
ARGP_KEY_ARGS = $1000006;
ARGP_KEY_END = $1000001;
ARGP_KEY_NO_ARGS = $1000002;
ARGP_KEY_INIT = $1000003;
ARGP_KEY_FINI = $1000007;
ARGP_KEY_SUCCESS = $1000004;
ARGP_KEY_ERROR = $1000005;
ARGP_KEY_HELP_PRE_DOC = $2000001;
ARGP_KEY_HELP_POST_DOC = $2000002;
ARGP_KEY_HELP_HEADER = $2000003;
ARGP_KEY_HELP_EXTRA = $2000004;
ARGP_KEY_HELP_DUP_ARGS_NOTE = $2000005;
ARGP_KEY_HELP_ARGS_DOC = $2000006;
ARGP_PARSE_ARGV0 = $01;
ARGP_NO_ERRS = $02;
ARGP_NO_ARGS = $04;
ARGP_IN_ORDER = $08;
ARGP_NO_HELP = $10;
ARGP_NO_EXIT = $20;
ARGP_LONG_ONLY = $40;
ARGP_SILENT = (ARGP_NO_EXIT or ARGP_NO_ERRS) or ARGP_NO_HELP;
type
Pargp_state = ^argp_state;
Pargp_child = ^argp_child;
argp_parser_t = function (key:longint; arg:Pchar; state:Pargp_state):error_t;cdecl;
Pargp = ^argp;
argp = record
options : Pargp_option;
parser : argp_parser_t;
args_doc : Pchar;
doc : Pchar;
children : Pargp_child;
help_filter : function (__key:longint; __text:Pchar; __input:pointer):Pchar;
argp_domain : Pchar;
end;
argp_child = record
argp : Pargp;
flags : longint;
header : Pchar;
group : longint;
end;
argp_state = record
root_argp : Pargp;
argc : longint;
argv : ^Pchar;
next : longint;
flags : dword;
arg_num : dword;
quoted : longint;
input : pointer;
child_inputs : ^pointer;
hook : pointer;
name : Pchar;
err_stream : PFILE;
out_stream : PFILE;
pstate : pointer;
end;
type
TArgPProgramVersionHook = procedure(__stream: PFILE; __state: pargp_state); cdecl;
function argp_parse(__argp:Pargp; __argc:longint; __argv:PPchar; __flags:dword; __arg_index:Plongint;
__input:pointer):error_t;cdecl;external clib name 'argp_parse';
function __argp_parse(__argp:Pargp; __argc:longint; __argv:PPchar; __flags:dword; __arg_index:Plongint;
__input:pointer):error_t;cdecl;external clib name '__argp_parse';
var
argp_program_version : Pchar;cvar;external;
argp_program_version_hook : TArgPProgramVersionHook;cvar;external;
argp_program_bug_address : Pchar;cvar;external;
argp_err_exit_status : error_t;cvar;external;
const
ARGP_HELP_USAGE = $01;
ARGP_HELP_SHORT_USAGE = $02;
ARGP_HELP_SEE = $04;
ARGP_HELP_LONG = $08;
ARGP_HELP_PRE_DOC = $10;
ARGP_HELP_POST_DOC = $20;
ARGP_HELP_DOC = ARGP_HELP_PRE_DOC or ARGP_HELP_POST_DOC;
ARGP_HELP_BUG_ADDR = $40;
ARGP_HELP_LONG_ONLY = $80;
ARGP_HELP_EXIT_ERR = $100;
ARGP_HELP_EXIT_OK = $200;
ARGP_HELP_STD_ERR = ARGP_HELP_SEE or ARGP_HELP_EXIT_ERR;
ARGP_HELP_STD_USAGE = (ARGP_HELP_SHORT_USAGE or ARGP_HELP_SEE) or ARGP_HELP_EXIT_ERR;
ARGP_HELP_STD_HELP = (((ARGP_HELP_SHORT_USAGE or ARGP_HELP_LONG) or ARGP_HELP_EXIT_OK) or ARGP_HELP_DOC) or ARGP_HELP_BUG_ADDR;
procedure argp_help(__argp:Pargp; __stream:PFILE; __flags:dword; __name:Pchar);cdecl;external clib name 'argp_help';
procedure __argp_help(__argp:Pargp; __stream:PFILE; __flags:dword; __name:Pchar);cdecl;external clib name '__argp_help';
procedure argp_state_help(__state:Pargp_state; __stream:PFILE; __flags:dword);cdecl;external clib name 'argp_state_help';
procedure __argp_state_help(__state:Pargp_state; __stream:PFILE; __flags:dword);cdecl;external clib name '__argp_state_help';
procedure argp_usage(__state:Pargp_state);cdecl;external clib name 'argp_usage';
procedure __argp_usage(__state:Pargp_state);cdecl;external clib name '__argp_usage';
procedure argp_error(__state:Pargp_state; __fmt:Pchar; args:array of const);cdecl;external clib name 'argp_error';
procedure argp_error(__state:Pargp_state; __fmt:Pchar);cdecl;varargs;external clib name 'argp_error';
procedure __argp_error(__state:Pargp_state; __fmt:Pchar; args:array of const);cdecl;external clib name '__argp_error';
procedure __argp_error(__state:Pargp_state; __fmt:Pchar);cdecl;varargs;external clib name '__argp_error';
procedure argp_failure(__state:Pargp_state; __status:longint; __errnum:longint; __fmt:Pchar; args:array of const);cdecl;external clib name 'argp_failure';
procedure argp_failure(__state:Pargp_state; __status:longint; __errnum:longint; __fmt:Pchar);cdecl;varargs;external clib name 'argp_failure';
procedure __argp_failure(__state:Pargp_state; __status:longint; __errnum:longint; __fmt:Pchar; args:array of const);cdecl;external clib name '__argp_failure';
procedure __argp_failure(__state:Pargp_state; __status:longint; __errnum:longint; __fmt:Pchar);cdecl;varargs;external clib name '__argp_failure';
function _option_is_short(__opt:Pargp_option):longint;cdecl;external clib name '_option_is_short';
function __option_is_short(__opt:Pargp_option):longint;cdecl;external clib name '__option_is_short';
function _option_is_end(__opt:Pargp_option):longint;cdecl;external clib name '_option_is_end';
function __option_is_end(__opt:Pargp_option):longint;cdecl;external clib name '__option_is_end';
function _argp_input(__argp:Pargp; __state:Pargp_state):pointer;cdecl;external clib name '_argp_input';
function __argp_input(__argp:Pargp; __state:Pargp_state):pointer;cdecl;external clib name '__argp_input';
{ ---------------------------------------------------------------------
Borland compatibility types
---------------------------------------------------------------------}
Type
TArgP = argp;
TArgPOption = argp_option;
PArgPOption = ^TArgPOption;
TArgPState = argp_state;
PArgPState = ^TArgPState;
TArgPChild = argp_child;
PArgPChild = ^TArgPChild;
|