libpcre2_32.pp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. {$mode objfpc}
  2. {$h+}
  3. {$IFNDEF FPC_DOTTEDUNITS}
  4. unit libpcre2_32;
  5. {$ENDIF}
  6. interface
  7. uses
  8. {$IFDEF FPC_DOTTEDUNITS}
  9. System.CTypes;
  10. {$ELSE}
  11. ctypes;
  12. {$ENDIF}
  13. const
  14. {$IFDEF LINUX}
  15. pcrelibname = 'libpcre2-32.so.0';
  16. {$ELSE}
  17. {$IFDEF windows}
  18. pcrelibname = 'libpcre32-0.dll'; // As used in Mingw64
  19. {$ELSE}
  20. {$ERROR: platform not supported by pcre}
  21. {$ENDIF}
  22. {$ENDIF}
  23. {$i pcreconsts.inc}
  24. {
  25. Automatically converted by H2Pas 1.0.0 from pre_pcre_32.h
  26. The following command line parameters were used:
  27. -c
  28. -l
  29. libpcre2-8
  30. pre_pcre_32.h
  31. -C
  32. -o
  33. libpcre28.pp
  34. -P
  35. -P
  36. -t
  37. }
  38. {$IFDEF FPC}
  39. {$PACKRECORDS C}
  40. {$ENDIF}
  41. Type
  42. tsize_t = csize_t;
  43. PCRE2_SIZE = tsize_t;
  44. PTsize_t = ^Tsize_t;
  45. PPTsize_t = ^PTsize_t;
  46. tuint32_t = cardinal;
  47. Tint32_t = cuint32;
  48. Tcint = cint;
  49. TPCRE2_UCHAR8 = ansichar;
  50. TPCRE2_SPTR8 = PAnsichar;
  51. PTPCRE2_UCHAR8 = ^TPCRE2_UCHAR8;
  52. PCRE2_SPTR8 = TPCRE2_SPTR8;
  53. PTPCRE2_SPTR8 = PCRE2_SPTR8;
  54. PPTPCRE2_UCHAR8 = ^PTPCRE2_UCHAR8;
  55. PPPTPCRE2_UCHAR8 = ^PPTPCRE2_UCHAR8;
  56. Ppcre2_callout_block_32 = ^Tpcre2_callout_block_32;
  57. Ppcre2_callout_block = Ppcre2_callout_block_32;
  58. Ppcre2_callout_enumerate_block_32 = ^Tpcre2_callout_enumerate_block_32;
  59. Ppcre2_callout_enumerate_block = Ppcre2_callout_enumerate_block_32;
  60. Ppcre2_code_32 = ^Tpcre2_code_32;
  61. Ppcre2_code = Ppcre2_code_32;
  62. Ppcre2_compile_context_32 = ^Tpcre2_compile_context_32;
  63. Ppcre2_compile_context = Ppcre2_compile_context_32;
  64. Ppcre2_convert_context_32 = ^Tpcre2_convert_context_32;
  65. Ppcre2_convert_context = Ppcre2_convert_context_32;
  66. Ppcre2_general_context_32 = ^Tpcre2_general_context_32;
  67. Ppcre2_general_context = Ppcre2_general_context_32;
  68. Ppcre2_jit_stack_32 = ^Tpcre2_jit_stack_32;
  69. Ppcre2_jit_stack = Ppcre2_jit_stack_32;
  70. Ppcre2_match_context_32 = ^Tpcre2_match_context_32;
  71. Ppcre2_match_context = Ppcre2_match_context_32;
  72. Ppcre2_match_data_32 = ^Tpcre2_match_data_32;
  73. Ppcre2_match_data = Ppcre2_match_data_32;
  74. Psize_t = ^tsize_t;
  75. Puint8_t = ^byte;
  76. PTuint8_t = Puint8_t;
  77. PPTuint8_t = ^PTuint8_t;
  78. Tpcre2_real_general_context_32 = record
  79. end;
  80. Tpcre2_general_context_32 = Tpcre2_real_general_context_32;
  81. Tpcre2_general_context = Tpcre2_general_context_32;
  82. Ppcre2_real_general_context_32 = ^tpcre2_real_general_context_32;
  83. PTpcre2_general_context_32 = Ppcre2_real_general_context_32;
  84. Tpcre2_real_compile_context_32 = record
  85. end;
  86. Tpcre2_compile_context_32 = Tpcre2_real_compile_context_32;
  87. Tpcre2_compile_context = Tpcre2_compile_context_32;
  88. Ppcre2_real_compile_context_32 = ^Tpcre2_real_compile_context_32;
  89. PTpcre2_compile_context_32 = Ppcre2_real_compile_context_32;
  90. Tpcre2_real_match_context_32 = record
  91. end;
  92. Tpcre2_match_context_32 = Tpcre2_real_match_context_32;
  93. Tpcre2_match_context = Tpcre2_match_context_32;
  94. Ppcre2_real_match_context_32 = ^Tpcre2_real_match_context_32;
  95. PTpcre2_match_context_32 = Ppcre2_real_match_context_32;
  96. Tpcre2_real_convert_context_32 = record
  97. end;
  98. Tpcre2_convert_context_32 = Tpcre2_real_convert_context_32;
  99. Tpcre2_convert_context = Tpcre2_convert_context_32;
  100. Ppcre2_real_convert_context_32 = ^Tpcre2_real_convert_context_32;
  101. PTpcre2_convert_context_32 = Ppcre2_real_convert_context_32;
  102. Tpcre2_real_code_32 = record
  103. end;
  104. Tpcre2_code_32 = Tpcre2_real_code_32;
  105. Tpcre2_code = Tpcre2_code_32;
  106. Ppcre2_real_code_32 = ^Tpcre2_real_code_32;
  107. PTpcre2_code_32 = Ppcre2_real_code_32;
  108. PPTpcre2_code_32 = ^PTpcre2_code_32;
  109. Tpcre2_real_match_data_32 = record
  110. end;
  111. Tpcre2_match_data_32 = Tpcre2_real_match_data_32;
  112. Tpcre2_match_data = Tpcre2_match_data_32;
  113. Ppcre2_real_match_data_32 = ^Tpcre2_real_match_data_32;
  114. PTpcre2_match_data_32 = Ppcre2_real_match_data_32;
  115. Tpcre2_real_jit_stack_32 = record
  116. end;
  117. Tpcre2_jit_stack_32 = Tpcre2_real_jit_stack_32;
  118. Tpcre2_jit_stack = Tpcre2_jit_stack_32;
  119. Ppcre2_real_jit_stack_32 = ^Tpcre2_real_jit_stack_32;
  120. PTpcre2_jit_stack_32 = Ppcre2_real_jit_stack_32;
  121. Tpcre2_jit_callback_32 = function (_para1:pointer): PTpcre2_jit_stack_32;cdecl;
  122. Tpcre2_callout_block_32 = record
  123. version : Tuint32_t;
  124. callout_number : Tuint32_t;
  125. capture_top : Tuint32_t;
  126. capture_last : Tuint32_t;
  127. offset_vector : ^Tsize_t;
  128. mark : TPCRE2_SPTR8;
  129. subject : TPCRE2_SPTR8;
  130. subject_length : Tsize_t;
  131. start_match : Tsize_t;
  132. current_position : Tsize_t;
  133. pattern_position : Tsize_t;
  134. next_item_length : Tsize_t;
  135. callout_string_offset : Tsize_t;
  136. callout_string_length : Tsize_t;
  137. callout_string : TPCRE2_SPTR8;
  138. callout_flags : Tuint32_t;
  139. end;
  140. Tpcre2_callout_enumerate_block_32 = record
  141. version : Tuint32_t;
  142. pattern_position : Tsize_t;
  143. next_item_length : Tsize_t;
  144. callout_number : Tuint32_t;
  145. callout_string_offset : Tsize_t;
  146. callout_string_length : Tsize_t;
  147. callout_string : TPCRE2_SPTR8;
  148. end;
  149. PTpcre2_callout_enumerate_block_32 = ^Tpcre2_callout_enumerate_block_32;
  150. Tpcre2_substitute_callout_block_32 = record
  151. version : Tuint32_t;
  152. input : TPCRE2_SPTR8;
  153. output : TPCRE2_SPTR8;
  154. output_offsets : array[0..1] of Tsize_t;
  155. ovector : ^Tsize_t;
  156. oveccount : Tuint32_t;
  157. subscount : Tuint32_t;
  158. end;
  159. PTpcre2_substitute_callout_block_32 = ^ Tpcre2_substitute_callout_block_32;
  160. Ppcre2_substitute_callout_block_32 = PTpcre2_substitute_callout_block_32;
  161. tpcre2_malloc = function (_para1:Tsize_t; _para2:pointer) : Pointer; cdecl;
  162. tpcre2_free = procedure (_para1:pointer; _para2:pointer); cdecl;
  163. tpcre2_set_compile_recursion_guard_32_callback = function (_para1:Tuint32_t; _para2:pointer):Tcint; cdecl;
  164. tpcre2_set_callout_32_callback = function (_para1:Ppcre2_callout_block_32; _para2:pointer):Tcint; cdecl;
  165. tpcre2_callout_enumerate_32_callback = function (_para1: PTpcre2_callout_enumerate_block_32; _para2:pointer):Tcint; cdecl;
  166. tpcre2_set_substitute_callout_32_callback = function (_para1:Ppcre2_substitute_callout_block_32; _para2:pointer):Tcint; cdecl;
  167. var
  168. pcre2_config : function(_para1:Tuint32_t; _para2:pointer):Tcint;cdecl;
  169. pcre2_general_context_copy : function(_para1:PTpcre2_general_context_32): PTpcre2_general_context_32;cdecl;
  170. pcre2_general_context_create : function(_para1:tpcre2_malloc; _para2:tpcre2_free; _para3:pointer):PTpcre2_general_context_32;cdecl;
  171. pcre2_general_context_free : procedure(_para1:PTpcre2_general_context_32);cdecl;
  172. pcre2_compile_context_copy : function(_para1:PTpcre2_compile_context_32):PTpcre2_compile_context_32;cdecl;
  173. pcre2_compile_context_create : function(_para1:PTpcre2_general_context_32):PTpcre2_compile_context_32;cdecl;
  174. pcre2_compile_context_free : procedure(_para1:PTpcre2_compile_context_32);cdecl;
  175. pcre2_set_bsr : function(_para1:PTpcre2_compile_context_32; _para2:Tuint32_t):Tcint;cdecl;
  176. pcre2_set_character_tables : function(_para1:PTpcre2_compile_context_32; _para2: Puint8_t):Tcint;cdecl;
  177. pcre2_set_compile_extra_options : function(_para1:PTpcre2_compile_context_32; _para2:Tuint32_t):Tcint;cdecl;
  178. pcre2_set_max_pattern_length : function(_para1:PTpcre2_compile_context_32; _para2:Tsize_t):Tcint;cdecl;
  179. pcre2_set_newline : function(_para1:PTpcre2_compile_context_32; _para2:Tuint32_t):Tcint;cdecl;
  180. pcre2_set_parens_nest_limit : function(_para1:PTpcre2_compile_context_32; _para2:Tuint32_t):Tcint;cdecl;
  181. pcre2_set_compile_recursion_guard : function(_para1:PTpcre2_compile_context_32; _para2: tpcre2_set_compile_recursion_guard_32_callback; _para3:pointer):Tcint;cdecl;
  182. pcre2_convert_context_copy : function(_para1:PTpcre2_convert_context_32):PTpcre2_convert_context_32;cdecl;
  183. pcre2_convert_context_create : function(_para1:PTpcre2_general_context_32):PTpcre2_convert_context_32;cdecl;
  184. pcre2_convert_context_free : procedure(_para1:PTpcre2_convert_context_32);cdecl;
  185. pcre2_set_glob_escape : function(_para1:PTpcre2_convert_context_32; _para2:Tuint32_t):Tcint;cdecl;
  186. pcre2_set_glob_separator : function(_para1:PTpcre2_convert_context_32; _para2:Tuint32_t):Tcint;cdecl;
  187. pcre2_pattern_convert : function(_para1:TPCRE2_SPTR8; _para2:Tsize_t; _para3:Tuint32_t; _para4:PPTPCRE2_UCHAR8; _para5: Psize_t; _para6:PTpcre2_convert_context_32):Tcint;cdecl;
  188. pcre2_converted_pattern_free : procedure(_para1:PTPCRE2_UCHAR8);cdecl;
  189. pcre2_match_context_copy : function(_para1:PTpcre2_match_context_32):PTpcre2_match_context_32;cdecl;
  190. pcre2_match_context_create : function(_para1:PTpcre2_general_context_32):PTpcre2_match_context_32;cdecl;
  191. pcre2_match_context_free : procedure(_para1:PTpcre2_match_context_32);cdecl;
  192. pcre2_set_callout : function(_para1:PTpcre2_match_context_32; _para2: tpcre2_set_callout_32_callback; _para3:pointer):Tcint;cdecl;
  193. pcre2_set_substitute_callout : function(_para1:PTpcre2_match_context_32; _para2:tpcre2_set_substitute_callout_32_callback; _para3:pointer):Tcint;cdecl;
  194. pcre2_set_depth_limit : function(_para1:PTpcre2_match_context_32; _para2:Tuint32_t):Tcint;cdecl;
  195. pcre2_set_heap_limit : function(_para1:PTpcre2_match_context_32; _para2:Tuint32_t):Tcint;cdecl;
  196. pcre2_set_match_limit : function(_para1:PTpcre2_match_context_32; _para2:Tuint32_t):Tcint;cdecl;
  197. pcre2_set_offset_limit : function(_para1:PTpcre2_match_context_32; _para2:Tsize_t):Tcint;cdecl;
  198. pcre2_set_recursion_limit : function(_para1:PTpcre2_match_context_32; _para2:Tuint32_t):Tcint;cdecl;
  199. pcre2_set_recursion_memory_management : function(_para1:PTpcre2_match_context_32; _para2: tpcre2_malloc; _para3:tpcre2_free; _para4:pointer):Tcint;cdecl;
  200. pcre2_compile : function(_para1:TPCRE2_SPTR8; _para2:Tsize_t; _para3:Tuint32_t; _para4:Pcint; _para5:Psize_t; _para6:PTpcre2_compile_context_32):Ppcre2_code_32;cdecl;
  201. pcre2_code_free : procedure(_para1:PTpcre2_code_32);cdecl;
  202. pcre2_code_copy : function(_para1:PTpcre2_code_32):PTpcre2_code_32;cdecl;
  203. pcre2_code_copy_with_tables : function(_para1:PTpcre2_code_32):PTpcre2_code_32;cdecl;
  204. pcre2_pattern_info : function(_para1:PTpcre2_code_32; _para2:Tuint32_t; _para3:pointer):Tcint;cdecl;
  205. pcre2_callout_enumerate : function(_para1:PTpcre2_code_32; _para2: tpcre2_callout_enumerate_32_callback; _para3:pointer):Tcint;cdecl;
  206. pcre2_match_data_create : function(_para1:Tuint32_t; _para2:PTpcre2_general_context_32):PTpcre2_match_data_32;cdecl;
  207. pcre2_match_data_create_from_pattern : function(_para1:PTpcre2_code_32; _para2:PTpcre2_general_context_32):PTpcre2_match_data_32;cdecl;
  208. pcre2_dfa_match : function(_para1:PTpcre2_code_32; _para2:TPCRE2_SPTR8; _para3:Tsize_t; _para4:Tsize_t; _para5:Tuint32_t; _para6:PTpcre2_match_data_32; _para7:PTpcre2_match_context_32; _para8:Pcint; _para9:Tsize_t):Tcint;cdecl;
  209. pcre2_match : function(_para1:PTpcre2_code_32; _para2:TPCRE2_SPTR8; _para3:Tsize_t; _para4:Tsize_t; _para5:Tuint32_t; _para6:PTpcre2_match_data_32; _para7:PTpcre2_match_context_32):Tcint;cdecl;
  210. pcre2_match_data_free : procedure(_para1:PTpcre2_match_data_32);cdecl;
  211. pcre2_get_mark : function(_para1:PTpcre2_match_data_32):TPCRE2_SPTR8;cdecl;
  212. pcre2_get_match_data_size : function(_para1:PTpcre2_match_data_32):Tsize_t;cdecl;
  213. pcre2_get_ovector_count : function(_para1:PTpcre2_match_data_32):Tuint32_t;cdecl;
  214. pcre2_get_ovector_pointer : function(_para1:PTpcre2_match_data_32):Psize_t;cdecl;
  215. pcre2_get_startchar : function(_para1:PTpcre2_match_data_32):Tsize_t;cdecl;
  216. pcre2_substring_copy_byname : function(_para1:PTpcre2_match_data_32; _para2:TPCRE2_SPTR8; _para3:PTPCRE2_UCHAR8; _para4:PTsize_t):Tcint;cdecl;
  217. pcre2_substring_copy_bynumber : function(_para1:PTpcre2_match_data_32; _para2:Tuint32_t; _para3:PTPCRE2_UCHAR8; _para4:PTsize_t):Tcint;cdecl;
  218. pcre2_substring_free : procedure(_para1:PTPCRE2_UCHAR8);cdecl;
  219. pcre2_substring_get_byname : function(_para1:PTpcre2_match_data_32; _para2:TPCRE2_SPTR8; _para3:PPTPCRE2_UCHAR8; _para4:PTsize_t):Tcint;cdecl;
  220. pcre2_substring_get_bynumber : function(_para1:PTpcre2_match_data_32; _para2:Tuint32_t; _para3:PPTPCRE2_UCHAR8; _para4:PTsize_t):Tcint;cdecl;
  221. pcre2_substring_length_byname : function(_para1:PTpcre2_match_data_32; _para2:TPCRE2_SPTR8; _para3:PTsize_t):Tcint;cdecl;
  222. pcre2_substring_length_bynumber : function(_para1:PTpcre2_match_data_32; _para2:Tuint32_t; _para3:PTsize_t):Tcint;cdecl;
  223. pcre2_substring_nametable_scan : function(_para1:PTpcre2_code_32; _para2:TPCRE2_SPTR8; _para3:PTPCRE2_SPTR8; _para4:PTPCRE2_SPTR8):Tcint;cdecl;
  224. pcre2_substring_number_from_name : function(_para1:PTpcre2_code_32; _para2:TPCRE2_SPTR8):Tcint;cdecl;
  225. pcre2_substring_list_free : procedure(_para1:PTPCRE2_SPTR8);cdecl;
  226. pcre2_substring_list_get : function(_para1:PTpcre2_match_data_32; _para2:PPPTPCRE2_UCHAR8; _para3:PPTsize_t):Tcint;cdecl;
  227. pcre2_serialize_encode : function(_para1:PPTpcre2_code_32; _para2:Tint32_t; _para3:PPTuint8_t; _para4:PTsize_t; _para5:PTpcre2_general_context_32):Tint32_t;cdecl;
  228. pcre2_serialize_decode : function(_para1:PPTpcre2_code_32; _para2:Tint32_t; _para3:PTuint8_t; _para4:PTpcre2_general_context_32):Tint32_t;cdecl;
  229. pcre2_serialize_get_number_of_codes : function(_para1:PTuint8_t):Tint32_t;cdecl;
  230. pcre2_serialize_free : procedure(_para1:PTuint8_t);cdecl;
  231. pcre2_substitute : function(_para1:PTpcre2_code_32; _para2:TPCRE2_SPTR8; _para3:Tsize_t; _para4:Tsize_t; _para5:Tuint32_t; _para6:PTpcre2_match_data_32; _para7:PTpcre2_match_context_32; _para8:TPCRE2_SPTR8; _para9:Tsize_t; _para10:PTPCRE2_UCHAR8; _para11:PTsize_t):Tcint;cdecl;
  232. pcre2_jit_compile : function(_para1:PTpcre2_code_32; _para2:Tuint32_t):Tcint;cdecl;
  233. pcre2_jit_match : function(_para1:PTpcre2_code_32; _para2:TPCRE2_SPTR8; _para3:Tsize_t; _para4:Tsize_t; _para5:Tuint32_t; _para6:PTpcre2_match_data_32; _para7:PTpcre2_match_context_32):Tcint;cdecl;
  234. pcre2_jit_free_unused_memory : procedure(_para1:PTpcre2_general_context_32);cdecl;
  235. pcre2_jit_stack_create : function(_para1:Tsize_t; _para2:Tsize_t; _para3:PTpcre2_general_context_32):PTpcre2_jit_stack_32;cdecl;
  236. pcre2_jit_stack_assign : procedure(_para1:PTpcre2_match_context_32; _para2:Tpcre2_jit_callback_32; _para3:pointer);cdecl;
  237. pcre2_jit_stack_free : procedure(_para1:PTpcre2_jit_stack_32);cdecl;
  238. pcre2_get_error_message : function(_para1:Tcint; _para2:PTPCRE2_UCHAR8; _para3:Tsize_t):Tcint;cdecl;
  239. pcre2_maketables : function(_para1:PTpcre2_general_context_32):PTuint8_t;cdecl;
  240. pcre2_maketables_free : procedure(_para1:PTpcre2_general_context_32; _para2:PTuint8_t);cdecl;
  241. function libpcre28loaded : Boolean;
  242. procedure Loadlibpcre28;
  243. procedure Freelibpcre28;
  244. procedure Loadlibpcre28(const lib : string);
  245. implementation
  246. uses
  247. {$IFDEF FPC_DOTTEDUNITS}
  248. System.SysUtils, System.DynLibs;
  249. {$ELSE}
  250. SysUtils, dynlibs;
  251. {$ENDIF}
  252. var
  253. hlib : tlibhandle;
  254. function libpcre28loaded : Boolean;
  255. begin
  256. Result:=(hLib<>NilHandle);
  257. end;
  258. procedure Freelibpcre28;
  259. begin
  260. if hlib=nilhandle then exit;
  261. FreeLibrary(hlib);
  262. hlib:=NilHandle;
  263. pcre2_config:=nil;
  264. pcre2_general_context_copy:=nil;
  265. pcre2_general_context_create:=nil;
  266. pcre2_general_context_free:=nil;
  267. pcre2_compile_context_copy:=nil;
  268. pcre2_compile_context_create:=nil;
  269. pcre2_compile_context_free:=nil;
  270. pcre2_set_bsr:=nil;
  271. pcre2_set_character_tables:=nil;
  272. pcre2_set_compile_extra_options:=nil;
  273. pcre2_set_max_pattern_length:=nil;
  274. pcre2_set_newline:=nil;
  275. pcre2_set_parens_nest_limit:=nil;
  276. pcre2_set_compile_recursion_guard:=nil;
  277. pcre2_convert_context_copy:=nil;
  278. pcre2_convert_context_create:=nil;
  279. pcre2_convert_context_free:=nil;
  280. pcre2_set_glob_escape:=nil;
  281. pcre2_set_glob_separator:=nil;
  282. pcre2_pattern_convert:=nil;
  283. pcre2_converted_pattern_free:=nil;
  284. pcre2_match_context_copy:=nil;
  285. pcre2_match_context_create:=nil;
  286. pcre2_match_context_free:=nil;
  287. pcre2_set_callout:=nil;
  288. pcre2_set_substitute_callout:=nil;
  289. pcre2_set_depth_limit:=nil;
  290. pcre2_set_heap_limit:=nil;
  291. pcre2_set_match_limit:=nil;
  292. pcre2_set_offset_limit:=nil;
  293. pcre2_set_recursion_limit:=nil;
  294. pcre2_set_recursion_memory_management:=nil;
  295. pcre2_compile:=nil;
  296. pcre2_code_free:=nil;
  297. pcre2_code_copy:=nil;
  298. pcre2_code_copy_with_tables:=nil;
  299. pcre2_pattern_info:=nil;
  300. pcre2_callout_enumerate:=nil;
  301. pcre2_match_data_create:=nil;
  302. pcre2_match_data_create_from_pattern:=nil;
  303. pcre2_dfa_match:=nil;
  304. pcre2_match:=nil;
  305. pcre2_match_data_free:=nil;
  306. pcre2_get_mark:=nil;
  307. pcre2_get_match_data_size:=nil;
  308. pcre2_get_ovector_count:=nil;
  309. pcre2_get_ovector_pointer:=nil;
  310. pcre2_get_startchar:=nil;
  311. pcre2_substring_copy_byname:=nil;
  312. pcre2_substring_copy_bynumber:=nil;
  313. pcre2_substring_free:=nil;
  314. pcre2_substring_get_byname:=nil;
  315. pcre2_substring_get_bynumber:=nil;
  316. pcre2_substring_length_byname:=nil;
  317. pcre2_substring_length_bynumber:=nil;
  318. pcre2_substring_nametable_scan:=nil;
  319. pcre2_substring_number_from_name:=nil;
  320. pcre2_substring_list_free:=nil;
  321. pcre2_substring_list_get:=nil;
  322. pcre2_serialize_encode:=nil;
  323. pcre2_serialize_decode:=nil;
  324. pcre2_serialize_get_number_of_codes:=nil;
  325. pcre2_serialize_free:=nil;
  326. pcre2_substitute:=nil;
  327. pcre2_jit_compile:=nil;
  328. pcre2_jit_match:=nil;
  329. pcre2_jit_free_unused_memory:=nil;
  330. pcre2_jit_stack_create:=nil;
  331. pcre2_jit_stack_assign:=nil;
  332. pcre2_jit_stack_free:=nil;
  333. pcre2_get_error_message:=nil;
  334. pcre2_maketables:=nil;
  335. pcre2_maketables_free:=nil;
  336. end;
  337. procedure Loadlibpcre28;
  338. begin
  339. Loadlibpcre28(pcrelibname);
  340. end;
  341. procedure Loadlibpcre28(const lib : string);
  342. Function GetAddr(const aName : string) : Pointer;
  343. begin
  344. Result:=GetProcAddress(hlib,aname);
  345. if Result=Nil then
  346. if IsConsole then
  347. Writeln(stdErr,'Could not load procedure: ',aName)
  348. end;
  349. begin
  350. Freelibpcre28;
  351. hlib:=LoadLibrary(lib);
  352. if (hlib=NilHandle) then
  353. raise Exception.Create(format('Could not load library: %s',[lib]));
  354. pointer(pcre2_config):=GetAddr('pcre2_config_32');
  355. pointer(pcre2_general_context_copy):=GetAddr('pcre2_general_context_copy_32');
  356. pointer(pcre2_general_context_create):=GetAddr('pcre2_general_context_create_32');
  357. pointer(pcre2_general_context_free):=GetAddr('pcre2_general_context_free_32');
  358. pointer(pcre2_compile_context_copy):=GetAddr('pcre2_compile_context_copy_32');
  359. pointer(pcre2_compile_context_create):=GetAddr('pcre2_compile_context_create_32');
  360. pointer(pcre2_compile_context_free):=GetAddr('pcre2_compile_context_free_32');
  361. pointer(pcre2_set_bsr):=GetAddr('pcre2_set_bsr_32');
  362. pointer(pcre2_set_character_tables):=GetAddr('pcre2_set_character_tables_32');
  363. pointer(pcre2_set_compile_extra_options):=GetAddr('pcre2_set_compile_extra_options_32');
  364. pointer(pcre2_set_max_pattern_length):=GetAddr('pcre2_set_max_pattern_length_32');
  365. pointer(pcre2_set_newline):=GetAddr('pcre2_set_newline_32');
  366. pointer(pcre2_set_parens_nest_limit):=GetAddr('pcre2_set_parens_nest_limit_32');
  367. pointer(pcre2_set_compile_recursion_guard):=GetAddr('pcre2_set_compile_recursion_guard_32');
  368. pointer(pcre2_convert_context_copy):=GetAddr('pcre2_convert_context_copy_32');
  369. pointer(pcre2_convert_context_create):=GetAddr('pcre2_convert_context_create_32');
  370. pointer(pcre2_convert_context_free):=GetAddr('pcre2_convert_context_free_32');
  371. pointer(pcre2_set_glob_escape):=GetAddr('pcre2_set_glob_escape_32');
  372. pointer(pcre2_set_glob_separator):=GetAddr('pcre2_set_glob_separator_32');
  373. pointer(pcre2_pattern_convert):=GetAddr('pcre2_pattern_convert_32');
  374. pointer(pcre2_converted_pattern_free):=GetAddr('pcre2_converted_pattern_free_32');
  375. pointer(pcre2_match_context_copy):=GetAddr('pcre2_match_context_copy_32');
  376. pointer(pcre2_match_context_create):=GetAddr('pcre2_match_context_create_32');
  377. pointer(pcre2_match_context_free):=GetAddr('pcre2_match_context_free_32');
  378. pointer(pcre2_set_callout):=GetAddr('pcre2_set_callout_32');
  379. pointer(pcre2_set_substitute_callout):=GetAddr('pcre2_set_substitute_callout_32');
  380. pointer(pcre2_set_depth_limit):=GetAddr('pcre2_set_depth_limit_32');
  381. pointer(pcre2_set_heap_limit):=GetAddr('pcre2_set_heap_limit_32');
  382. pointer(pcre2_set_match_limit):=GetAddr('pcre2_set_match_limit_32');
  383. pointer(pcre2_set_offset_limit):=GetAddr('pcre2_set_offset_limit_32');
  384. pointer(pcre2_set_recursion_limit):=GetAddr('pcre2_set_recursion_limit_32');
  385. pointer(pcre2_set_recursion_memory_management):=GetAddr('pcre2_set_recursion_memory_management_32');
  386. pointer(pcre2_compile):=GetAddr('pcre2_compile_32');
  387. pointer(pcre2_code_free):=GetAddr('pcre2_code_free_32');
  388. pointer(pcre2_code_copy):=GetAddr('pcre2_code_copy_32');
  389. pointer(pcre2_code_copy_with_tables):=GetAddr('pcre2_code_copy_with_tables_32');
  390. pointer(pcre2_pattern_info):=GetAddr('pcre2_pattern_info_32');
  391. pointer(pcre2_callout_enumerate):=GetAddr('pcre2_callout_enumerate_32');
  392. pointer(pcre2_match_data_create):=GetAddr('pcre2_match_data_create_32');
  393. pointer(pcre2_match_data_create_from_pattern):=GetAddr('pcre2_match_data_create_from_pattern_32');
  394. pointer(pcre2_dfa_match):=GetAddr('pcre2_dfa_match_32');
  395. pointer(pcre2_match):=GetAddr('pcre2_match_32');
  396. pointer(pcre2_match_data_free):=GetAddr('pcre2_match_data_free_32');
  397. pointer(pcre2_get_mark):=GetAddr('pcre2_get_mark_32');
  398. pointer(pcre2_get_match_data_size):=GetAddr('pcre2_get_match_data_size_32');
  399. pointer(pcre2_get_ovector_count):=GetAddr('pcre2_get_ovector_count_32');
  400. pointer(pcre2_get_ovector_pointer):=GetAddr('pcre2_get_ovector_pointer_32');
  401. pointer(pcre2_get_startchar):=GetAddr('pcre2_get_startchar_32');
  402. pointer(pcre2_substring_copy_byname):=GetAddr('pcre2_substring_copy_byname_32');
  403. pointer(pcre2_substring_copy_bynumber):=GetAddr('pcre2_substring_copy_bynumber_32');
  404. pointer(pcre2_substring_free):=GetAddr('pcre2_substring_free_32');
  405. pointer(pcre2_substring_get_byname):=GetAddr('pcre2_substring_get_byname_32');
  406. pointer(pcre2_substring_get_bynumber):=GetAddr('pcre2_substring_get_bynumber_32');
  407. pointer(pcre2_substring_length_byname):=GetAddr('pcre2_substring_length_byname_32');
  408. pointer(pcre2_substring_length_bynumber):=GetAddr('pcre2_substring_length_bynumber_32');
  409. pointer(pcre2_substring_nametable_scan):=GetAddr('pcre2_substring_nametable_scan_32');
  410. pointer(pcre2_substring_number_from_name):=GetAddr('pcre2_substring_number_from_name_32');
  411. pointer(pcre2_substring_list_free):=GetAddr('pcre2_substring_list_free_32');
  412. pointer(pcre2_substring_list_get):=GetAddr('pcre2_substring_list_get_32');
  413. pointer(pcre2_serialize_encode):=GetAddr('pcre2_serialize_encode_32');
  414. pointer(pcre2_serialize_decode):=GetAddr('pcre2_serialize_decode_32');
  415. pointer(pcre2_serialize_get_number_of_codes):=GetAddr('pcre2_serialize_get_number_of_codes_32');
  416. pointer(pcre2_serialize_free):=GetAddr('pcre2_serialize_free_32');
  417. pointer(pcre2_substitute):=GetAddr('pcre2_substitute_32');
  418. pointer(pcre2_jit_compile):=GetAddr('pcre2_jit_compile_32');
  419. pointer(pcre2_jit_match):=GetAddr('pcre2_jit_match_32');
  420. pointer(pcre2_jit_free_unused_memory):=GetAddr('pcre2_jit_free_unused_memory_32');
  421. pointer(pcre2_jit_stack_create):=GetAddr('pcre2_jit_stack_create_32');
  422. pointer(pcre2_jit_stack_assign):=GetAddr('pcre2_jit_stack_assign_32');
  423. pointer(pcre2_jit_stack_free):=GetAddr('pcre2_jit_stack_free_32');
  424. pointer(pcre2_get_error_message):=GetAddr('pcre2_get_error_message_32');
  425. pointer(pcre2_maketables):=GetAddr('pcre2_maketables_32');
  426. pointer(pcre2_maketables_free):=GetAddr('pcre2_maketables_free_32');
  427. end;
  428. initialization
  429. Loadlibpcre28;
  430. finalization
  431. Freelibpcre28;
  432. end.