argph.inc 5.9 KB

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