fpc/packages/base/libc/argph.inc
2005-02-14 17:13:06 +00:00

156 lines
5.8 KiB
PHP

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;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;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;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;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;