foundational_lib2 1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (529) hide show
  1. checksums.yaml +7 -0
  2. data/Articles/1.html +524 -0
  3. data/Articles/10.html +63 -0
  4. data/Articles/11.html +153 -0
  5. data/Articles/12.html +15 -0
  6. data/Articles/13.html +14 -0
  7. data/Articles/14.html +299 -0
  8. data/Articles/15.html +125 -0
  9. data/Articles/16.html +908 -0
  10. data/Articles/2.html +83 -0
  11. data/Articles/3.html +46 -0
  12. data/Articles/4.html +108 -0
  13. data/Articles/5.html +186 -0
  14. data/Articles/6.html +49 -0
  15. data/Articles/7.html +25 -0
  16. data/Articles/8.html +128 -0
  17. data/Articles/9.html +72 -0
  18. data/Articles/convert_html_to_markdown.sh +8 -0
  19. data/Articles/css.css +54 -0
  20. data/Articles/format.rb +95 -0
  21. data/Articles/index.html +34 -0
  22. data/Articles_MD/1.html.md +451 -0
  23. data/Articles_MD/10.html.md +57 -0
  24. data/Articles_MD/11.html.md +231 -0
  25. data/Articles_MD/12.html.md +16 -0
  26. data/Articles_MD/13.html.md +15 -0
  27. data/Articles_MD/14.html.md +280 -0
  28. data/Articles_MD/15.html.md +135 -0
  29. data/Articles_MD/16.html.md +840 -0
  30. data/Articles_MD/17.html.md +838 -0
  31. data/Articles_MD/2.html.md +82 -0
  32. data/Articles_MD/3.html.md +163 -0
  33. data/Articles_MD/4.html.md +137 -0
  34. data/Articles_MD/5.html.md +175 -0
  35. data/Articles_MD/6.html.md +47 -0
  36. data/Articles_MD/7.html.md +24 -0
  37. data/Articles_MD/8.html.md +71 -0
  38. data/Articles_MD/9.html.md +68 -0
  39. data/Articles_MD/index.html.md +25 -0
  40. data/DOCS.md +11153 -0
  41. data/GENERATE_CUSTOM_FOUNDATIONALLIB.rb +89 -0
  42. data/LICENSE.md +16 -0
  43. data/NOTE.md +29 -0
  44. data/README.md +120 -0
  45. data/custom_library_example.h +13999 -0
  46. data/docs/Doxyfile +2746 -0
  47. data/docs/LICENSE +21 -0
  48. data/docs/Makefile +39 -0
  49. data/docs/custom-alternative.css +54 -0
  50. data/docs/custom.css +57 -0
  51. data/docs/doxygen-awesome-darkmode-toggle.js +157 -0
  52. data/docs/doxygen-awesome-fragment-copy-button.js +85 -0
  53. data/docs/doxygen-awesome-interactive-toc.js +81 -0
  54. data/docs/doxygen-awesome-paragraph-link.js +51 -0
  55. data/docs/doxygen-awesome-sidebar-only-darkmode-toggle.css +40 -0
  56. data/docs/doxygen-awesome-sidebar-only.css +116 -0
  57. data/docs/doxygen-awesome-tabs.js +90 -0
  58. data/docs/doxygen-awesome.css +2669 -0
  59. data/docs/doxygen-custom/custom-alternative.css +54 -0
  60. data/docs/doxygen-custom/custom.css +57 -0
  61. data/docs/doxygen-custom/header.html +90 -0
  62. data/docs/doxygen-custom/toggle-alternative-theme.js +12 -0
  63. data/docs/header.html +90 -0
  64. data/docs/html/html/annotated.html +145 -0
  65. data/docs/html/html/annotated_dup.js +10 -0
  66. data/docs/html/html/bc_s.png +0 -0
  67. data/docs/html/html/bdwn.png +0 -0
  68. data/docs/html/html/classes.html +149 -0
  69. data/docs/html/html/closed.png +0 -0
  70. data/docs/html/html/custom-alternative.css +54 -0
  71. data/docs/html/html/custom.css +57 -0
  72. data/docs/html/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +141 -0
  73. data/docs/html/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js +4 -0
  74. data/docs/html/html/doc.png +0 -0
  75. data/docs/html/html/doxygen-awesome-darkmode-toggle.js +157 -0
  76. data/docs/html/html/doxygen-awesome-fragment-copy-button.js +85 -0
  77. data/docs/html/html/doxygen-awesome-interactive-toc.js +81 -0
  78. data/docs/html/html/doxygen-awesome-paragraph-link.js +51 -0
  79. data/docs/html/html/doxygen-awesome-sidebar-only-darkmode-toggle.css +40 -0
  80. data/docs/html/html/doxygen-awesome-sidebar-only.css +116 -0
  81. data/docs/html/html/doxygen-awesome-tabs.js +90 -0
  82. data/docs/html/html/doxygen-awesome.css +2669 -0
  83. data/docs/html/html/doxygen.css +1793 -0
  84. data/docs/html/html/doxygen.svg +26 -0
  85. data/docs/html/html/dynsections.js +121 -0
  86. data/docs/html/html/files.html +140 -0
  87. data/docs/html/html/files_dup.js +4 -0
  88. data/docs/html/html/folderclosed.png +0 -0
  89. data/docs/html/html/folderopen.png +0 -0
  90. data/docs/html/html/foundationallib_8h.html +17294 -0
  91. data/docs/html/html/foundationallib_8h.js +445 -0
  92. data/docs/html/html/foundationallib_8h__incl.map +15 -0
  93. data/docs/html/html/foundationallib_8h__incl.md5 +1 -0
  94. data/docs/html/html/foundationallib_8h__incl.svg +202 -0
  95. data/docs/html/html/foundationallib_8h_source.html +9125 -0
  96. data/docs/html/html/functions.html +188 -0
  97. data/docs/html/html/functions_vars.html +188 -0
  98. data/docs/html/html/globals.html +158 -0
  99. data/docs/html/html/globals_b.html +137 -0
  100. data/docs/html/html/globals_c.html +173 -0
  101. data/docs/html/html/globals_d.html +185 -0
  102. data/docs/html/html/globals_defs.html +361 -0
  103. data/docs/html/html/globals_dup.js +19 -0
  104. data/docs/html/html/globals_e.html +221 -0
  105. data/docs/html/html/globals_f.html +560 -0
  106. data/docs/html/html/globals_func.html +158 -0
  107. data/docs/html/html/globals_func.js +19 -0
  108. data/docs/html/html/globals_func_b.html +137 -0
  109. data/docs/html/html/globals_func_c.html +173 -0
  110. data/docs/html/html/globals_func_d.html +179 -0
  111. data/docs/html/html/globals_func_e.html +218 -0
  112. data/docs/html/html/globals_func_f.html +341 -0
  113. data/docs/html/html/globals_func_g.html +140 -0
  114. data/docs/html/html/globals_func_i.html +188 -0
  115. data/docs/html/html/globals_func_j.html +137 -0
  116. data/docs/html/html/globals_func_l.html +152 -0
  117. data/docs/html/html/globals_func_m.html +152 -0
  118. data/docs/html/html/globals_func_p.html +374 -0
  119. data/docs/html/html/globals_func_r.html +194 -0
  120. data/docs/html/html/globals_func_s.html +386 -0
  121. data/docs/html/html/globals_func_u.html +140 -0
  122. data/docs/html/html/globals_func_w.html +140 -0
  123. data/docs/html/html/globals_g.html +140 -0
  124. data/docs/html/html/globals_i.html +188 -0
  125. data/docs/html/html/globals_j.html +137 -0
  126. data/docs/html/html/globals_l.html +152 -0
  127. data/docs/html/html/globals_m.html +152 -0
  128. data/docs/html/html/globals_p.html +374 -0
  129. data/docs/html/html/globals_r.html +194 -0
  130. data/docs/html/html/globals_s.html +389 -0
  131. data/docs/html/html/globals_type.html +144 -0
  132. data/docs/html/html/globals_u.html +140 -0
  133. data/docs/html/html/globals_vars.html +135 -0
  134. data/docs/html/html/globals_w.html +140 -0
  135. data/docs/html/html/graph_legend.html +194 -0
  136. data/docs/html/html/graph_legend.md5 +1 -0
  137. data/docs/html/html/graph_legend.svg +117 -0
  138. data/docs/html/html/index.html +134 -0
  139. data/docs/html/html/jquery.js +35 -0
  140. data/docs/html/html/logo.drawio.svg +1 -0
  141. data/docs/html/html/menu.js +51 -0
  142. data/docs/html/html/menudata.js +75 -0
  143. data/docs/html/html/nav_f.png +0 -0
  144. data/docs/html/html/nav_g.png +0 -0
  145. data/docs/html/html/nav_h.png +0 -0
  146. data/docs/html/html/navtree.css +146 -0
  147. data/docs/html/html/navtree.js +546 -0
  148. data/docs/html/html/navtreedata.js +57 -0
  149. data/docs/html/html/navtreeindex0.js +253 -0
  150. data/docs/html/html/navtreeindex1.js +253 -0
  151. data/docs/html/html/navtreeindex2.js +18 -0
  152. data/docs/html/html/open.png +0 -0
  153. data/docs/html/html/resize.js +140 -0
  154. data/docs/html/html/search/all_0.html +37 -0
  155. data/docs/html/html/search/all_0.js +12 -0
  156. data/docs/html/html/search/all_1.html +37 -0
  157. data/docs/html/html/search/all_1.js +4 -0
  158. data/docs/html/html/search/all_10.html +37 -0
  159. data/docs/html/html/search/all_10.js +6 -0
  160. data/docs/html/html/search/all_11.html +37 -0
  161. data/docs/html/html/search/all_11.js +5 -0
  162. data/docs/html/html/search/all_12.html +37 -0
  163. data/docs/html/html/search/all_12.js +4 -0
  164. data/docs/html/html/search/all_13.html +37 -0
  165. data/docs/html/html/search/all_13.js +5 -0
  166. data/docs/html/html/search/all_2.html +37 -0
  167. data/docs/html/html/search/all_2.js +17 -0
  168. data/docs/html/html/search/all_3.html +37 -0
  169. data/docs/html/html/search/all_3.js +21 -0
  170. data/docs/html/html/search/all_4.html +37 -0
  171. data/docs/html/html/search/all_4.js +34 -0
  172. data/docs/html/html/search/all_5.html +37 -0
  173. data/docs/html/html/search/all_5.js +147 -0
  174. data/docs/html/html/search/all_6.html +37 -0
  175. data/docs/html/html/search/all_6.js +5 -0
  176. data/docs/html/html/search/all_7.html +37 -0
  177. data/docs/html/html/search/all_7.js +22 -0
  178. data/docs/html/html/search/all_8.html +37 -0
  179. data/docs/html/html/search/all_8.js +4 -0
  180. data/docs/html/html/search/all_9.html +37 -0
  181. data/docs/html/html/search/all_9.js +4 -0
  182. data/docs/html/html/search/all_a.html +37 -0
  183. data/docs/html/html/search/all_a.js +9 -0
  184. data/docs/html/html/search/all_b.html +37 -0
  185. data/docs/html/html/search/all_b.js +9 -0
  186. data/docs/html/html/search/all_c.html +37 -0
  187. data/docs/html/html/search/all_c.js +4 -0
  188. data/docs/html/html/search/all_d.html +37 -0
  189. data/docs/html/html/search/all_d.js +83 -0
  190. data/docs/html/html/search/all_e.html +37 -0
  191. data/docs/html/html/search/all_e.js +25 -0
  192. data/docs/html/html/search/all_f.html +37 -0
  193. data/docs/html/html/search/all_f.js +91 -0
  194. data/docs/html/html/search/classes_0.html +37 -0
  195. data/docs/html/html/search/classes_0.js +5 -0
  196. data/docs/html/html/search/classes_1.html +37 -0
  197. data/docs/html/html/search/classes_1.js +5 -0
  198. data/docs/html/html/search/classes_2.html +37 -0
  199. data/docs/html/html/search/classes_2.js +5 -0
  200. data/docs/html/html/search/classes_3.html +37 -0
  201. data/docs/html/html/search/classes_3.js +4 -0
  202. data/docs/html/html/search/close.svg +31 -0
  203. data/docs/html/html/search/defines_0.html +37 -0
  204. data/docs/html/html/search/defines_0.js +4 -0
  205. data/docs/html/html/search/defines_1.html +37 -0
  206. data/docs/html/html/search/defines_1.js +4 -0
  207. data/docs/html/html/search/defines_2.html +37 -0
  208. data/docs/html/html/search/defines_2.js +74 -0
  209. data/docs/html/html/search/files_0.html +37 -0
  210. data/docs/html/html/search/files_0.js +4 -0
  211. data/docs/html/html/search/functions_0.html +37 -0
  212. data/docs/html/html/search/functions_0.js +11 -0
  213. data/docs/html/html/search/functions_1.html +37 -0
  214. data/docs/html/html/search/functions_1.js +4 -0
  215. data/docs/html/html/search/functions_2.html +37 -0
  216. data/docs/html/html/search/functions_2.js +16 -0
  217. data/docs/html/html/search/functions_3.html +37 -0
  218. data/docs/html/html/search/functions_3.js +18 -0
  219. data/docs/html/html/search/functions_4.html +37 -0
  220. data/docs/html/html/search/functions_4.js +31 -0
  221. data/docs/html/html/search/functions_5.html +37 -0
  222. data/docs/html/html/search/functions_5.js +72 -0
  223. data/docs/html/html/search/functions_6.html +37 -0
  224. data/docs/html/html/search/functions_6.js +5 -0
  225. data/docs/html/html/search/functions_7.html +37 -0
  226. data/docs/html/html/search/functions_7.js +21 -0
  227. data/docs/html/html/search/functions_8.html +37 -0
  228. data/docs/html/html/search/functions_8.js +4 -0
  229. data/docs/html/html/search/functions_9.html +37 -0
  230. data/docs/html/html/search/functions_9.js +9 -0
  231. data/docs/html/html/search/functions_a.html +37 -0
  232. data/docs/html/html/search/functions_a.js +9 -0
  233. data/docs/html/html/search/functions_b.html +37 -0
  234. data/docs/html/html/search/functions_b.js +83 -0
  235. data/docs/html/html/search/functions_c.html +37 -0
  236. data/docs/html/html/search/functions_c.js +23 -0
  237. data/docs/html/html/search/functions_d.html +37 -0
  238. data/docs/html/html/search/functions_d.js +87 -0
  239. data/docs/html/html/search/functions_e.html +37 -0
  240. data/docs/html/html/search/functions_e.js +5 -0
  241. data/docs/html/html/search/functions_f.html +37 -0
  242. data/docs/html/html/search/functions_f.js +5 -0
  243. data/docs/html/html/search/mag_sel.svg +74 -0
  244. data/docs/html/html/search/nomatches.html +13 -0
  245. data/docs/html/html/search/search.css +257 -0
  246. data/docs/html/html/search/search.js +816 -0
  247. data/docs/html/html/search/search_l.png +0 -0
  248. data/docs/html/html/search/search_m.png +0 -0
  249. data/docs/html/html/search/search_r.png +0 -0
  250. data/docs/html/html/search/searchdata.js +33 -0
  251. data/docs/html/html/search/typedefs_0.html +37 -0
  252. data/docs/html/html/search/typedefs_0.js +4 -0
  253. data/docs/html/html/search/typedefs_1.html +37 -0
  254. data/docs/html/html/search/typedefs_1.js +5 -0
  255. data/docs/html/html/search/typedefs_2.html +37 -0
  256. data/docs/html/html/search/typedefs_2.js +4 -0
  257. data/docs/html/html/search/variables_0.html +37 -0
  258. data/docs/html/html/search/variables_0.js +4 -0
  259. data/docs/html/html/search/variables_1.html +37 -0
  260. data/docs/html/html/search/variables_1.js +4 -0
  261. data/docs/html/html/search/variables_2.html +37 -0
  262. data/docs/html/html/search/variables_2.js +5 -0
  263. data/docs/html/html/search/variables_3.html +37 -0
  264. data/docs/html/html/search/variables_3.js +5 -0
  265. data/docs/html/html/search/variables_4.html +37 -0
  266. data/docs/html/html/search/variables_4.js +4 -0
  267. data/docs/html/html/search/variables_5.html +37 -0
  268. data/docs/html/html/search/variables_5.js +4 -0
  269. data/docs/html/html/search/variables_6.html +37 -0
  270. data/docs/html/html/search/variables_6.js +4 -0
  271. data/docs/html/html/search/variables_7.html +37 -0
  272. data/docs/html/html/search/variables_7.js +5 -0
  273. data/docs/html/html/search/variables_8.html +37 -0
  274. data/docs/html/html/search/variables_8.js +5 -0
  275. data/docs/html/html/search/variables_9.html +37 -0
  276. data/docs/html/html/search/variables_9.js +5 -0
  277. data/docs/html/html/search/variables_a.html +37 -0
  278. data/docs/html/html/search/variables_a.js +4 -0
  279. data/docs/html/html/splitbar.png +0 -0
  280. data/docs/html/html/struct_dict.html +195 -0
  281. data/docs/html/html/struct_dict.js +6 -0
  282. data/docs/html/html/struct_dict_key_value.html +197 -0
  283. data/docs/html/html/struct_dict_key_value.js +6 -0
  284. data/docs/html/html/struct_frozen_dict.html +195 -0
  285. data/docs/html/html/struct_frozen_dict.js +6 -0
  286. data/docs/html/html/struct_frozen_set.html +195 -0
  287. data/docs/html/html/struct_frozen_set.js +6 -0
  288. data/docs/html/html/struct_set.html +195 -0
  289. data/docs/html/html/struct_set.js +6 -0
  290. data/docs/html/html/struct_set_key.html +179 -0
  291. data/docs/html/html/struct_set_key.js +5 -0
  292. data/docs/html/html/struct_thread_data.html +291 -0
  293. data/docs/html/html/struct_thread_data.js +12 -0
  294. data/docs/html/html/sync_off.png +0 -0
  295. data/docs/html/html/sync_on.png +0 -0
  296. data/docs/html/html/tab_a.png +0 -0
  297. data/docs/html/html/tab_b.png +0 -0
  298. data/docs/html/html/tab_h.png +0 -0
  299. data/docs/html/html/tab_s.png +0 -0
  300. data/docs/html/html/tabs.css +1 -0
  301. data/docs/html/html/toggle-alternative-theme.js +12 -0
  302. data/docs/img/screenshot.png +0 -0
  303. data/docs/img/testimage.png +0 -0
  304. data/docs/img/theme-variants-base.drawio.svg +117 -0
  305. data/docs/img/theme-variants-sidebar-only.drawio.svg +102 -0
  306. data/docs/logo.drawio.svg +1 -0
  307. data/docs/package.json +34 -0
  308. data/docs/src/foundationallib.h +13061 -0
  309. data/docs/toggle-alternative-theme.js +12 -0
  310. data/example_of_transpilation_comments.txt +167 -0
  311. data/foundationallib.gemspec +14 -0
  312. data/foundationallib.h +13999 -0
  313. data/platforms/README.md +17 -0
  314. data/platforms/header_and_separate_compilation_unit/Makefile +18 -0
  315. data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.c +13014 -0
  316. data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.h +316 -0
  317. data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.o +0 -0
  318. data/platforms/header_and_separate_compilation_unit/non_inline_example +0 -0
  319. data/platforms/header_and_separate_compilation_unit/non_inline_example.c +11 -0
  320. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/Makefile +18 -0
  321. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.c +13014 -0
  322. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.h +317 -0
  323. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.o +0 -0
  324. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/non_inline_example +0 -0
  325. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/non_inline_example.c +11 -0
  326. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/wont_compile.c +8 -0
  327. data/tests/decoupled_thorough_tests +0 -0
  328. data/tests/decoupled_thorough_tests.c +95 -0
  329. data/tests/decoupled_thorough_tests.exe +0 -0
  330. data/tests/decoupled_thorough_tests32 +0 -0
  331. data/tests/deps_for_testing +9 -0
  332. data/tests/deps_for_testing.sh +23 -0
  333. data/tests/destination_file.txt +1 -0
  334. data/tests/ex_ample.txt +1 -0
  335. data/tests/existing_file.txt +127 -0
  336. data/tests/lib_and_tests +0 -0
  337. data/tests/lib_and_tests.c +15920 -0
  338. data/tests/lib_and_tests.exe +0 -0
  339. data/tests/lib_and_tests32 +0 -0
  340. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_append_string_to_array.c +33 -0
  341. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_append_string_to_array_no_initial_alloc.c +51 -0
  342. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_array_total_string_length.c +25 -0
  343. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_arraydup.c +33 -0
  344. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_calculate_average_in_int_array.c +70 -0
  345. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_calculate_sum_in_int_array.c +47 -0
  346. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_common_prefix_length.c +23 -0
  347. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_common_suffix_length.c +23 -0
  348. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_five_strings.c +32 -0
  349. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_four_strings.c +39 -0
  350. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_string_array.c +28 -0
  351. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_strings.c +47 -0
  352. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_three_strings.c +43 -0
  353. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_count_occurrences_of_substr.c +21 -0
  354. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_count_occurrences_of_substr_len.c +66 -0
  355. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_add.c +49 -0
  356. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_del_key.c +26 -0
  357. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_del_keys.c +69 -0
  358. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_del_values.c +69 -0
  359. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_destructor.c +69 -0
  360. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_get.c +69 -0
  361. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_get_check.c +75 -0
  362. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_hash.c +18 -0
  363. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_iter.c +69 -0
  364. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_new_instance.c +69 -0
  365. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_reserve_more.c +21 -0
  366. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_resize.c +8 -0
  367. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_size.c +79 -0
  368. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_to_array.c +26 -0
  369. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_to_string.c +29 -0
  370. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dup_format.c +58 -0
  371. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_ends_with.c +48 -0
  372. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_char_ptrs.c +55 -0
  373. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_chars.c +53 -0
  374. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_double_ptrs.c +50 -0
  375. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_doubles.c +35 -0
  376. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_float_ptrs.c +36 -0
  377. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_floats.c +45 -0
  378. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_int_ptrs.c +51 -0
  379. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ints.c +55 -0
  380. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_long_long_ptrs.c +27 -0
  381. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_long_longs.c +53 -0
  382. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_long_ptrs.c +66 -0
  383. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_longs.c +47 -0
  384. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_short_ptrs.c +36 -0
  385. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_shorts.c +52 -0
  386. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_size_t_ptrs.c +62 -0
  387. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_size_ts.c +62 -0
  388. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uchar_ptrs.c +46 -0
  389. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uchars.c +60 -0
  390. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uint_ptrs.c +37 -0
  391. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uints.c +36 -0
  392. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulong_long_ptrs.c +56 -0
  393. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulong_longs.c +46 -0
  394. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulong_ptrs.c +38 -0
  395. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulongs.c +37 -0
  396. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ushort_ptrs.c +30 -0
  397. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ushorts.c +55 -0
  398. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_strings.c +45 -0
  399. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_filter.c +59 -0
  400. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_filter_int.c +39 -0
  401. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_first_of.c +48 -0
  402. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_last_of.c +48 -0
  403. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_max_int_in_array.c +55 -0
  404. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_min_int_in_array.c +58 -0
  405. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_first_non_repeating_char.c +42 -0
  406. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_format_string.c +68 -0
  407. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_free_array.c +63 -0
  408. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_free_string_array.c +50 -0
  409. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_del_keys.c +28 -0
  410. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_del_values.c +64 -0
  411. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_destructor.c +23 -0
  412. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_get.c +27 -0
  413. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_get_check.c +32 -0
  414. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_new_instance.c +23 -0
  415. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_size.c +33 -0
  416. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_to_array.c +51 -0
  417. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_to_string.c +48 -0
  418. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_del_keys.c +35 -0
  419. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_destructor.c +55 -0
  420. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_in.c +70 -0
  421. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_iter.c +71 -0
  422. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_new_instance.c +26 -0
  423. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_size.c +46 -0
  424. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_to_array.c +70 -0
  425. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_to_string.c +52 -0
  426. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_generate_range.c +62 -0
  427. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_index_of_char.c +77 -0
  428. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_int_to_string.c +54 -0
  429. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_alphanumeric.c +50 -0
  430. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_array_digit.c +67 -0
  431. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_array_lower.c +52 -0
  432. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_array_upper.c +28 -0
  433. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_numeric.c +36 -0
  434. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_alpha.c +43 -0
  435. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_digit.c +54 -0
  436. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_lower.c +50 -0
  437. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_space.c +48 -0
  438. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_upper.c +72 -0
  439. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_valid_integer.c +16 -0
  440. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_valid_utf8.c +46 -0
  441. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_join.c +53 -0
  442. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_last_index_of_char.c +15 -0
  443. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_list_comprehension.c +95 -0
  444. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_list_comprehension_multithreaded.c +41 -0
  445. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_longest_common_prefix.c +35 -0
  446. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_longest_common_suffix.c +61 -0
  447. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_map.c +46 -0
  448. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_map_int.c +59 -0
  449. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_prepend_string_to_array.c +68 -0
  450. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_prepend_string_to_array_no_initial_alloc.c +57 -0
  451. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_rand_number_from_range_inclusive_signed.c +41 -0
  452. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_rand_number_from_range_inclusive_unsigned.c +23 -0
  453. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reduce.c +49 -0
  454. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reduce_int.c +44 -0
  455. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reject_array.c +47 -0
  456. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replace_all.c +73 -0
  457. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replace_all_with_callback.c +46 -0
  458. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replace_all_with_lens.c +61 -0
  459. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replicate.c +56 -0
  460. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_int_array.c +58 -0
  461. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_string.c +58 -0
  462. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_string_in_place.c +60 -0
  463. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_words.c +58 -0
  464. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_sample_strings.c +48 -0
  465. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_select_array.c +29 -0
  466. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_add.c +69 -0
  467. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_del_key.c +29 -0
  468. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_del_keys.c +35 -0
  469. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_destructor.c +31 -0
  470. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_hash.c +44 -0
  471. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_in.c +52 -0
  472. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_iter.c +69 -0
  473. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_new_instance.c +30 -0
  474. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_reserve_more.c +36 -0
  475. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_resize.c +37 -0
  476. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_size.c +42 -0
  477. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_to_array.c +41 -0
  478. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_to_string.c +81 -0
  479. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_shellescape.c +53 -0
  480. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_shuffle_strings_in_place.c +39 -0
  481. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_split.c +64 -0
  482. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_starts_with.c +39 -0
  483. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_str_to_double.c +32 -0
  484. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_array_uniq.c +60 -0
  485. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_array_uniq_adjacent.c +54 -0
  486. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_int.c +55 -0
  487. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_json.c +98 -0
  488. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_lowercase.c +73 -0
  489. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_title_case.c +80 -0
  490. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_uppercase.c +78 -0
  491. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_strip.c +84 -0
  492. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_trim_chars.c +85 -0
  493. data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/testall.sh +15 -0
  494. data/tests/run_test_suite.sh +117 -0
  495. data/tests/source_file.txt +1 -0
  496. data/tests/test_log.txt +1047 -0
  497. data/tools/FUTURE +18 -0
  498. data/tools/HEADERS.h +316 -0
  499. data/tools/HEADERS_ONLY_FUNCTIONS.h +284 -0
  500. data/tools/HEADERS_WITH_PREFIX.h +33 -0
  501. data/tools/RSUB_LICENSE.txt +25 -0
  502. data/tools/benchmark_libc.c +263 -0
  503. data/tools/deprecated/GENERATE_CUSTOM_FOUNDATIONALLIB.sh.old +67 -0
  504. data/tools/deps_for_testing.sh +23 -0
  505. data/tools/documentation_generate +17 -0
  506. data/tools/foundationallib.h +13999 -0
  507. data/tools/funcs_c +15858 -0
  508. data/tools/funcs_c_with_tests.c +15920 -0
  509. data/tools/gen_video_new +444 -0
  510. data/tools/gen_video_new_times +41 -0
  511. data/tools/generate_promo_video_for_library.rb +19 -0
  512. data/tools/index.html +147 -0
  513. data/tools/lib.html +20 -0
  514. data/tools/lib2.html +22 -0
  515. data/tools/lib3.html +22 -0
  516. data/tools/lynx.rb +145 -0
  517. data/tools/make_image_of_docs +741 -0
  518. data/tools/pic.png +0 -0
  519. data/tools/pic2.png +0 -0
  520. data/tools/pic3.png +0 -0
  521. data/tools/play_with_string_replace_functions.c +236 -0
  522. data/tools/rsub +0 -0
  523. data/tools/rsub.c +501 -0
  524. data/tools/run_lib +365 -0
  525. data/tools/update +44 -0
  526. data/tools/with_tests +0 -0
  527. data/tools/with_tests32 +0 -0
  528. data/transpile_slow_scripting_into_c.rb +225 -0
  529. metadata +693 -0
data/tools/FUTURE ADDED
@@ -0,0 +1,18 @@
1
+ Future plans
2
+
3
+
4
+
5
+ * In the future, I'm going to follow my philosophy more and implement more functions,
6
+ for example, more string replace functions.
7
+
8
+ The current code is rather good.
9
+
10
+ One thing I could do is on UNIX, bypass fread() and fwrite() and use direct file
11
+ descriptors, presumably for efficiency, to bypass Glibc.
12
+
13
+ The error handling would be similar.
14
+
15
+
16
+
17
+ * More collaborators would be great. Please email me.
18
+
data/tools/HEADERS.h ADDED
@@ -0,0 +1,316 @@
1
+
2
+ #ifndef _FOUNDATIONAL_LIB_HEADER_GUARD
3
+ #define _FOUNDATIONAL_LIB_HEADER_GUARD
4
+
5
+ #include <ctype.h>
6
+ #include <stdarg.h>
7
+ #include <stdio.h>
8
+ #ifdef _WIN32
9
+ #define _CRT_RAND_S
10
+ #endif
11
+ #include <stdlib.h>
12
+
13
+ #include <string.h>
14
+
15
+ #include <errno.h>
16
+
17
+ #ifndef FOUNDATIONAL_LIB_AGGRESSIVE_DIE_TYPE
18
+ /**
19
+ * @brief Type of the aggressive die variable.
20
+ *
21
+ * This macro defines the type of the aggressive die variable, which
22
+ * uses 1 byte of overhead by default. It can be configured as static
23
+ * or nonstatic based on user preference.
24
+ */
25
+ #define FOUNDATIONAL_LIB_AGGRESSIVE_DIE_TYPE static unsigned char
26
+ #endif
27
+
28
+ struct Dict;
29
+ struct FrozenDict;
30
+ struct Set;
31
+ struct FrozenSet;
32
+ char **list_files_with_pattern(const char *directory, const char *pattern, size_t *len);
33
+ char **read_file_into_array(const char *filename, const char *delim, size_t *num_lines);
34
+ char **sorted_char_ptrs(char **char_ptrs, size_t size);
35
+ char **sorted_strings(char **strings, size_t size);
36
+ char **split(const char *str, size_t *output_size, const char *delim, size_t max_times, int keep_delim_in_result);
37
+ char *backticks(const char *command, size_t *size);
38
+ char *concatenate_five_strings(const char *str1, const char *str2, const char *str3, const char *str4, const char *str5);
39
+ char *concatenate_four_strings(const char *str1, const char *str2, const char *str3, const char *str4);
40
+ char *concatenate_string_array(const char **strings, size_t num_strings);
41
+ char *concatenate_strings(const char *str1, const char *str2);
42
+ char *concatenate_three_strings(const char *str1, const char *str2, const char *str3);
43
+ char *dict_to_string(struct Dict *dict, int pointer_or_string) /* 0 = pointer, 1 = string */;
44
+ char *dup_format(const char *format, ...);
45
+ char *frozen_dict_to_string(struct FrozenDict *dict, int pointer_or_string) /* 0 = pointer, 1 = string */;
46
+ char *frozen_set_to_string(struct FrozenSet *frozen_set);
47
+ char *int_to_string(long long int number);
48
+ char *join(const char **array, size_t count, const char *delimiter);
49
+ char *longest_common_prefix(const char **strings, size_t count);
50
+ char *longest_common_suffix(const char **strings, size_t count);
51
+ char *read_file_into_string(const char *filename, size_t *size);
52
+ char *reduce_filesystem_files_as_strings(const char *directory, const char *out_file, char *(*reduce_function)(char *value1, ...));
53
+ char *replace_all(const char *source, const char *find, const char *replace);
54
+ char *replace_all_with_callback(const char *str, const char *old_substring, char *(*callback)(const char *, void *), void *data_for_callback);
55
+ char *replace_count(const char *source, const char *find, const char *replace, const size_t matches_max);
56
+ char *replace_first(const char *source, const char *find, const char *replace);
57
+ char *reverse_string(const char *str);
58
+ char *set_to_string(struct Set *set);
59
+ char *shellescape(const char *input);
60
+ char *sorted_chars(char *chars, size_t size);
61
+ char *string_to_json(const char *input_string);
62
+ char *string_to_lowercase(char *string);
63
+ char *string_to_title_case(const char *str);
64
+ char *string_to_uppercase(char *string);
65
+ char *strip(const char *str);
66
+ char *uint_to_string(size_t number);
67
+ const char *sample_strings(const char **strings, size_t size) /* Does not dynamically allocate memory. */;
68
+ double **sorted_double_ptrs(double **double_ptrs, size_t size);
69
+ double *sorted_doubles(double *doubles, size_t size);
70
+ double average_of_int_array(const int *array, size_t size);
71
+ float **sorted_float_ptrs(float **float_ptrs, size_t size);
72
+ float *sorted_floats(float *floats, size_t size);
73
+ int **sorted_int_ptrs(int **int_ptrs, size_t size);
74
+ int *sorted_ints(int *ints, size_t size);
75
+ int append_data_to_array(void **array, size_t *array_size, size_t *array_current_alloc_size, void *data, size_t data_size);
76
+ int append_data_to_array_no_initial_alloc(void **array, size_t *array_size, size_t *array_current_alloc_size, void *data, size_t data_size);
77
+ int append_string_to_array(char ***array, size_t *array_size, size_t *array_current_alloc_size, const char *string);
78
+ int append_string_to_array_no_initial_alloc(char ***array, size_t *array_size, size_t *array_current_alloc_size, const char *string);
79
+ int append_string_to_file(const char *filename, const char *content);
80
+ int append_string_to_string(char **string, size_t *string_length, size_t *string_alloc_size, const char *string_to_get_appended, size_t string_to_get_appended_length);
81
+ int copy_file(const char *source_filename, const char *destination_filename);
82
+ int dict_add(struct Dict *dict, const char *key, void *value);
83
+ int dict_reserve_more(struct Dict *dict, size_t number_of_new_elements_max_one_is_expecting);
84
+ int dict_resize(struct Dict *dict);
85
+ int dict_to_array(struct Dict *dict, char ***keys, void ***values, size_t *size_of_keys_and_values);
86
+ int download_website(const char *website, char **string, size_t *size, size_t *str_alloc_size, size_t byte_max_cutoff, const char *user_agent);
87
+ int download_websites(const char **websites_to_download, size_t num_websites, char ***outputs, size_t **lens, size_t byte_limit, int aggressive_stop_on_error);
88
+ int file_exists(const char *filename);
89
+ int file_is_directory(const char *filename);
90
+ int file_is_executable(const char *filename);
91
+ int file_is_readable(const char *filename);
92
+ int file_is_regular(const char *filename);
93
+ int file_is_writable(const char *filename);
94
+ int filter_filesystem_files_as_strings(const char *directory, int (*filter_function)(const char *filename));
95
+ int filter_ints(int *source, size_t source_size, int *destination, int (*condition)(int));
96
+ int find_max_int_in_array(const int *array, size_t size);
97
+ int find_min_int_in_array(const int *array, size_t size);
98
+ int frozen_set_in(struct FrozenSet *set, const char *key);
99
+ int frozen_set_to_array(struct FrozenSet *set, char ***keys, size_t *size_of_keys);
100
+ int get_file_size(const char *filename, size_t *size);
101
+ int ints_are_sorted_ascending(const int *array, size_t size);
102
+ int ints_are_sorted_descending(const int *array, size_t size);
103
+ int is_array_digit(const char **array, size_t size);
104
+ int is_array_lower(const char **array, size_t size);
105
+ int is_array_upper(const char **array, size_t size);
106
+ int is_string_alpha(const char *string);
107
+ int is_string_alphanumeric(const char *str);
108
+ int is_string_digit(const char *string);
109
+ int is_string_lower(const char *string);
110
+ int is_string_numeric(const char *str);
111
+ int is_string_printable(const char *string);
112
+ int is_string_space(const char *string);
113
+ int is_string_upper(const char *string);
114
+ int is_string_valid_integer(const char *str);
115
+ int is_valid_utf8(const char *str, size_t len);
116
+ int map_filesystem_files_as_strings(const char *directory, char *(*map_function)(const char *file_string_data, size_t string_size));
117
+ int memory_has_subchunk(void *memory, size_t memory_length, void *subchunk, size_t subchunk_length);
118
+ int prepend_string_to_array(char ***array, size_t *array_size, size_t *array_current_alloc_size, char *string);
119
+ int prepend_string_to_array_no_initial_alloc(char ***array, size_t *array_size, size_t *array_current_alloc_size, char *string);
120
+ int read_files_into_array(const char **files_to_open, size_t num_files, char ***outputs, size_t **lens, int aggressive_stop_on_error);
121
+ int reduce_ints(int *array, size_t size, int (*operation)(int, int));
122
+ int remove_file(const char *filename);
123
+ int replace_all_with_lens(const char *source, size_t source_len, const char *find, size_t find_len, const char *replace, size_t replace_len, char **output, size_t *new_len, int *should_free_after_use, size_t matches_max, size_t *num_matches);
124
+ int replace_memory(void *source, size_t source_len, void *find, size_t find_len, void *replace, size_t replace_len, void **output, size_t *output_length_without_nullt, int *should_free_after_use, size_t matches_max /* 0 for unlimited replacement */, size_t *num_matches_found, int should_nullt);
125
+ int set_add(struct Set *set, const char *key);
126
+ int set_in(struct Set *set, const char *key);
127
+ int set_reserve_more(struct Set *set, size_t number_of_new_elements_max_one_is_expecting);
128
+ int set_resize(struct Set *set);
129
+ int set_to_array(struct Set *set, char ***keys, size_t *size_of_keys);
130
+ int shuffle_strings_in_place(char **strings, size_t size);
131
+ int string_array_uniq(const char **array, size_t size, char ***output, size_t *output_size);
132
+ int string_array_uniq_adjacent(const char **first_array, size_t size, char ***new_array, size_t *new_size);
133
+ int string_has_substr(const char *string, size_t string_length, const char *substring, size_t substring_length);
134
+ int string_to_int(const char *str);
135
+ int sum_of_int_array(const int *array, size_t size);
136
+ int write_file(const char *filename, const char *content);
137
+ int write_to_file_with_mode(const char *filename, const char *content, size_t content_length, const char *mode);
138
+ long **sorted_long_ptrs(long **long_ptrs, size_t size);
139
+ long *sorted_longs(long *longs, size_t size);
140
+ long long **sorted_long_long_ptrs(long long **long_long_ptrs, size_t size);
141
+ long long *sorted_long_longs(long long *long_longs, size_t size);
142
+ long rand_number_from_range_inclusive_signed(signed long min, signed long max);
143
+ short **sorted_short_ptrs(short **short_ptrs, size_t size);
144
+ short *sorted_shorts(short *shorts, size_t size);
145
+ size_t **sorted_size_t_ptrs(size_t **size_t_ptrs, size_t size);
146
+ size_t *generate_range(size_t start, size_t end, size_t step, size_t *range_size);
147
+ size_t *sorted_size_ts(size_t *size_ts, size_t size);
148
+ size_t array_total_string_length(char **array, size_t count);
149
+ size_t common_prefix_length(const char *str1, const char *str2);
150
+ size_t common_suffix_length(const char *str1, const char *str2);
151
+ size_t count_occurrences_of_adjacent_data_in_array(const void *array_of_adjacent_values, size_t array_length, const void *memory, size_t memory_length);
152
+ size_t count_occurrences_of_data_in_array(const void **array_of_pointers, size_t array_length, const void *memory, size_t memory_length);
153
+ size_t count_occurrences_of_string_in_array(const char **array, const char *string, size_t array_length);
154
+ size_t count_occurrences_of_substr(const char *str, const char *substring);
155
+ size_t count_occurrences_of_substr_len(const char *string, size_t string_length, const char *substring, size_t substring_length);
156
+ size_t dict_hash(const char *key, size_t capacity);
157
+ size_t dict_size(struct Dict *dict);
158
+ size_t filter(void *source, size_t source_size, size_t elem_size, void *destination, size_t dest_size, int (*condition)(void *));
159
+ size_t frozen_dict_size(struct FrozenDict *dict);
160
+ size_t frozen_dict_to_array(struct FrozenDict *dict, char ***keys, void ***values, size_t *size_of_keys_and_values);
161
+ size_t frozen_set_size(struct FrozenSet *set);
162
+ size_t set_hash(const char *key, size_t capacity);
163
+ size_t set_size(struct Set *set);
164
+ ssize_t find_first_of(const char *str, const char *char_set);
165
+ ssize_t find_last_of(const char *str, const char *char_set);
166
+ struct Dict *dict_new_instance(void);
167
+ struct FrozenDict *frozen_dict_new_instance(size_t num_pairs, ...);
168
+ struct FrozenSet *frozen_set_new_instance(size_t num_args, ...);
169
+ struct Set *set_new_instance(void);
170
+ unsigned char **sorted_uchar_ptrs(unsigned char **uchar_ptrs, size_t size);
171
+ unsigned char *sorted_uchars(unsigned char *uchars, size_t size);
172
+ unsigned int **sorted_uint_ptrs(unsigned int **uint_ptrs, size_t size);
173
+ unsigned int *sorted_uints(unsigned int *uints, size_t size);
174
+ unsigned long **sorted_ulong_ptrs(unsigned long **ulong_ptrs, size_t size);
175
+ unsigned long *sorted_ulongs(unsigned long *ulongs, size_t size);
176
+ unsigned long long **sorted_ulong_long_ptrs(unsigned long long **ulong_long_ptrs, size_t size);
177
+ unsigned long long *sorted_ulong_longs(unsigned long long *ulong_longs, size_t size);
178
+ unsigned long rand_number_from_range_inclusive_unsigned(unsigned long min, unsigned long max);
179
+ unsigned short **sorted_ushort_ptrs(unsigned short **ushort_ptrs, size_t size);
180
+ unsigned short *sorted_ushorts(unsigned short *ushorts, size_t size);
181
+ void *arraydup(const void *array, size_t num_mem, size_t size);
182
+ void *dict_get(struct Dict *dict, const char *key);
183
+ void *dict_get_check(struct Dict *dict, const char *key, int *key_is_in_dict);
184
+ void *frozen_dict_get(struct FrozenDict *dict, const char *key);
185
+ void *frozen_dict_get_check(struct FrozenDict *dict, const char *key, int *key_is_in_dict);
186
+ void *list_comprehension(const void *input_array, size_t array_size, size_t elem_size, void (*transform_func)(void *value), int (*filter_func)(void *value), size_t *result_size);
187
+ void *list_comprehension_multithreaded(const void *input_array, size_t array_size, size_t elem_size, void (*transform_func)(void *value), int (*filter_func)(void *value), size_t *result_size, size_t thread_count);
188
+ void *memory_locate(const void *haystack, size_t haystack_len, const void *needle, size_t needle_len);
189
+ void *reject_array(const void *source, size_t source_size, size_t elem_size, int (*condition)(const void *), size_t *result_size);
190
+ void *replicate(const void *source, size_t source_size, size_t elem_size, size_t repetitions);
191
+ void *select_array(const void *source, size_t source_size, size_t elem_size, int (*condition)(const void *), size_t *result_size);
192
+ void dict_del_key(struct Dict *dict, const char *key);
193
+ void dict_destructor(struct Dict *dict);
194
+ void dict_iter(struct Dict *dict, void (*callback)(char *key, void *value));
195
+ void frozen_dict_destructor(struct FrozenDict *dict);
196
+ void frozen_dict_iter(struct FrozenDict *frozen_dict, void (*callback)(char *key, void *value));
197
+ void frozen_set_del_keys(char **keys);
198
+ void frozen_set_destructor(struct FrozenSet *frozen_set);
199
+ void frozen_set_iter(struct Set *set, void (*callback)(char *key));
200
+ void int_to_string_with_buffer(long long int number, char *buffer);
201
+ void map(void *array, size_t size, size_t elem_size, void (*transform)(void *));
202
+ void map_ints(int *array, size_t size, int (*transform)(int));
203
+ void print_char(const char value);
204
+ void print_char_array_to_stream(const char *array, size_t size, FILE *stream);
205
+ void print_char_to_stream(const char value, FILE *stream);
206
+ void print_double(const double value);
207
+ void print_double_array(const double *array, size_t size);
208
+ void print_double_array_to_stream(const double *array, size_t size, FILE *stream);
209
+ void print_double_ptr_array(const double **array, size_t size);
210
+ void print_double_ptr_array_to_stream(const double **array, size_t size, FILE *stream);
211
+ void print_double_to_stream(const double value, FILE *stream);
212
+ void print_float(const float value);
213
+ void print_float_array(const float *array, size_t size);
214
+ void print_float_array_to_stream(const float *array, size_t size, FILE *stream);
215
+ void print_float_ptr_array(const float **array, size_t size);
216
+ void print_float_ptr_array_to_stream(const float **array, size_t size, FILE *stream);
217
+ void print_float_to_stream(const float value, FILE *stream);
218
+ void print_int(const int value);
219
+ void print_int_array(const int *array, size_t size);
220
+ void print_int_array_to_stream(const int *array, size_t size, FILE *stream);
221
+ void print_int_ptr_array(const int **array, size_t size);
222
+ void print_int_ptr_array_to_stream(const int **array, size_t size, FILE *stream);
223
+ void print_int_to_stream(const int value, FILE *stream);
224
+ void print_long(const long value);
225
+ void print_long_array(const long *array, size_t size);
226
+ void print_long_array_to_stream(const long *array, size_t size, FILE *stream);
227
+ void print_long_long(const long long value);
228
+ void print_long_long_array(const long long *array, size_t size);
229
+ void print_long_long_array_to_stream(const long long *array, size_t size, FILE *stream);
230
+ void print_long_long_ptr_array(const long long **array, size_t size);
231
+ void print_long_long_ptr_array_to_stream(const long long **array, size_t size, FILE *stream);
232
+ void print_long_long_to_stream(const long long value, FILE *stream);
233
+ void print_long_ptr_array(const long **array, size_t size);
234
+ void print_long_ptr_array_to_stream(const long **array, size_t size, FILE *stream);
235
+ void print_long_to_stream(const long value, FILE *stream);
236
+ void print_short(const short value);
237
+ void print_short_array(const short *array, size_t size);
238
+ void print_short_array_to_stream(const short *array, size_t size, FILE *stream);
239
+ void print_short_ptr_array(const short **array, size_t size);
240
+ void print_short_ptr_array_to_stream(const short **array, size_t size, FILE *stream);
241
+ void print_short_to_stream(const short value, FILE *stream);
242
+ void print_size_t(const size_t value);
243
+ void print_size_t_array(const size_t *array, size_t size);
244
+ void print_size_t_array_to_stream(const size_t *array, size_t size, FILE *stream);
245
+ void print_size_t_ptr_array(const size_t **array, size_t size);
246
+ void print_size_t_ptr_array_to_stream(const size_t **array, size_t size, FILE *stream);
247
+ void print_size_t_to_stream(const size_t value, FILE *stream);
248
+ void print_string(char *value);
249
+ void print_string_array(char **array, size_t size);
250
+ void print_string_array_array(char ***array, size_t size);
251
+ void print_string_array_array_to_stream(char ***array, size_t size, FILE *stream);
252
+ void print_string_array_to_stream(char **array, size_t size, FILE *stream);
253
+ void print_string_to_stream(char *value, FILE *stream);
254
+ void print_uchar(const unsigned char value);
255
+ void print_uchar_array_to_stream(const unsigned char *array, size_t size, FILE *stream);
256
+ void print_uchar_to_stream(const unsigned char value, FILE *stream);
257
+ void print_uint(const unsigned int value);
258
+ void print_uint_array(const unsigned long long *array, size_t size);
259
+ void print_uint_array_to_stream(const unsigned int *array, size_t size, FILE *stream);
260
+ void print_uint_ptr_array(const unsigned int **array, size_t size);
261
+ void print_uint_ptr_array_to_stream(const unsigned int **array, size_t size, FILE *stream);
262
+ void print_uint_to_stream(const unsigned int value, FILE *stream);
263
+ void print_ulong(const unsigned long value);
264
+ void print_ulong_array(const unsigned long *array, size_t size);
265
+ void print_ulong_array_to_stream(const unsigned long *array, size_t size, FILE *stream);
266
+ void print_ulong_long(const unsigned long long value);
267
+ void print_ulong_long_array(const unsigned long long *array, size_t size);
268
+ void print_ulong_long_array_to_stream(const unsigned long long *array, size_t size, FILE *stream);
269
+ void print_ulong_long_ptr_array(const unsigned long long **array, size_t size);
270
+ void print_ulong_long_ptr_array_to_stream(const unsigned long long **array, size_t size, FILE *stream);
271
+ void print_ulong_long_to_stream(const unsigned long long value, FILE *stream);
272
+ void print_ulong_ptr_array(const unsigned long **array, size_t size);
273
+ void print_ulong_ptr_array_to_stream(const unsigned long **array, size_t size, FILE *stream);
274
+ void print_ulong_to_stream(const unsigned long value, FILE *stream);
275
+ void print_ushort(const unsigned short value);
276
+ void print_ushort_array(const unsigned short *array, size_t size);
277
+ void print_ushort_array_to_stream(const unsigned short *array, size_t size, FILE *stream);
278
+ void print_ushort_ptr_array(const unsigned short **array, size_t size);
279
+ void print_ushort_ptr_array_to_stream(const unsigned short **array, size_t size, FILE *stream);
280
+ void print_ushort_to_stream(const unsigned short value, FILE *stream);
281
+ void reduce(void *array, size_t size, size_t elem_size, void *result, void (*operation)(void *, void *));
282
+ void reverse_int_array_in_place(int *array, size_t size);
283
+ void reverse_string_in_place(char *str);
284
+ void set_del_key(struct Set *set, const char *key);
285
+ void set_del_keys(char **keys);
286
+ void set_destructor(struct Set *set);
287
+ void set_iter(struct Set *set, void (*callback)(char *key));
288
+ void sort_char_ptrs(char **char_ptrs, size_t size);
289
+ void sort_chars(char *chars, size_t size);
290
+ void sort_double_ptrs(double **double_ptrs, size_t size);
291
+ void sort_doubles(double *doubles, size_t size);
292
+ void sort_float_ptrs(float **float_ptrs, size_t size);
293
+ void sort_floats(float *floats, size_t size);
294
+ void sort_int_ptrs(int **int_ptrs, size_t size);
295
+ void sort_ints(int *ints, size_t size);
296
+ void sort_long_long_ptrs(long long **long_long_ptrs, size_t size);
297
+ void sort_long_longs(long long *long_longs, size_t size);
298
+ void sort_long_ptrs(long **long_ptrs, size_t size);
299
+ void sort_longs(long *longs, size_t size);
300
+ void sort_short_ptrs(short **short_ptrs, size_t size);
301
+ void sort_shorts(short *shorts, size_t size);
302
+ void sort_size_t_ptrs(size_t **size_t_ptrs, size_t size);
303
+ void sort_size_ts(size_t *size_ts, size_t size);
304
+ void sort_strings(char **strings, size_t size);
305
+ void sort_uchar_ptrs(unsigned char **uchar_ptrs, size_t size);
306
+ void sort_uchars(unsigned char *uchars, size_t size);
307
+ void sort_uint_ptrs(unsigned int **uint_ptrs, size_t size);
308
+ void sort_uints(unsigned int *uints, size_t size);
309
+ void sort_ulong_long_ptrs(unsigned long long **ulong_long_ptrs, size_t size);
310
+ void sort_ulong_longs(unsigned long long *ulong_longs, size_t size);
311
+ void sort_ulong_ptrs(unsigned long **ulong_ptrs, size_t size);
312
+ void sort_ulongs(unsigned long *ulongs, size_t size);
313
+ void sort_ushort_ptrs(unsigned short **ushort_ptrs, size_t size);
314
+ void sort_ushorts(unsigned short *ushorts, size_t size);
315
+ void utoa(size_t unsigned_value, char *output);
316
+ #endif
@@ -0,0 +1,284 @@
1
+ char **list_files_with_pattern(const char *directory, const char *pattern, size_t *len);
2
+ char **read_file_into_array(const char *filename, const char *delim, size_t *num_lines);
3
+ char **sorted_char_ptrs(char **char_ptrs, size_t size);
4
+ char **sorted_strings(char **strings, size_t size);
5
+ char **split(const char *str, size_t *output_size, const char *delim, size_t max_times, int keep_delim_in_result);
6
+ char *backticks(const char *command, size_t *size);
7
+ char *concatenate_five_strings(const char *str1, const char *str2, const char *str3, const char *str4, const char *str5);
8
+ char *concatenate_four_strings(const char *str1, const char *str2, const char *str3, const char *str4);
9
+ char *concatenate_string_array(const char **strings, size_t num_strings);
10
+ char *concatenate_strings(const char *str1, const char *str2);
11
+ char *concatenate_three_strings(const char *str1, const char *str2, const char *str3);
12
+ char *dict_to_string(struct Dict *dict, int pointer_or_string) /* 0 = pointer, 1 = string */;
13
+ char *dup_format(const char *format, ...);
14
+ char *frozen_dict_to_string(struct FrozenDict *dict, int pointer_or_string) /* 0 = pointer, 1 = string */;
15
+ char *frozen_set_to_string(struct FrozenSet *frozen_set);
16
+ char *int_to_string(long long int number);
17
+ char *join(const char **array, size_t count, const char *delimiter);
18
+ char *longest_common_prefix(const char **strings, size_t count);
19
+ char *longest_common_suffix(const char **strings, size_t count);
20
+ char *read_file_into_string(const char *filename, size_t *size);
21
+ char *reduce_filesystem_files_as_strings(const char *directory, const char *out_file, char *(*reduce_function)(char *value1, ...));
22
+ char *replace_all(const char *source, const char *find, const char *replace);
23
+ char *replace_all_with_callback(const char *str, const char *old_substring, char *(*callback)(const char *, void *), void *data_for_callback);
24
+ char *replace_count(const char *source, const char *find, const char *replace, const size_t matches_max);
25
+ char *replace_first(const char *source, const char *find, const char *replace);
26
+ char *reverse_string(const char *str);
27
+ char *set_to_string(struct Set *set);
28
+ char *shellescape(const char *input);
29
+ char *sorted_chars(char *chars, size_t size);
30
+ char *string_to_json(const char *input_string);
31
+ char *string_to_lowercase(char *string);
32
+ char *string_to_title_case(const char *str);
33
+ char *string_to_uppercase(char *string);
34
+ char *strip(const char *str);
35
+ char *uint_to_string(size_t number);
36
+ const char *sample_strings(const char **strings, size_t size) /* Does not dynamically allocate memory. */;
37
+ double **sorted_double_ptrs(double **double_ptrs, size_t size);
38
+ double *sorted_doubles(double *doubles, size_t size);
39
+ double average_of_int_array(const int *array, size_t size);
40
+ float **sorted_float_ptrs(float **float_ptrs, size_t size);
41
+ float *sorted_floats(float *floats, size_t size);
42
+ int **sorted_int_ptrs(int **int_ptrs, size_t size);
43
+ int *sorted_ints(int *ints, size_t size);
44
+ int append_data_to_array(void **array, size_t *array_size, size_t *array_current_alloc_size, void *data, size_t data_size);
45
+ int append_data_to_array_no_initial_alloc(void **array, size_t *array_size, size_t *array_current_alloc_size, void *data, size_t data_size);
46
+ int append_string_to_array(char ***array, size_t *array_size, size_t *array_current_alloc_size, const char *string);
47
+ int append_string_to_array_no_initial_alloc(char ***array, size_t *array_size, size_t *array_current_alloc_size, const char *string);
48
+ int append_string_to_file(const char *filename, const char *content);
49
+ int append_string_to_string(char **string, size_t *string_length, size_t *string_alloc_size, const char *string_to_get_appended, size_t string_to_get_appended_length);
50
+ int copy_file(const char *source_filename, const char *destination_filename);
51
+ int dict_add(struct Dict *dict, const char *key, void *value);
52
+ int dict_reserve_more(struct Dict *dict, size_t number_of_new_elements_max_one_is_expecting);
53
+ int dict_resize(struct Dict *dict);
54
+ int dict_to_array(struct Dict *dict, char ***keys, void ***values, size_t *size_of_keys_and_values);
55
+ int download_website(const char *website, char **string, size_t *size, size_t *str_alloc_size, size_t byte_max_cutoff, const char *user_agent);
56
+ int download_websites(const char **websites_to_download, size_t num_websites, char ***outputs, size_t **lens, size_t byte_limit, int aggressive_stop_on_error);
57
+ int file_exists(const char *filename);
58
+ int file_is_directory(const char *filename);
59
+ int file_is_executable(const char *filename);
60
+ int file_is_readable(const char *filename);
61
+ int file_is_regular(const char *filename);
62
+ int file_is_writable(const char *filename);
63
+ int filter_filesystem_files_as_strings(const char *directory, int (*filter_function)(const char *filename));
64
+ int filter_ints(int *source, size_t source_size, int *destination, int (*condition)(int));
65
+ int find_max_int_in_array(const int *array, size_t size);
66
+ int find_min_int_in_array(const int *array, size_t size);
67
+ int frozen_set_in(struct FrozenSet *set, const char *key);
68
+ int frozen_set_to_array(struct FrozenSet *set, char ***keys, size_t *size_of_keys);
69
+ int get_file_size(const char *filename, size_t *size);
70
+ int ints_are_sorted_ascending(const int *array, size_t size);
71
+ int ints_are_sorted_descending(const int *array, size_t size);
72
+ int is_array_digit(const char **array, size_t size);
73
+ int is_array_lower(const char **array, size_t size);
74
+ int is_array_upper(const char **array, size_t size);
75
+ int is_string_alpha(const char *string);
76
+ int is_string_alphanumeric(const char *str);
77
+ int is_string_digit(const char *string);
78
+ int is_string_lower(const char *string);
79
+ int is_string_numeric(const char *str);
80
+ int is_string_printable(const char *string);
81
+ int is_string_space(const char *string);
82
+ int is_string_upper(const char *string);
83
+ int is_string_valid_integer(const char *str);
84
+ int is_valid_utf8(const char *str, size_t len);
85
+ int map_filesystem_files_as_strings(const char *directory, char *(*map_function)(const char *file_string_data, size_t string_size));
86
+ int memory_has_subchunk(void *memory, size_t memory_length, void *subchunk, size_t subchunk_length);
87
+ int prepend_string_to_array(char ***array, size_t *array_size, size_t *array_current_alloc_size, char *string);
88
+ int prepend_string_to_array_no_initial_alloc(char ***array, size_t *array_size, size_t *array_current_alloc_size, char *string);
89
+ int read_files_into_array(const char **files_to_open, size_t num_files, char ***outputs, size_t **lens, int aggressive_stop_on_error);
90
+ int reduce_ints(int *array, size_t size, int (*operation)(int, int));
91
+ int remove_file(const char *filename);
92
+ int replace_all_with_lens(const char *source, size_t source_len, const char *find, size_t find_len, const char *replace, size_t replace_len, char **output, size_t *new_len, int *should_free_after_use, size_t matches_max, size_t *num_matches);
93
+ int replace_memory(void *source, size_t source_len, void *find, size_t find_len, void *replace, size_t replace_len, void **output, size_t *output_length_without_nullt, int *should_free_after_use, size_t matches_max /* 0 for unlimited replacement */, size_t *num_matches_found, int should_nullt);
94
+ int set_add(struct Set *set, const char *key);
95
+ int set_in(struct Set *set, const char *key);
96
+ int set_reserve_more(struct Set *set, size_t number_of_new_elements_max_one_is_expecting);
97
+ int set_resize(struct Set *set);
98
+ int set_to_array(struct Set *set, char ***keys, size_t *size_of_keys);
99
+ int shuffle_strings_in_place(char **strings, size_t size);
100
+ int string_array_uniq(const char **array, size_t size, char ***output, size_t *output_size);
101
+ int string_array_uniq_adjacent(const char **first_array, size_t size, char ***new_array, size_t *new_size);
102
+ int string_has_substr(const char *string, size_t string_length, const char *substring, size_t substring_length);
103
+ int string_to_int(const char *str);
104
+ int sum_of_int_array(const int *array, size_t size);
105
+ int write_file(const char *filename, const char *content);
106
+ int write_to_file_with_mode(const char *filename, const char *content, size_t content_length, const char *mode);
107
+ long **sorted_long_ptrs(long **long_ptrs, size_t size);
108
+ long *sorted_longs(long *longs, size_t size);
109
+ long long **sorted_long_long_ptrs(long long **long_long_ptrs, size_t size);
110
+ long long *sorted_long_longs(long long *long_longs, size_t size);
111
+ long rand_number_from_range_inclusive_signed(signed long min, signed long max);
112
+ short **sorted_short_ptrs(short **short_ptrs, size_t size);
113
+ short *sorted_shorts(short *shorts, size_t size);
114
+ size_t **sorted_size_t_ptrs(size_t **size_t_ptrs, size_t size);
115
+ size_t *generate_range(size_t start, size_t end, size_t step, size_t *range_size);
116
+ size_t *sorted_size_ts(size_t *size_ts, size_t size);
117
+ size_t array_total_string_length(char **array, size_t count);
118
+ size_t common_prefix_length(const char *str1, const char *str2);
119
+ size_t common_suffix_length(const char *str1, const char *str2);
120
+ size_t count_occurrences_of_adjacent_data_in_array(const void *array_of_adjacent_values, size_t array_length, const void *memory, size_t memory_length);
121
+ size_t count_occurrences_of_data_in_array(const void **array_of_pointers, size_t array_length, const void *memory, size_t memory_length);
122
+ size_t count_occurrences_of_string_in_array(const char **array, const char *string, size_t array_length);
123
+ size_t count_occurrences_of_substr(const char *str, const char *substring);
124
+ size_t count_occurrences_of_substr_len(const char *string, size_t string_length, const char *substring, size_t substring_length);
125
+ size_t dict_hash(const char *key, size_t capacity);
126
+ size_t dict_size(struct Dict *dict);
127
+ size_t filter(void *source, size_t source_size, size_t elem_size, void *destination, size_t dest_size, int (*condition)(void *));
128
+ size_t frozen_dict_size(struct FrozenDict *dict);
129
+ size_t frozen_dict_to_array(struct FrozenDict *dict, char ***keys, void ***values, size_t *size_of_keys_and_values);
130
+ size_t frozen_set_size(struct FrozenSet *set);
131
+ size_t set_hash(const char *key, size_t capacity);
132
+ size_t set_size(struct Set *set);
133
+ ssize_t find_first_of(const char *str, const char *char_set);
134
+ ssize_t find_last_of(const char *str, const char *char_set);
135
+ struct Dict *dict_new_instance(void);
136
+ struct FrozenDict *frozen_dict_new_instance(size_t num_pairs, ...);
137
+ struct FrozenSet *frozen_set_new_instance(size_t num_args, ...);
138
+ struct Set *set_new_instance(void);
139
+ unsigned char **sorted_uchar_ptrs(unsigned char **uchar_ptrs, size_t size);
140
+ unsigned char *sorted_uchars(unsigned char *uchars, size_t size);
141
+ unsigned int **sorted_uint_ptrs(unsigned int **uint_ptrs, size_t size);
142
+ unsigned int *sorted_uints(unsigned int *uints, size_t size);
143
+ unsigned long **sorted_ulong_ptrs(unsigned long **ulong_ptrs, size_t size);
144
+ unsigned long *sorted_ulongs(unsigned long *ulongs, size_t size);
145
+ unsigned long long **sorted_ulong_long_ptrs(unsigned long long **ulong_long_ptrs, size_t size);
146
+ unsigned long long *sorted_ulong_longs(unsigned long long *ulong_longs, size_t size);
147
+ unsigned long rand_number_from_range_inclusive_unsigned(unsigned long min, unsigned long max);
148
+ unsigned short **sorted_ushort_ptrs(unsigned short **ushort_ptrs, size_t size);
149
+ unsigned short *sorted_ushorts(unsigned short *ushorts, size_t size);
150
+ void *arraydup(const void *array, size_t num_mem, size_t size);
151
+ void *dict_get(struct Dict *dict, const char *key);
152
+ void *dict_get_check(struct Dict *dict, const char *key, int *key_is_in_dict);
153
+ void *frozen_dict_get(struct FrozenDict *dict, const char *key);
154
+ void *frozen_dict_get_check(struct FrozenDict *dict, const char *key, int *key_is_in_dict);
155
+ void *list_comprehension(const void *input_array, size_t array_size, size_t elem_size, void (*transform_func)(void *value), int (*filter_func)(void *value), size_t *result_size);
156
+ void *list_comprehension_multithreaded(const void *input_array, size_t array_size, size_t elem_size, void (*transform_func)(void *value), int (*filter_func)(void *value), size_t *result_size, size_t thread_count);
157
+ void *memory_locate(const void *haystack, size_t haystack_len, const void *needle, size_t needle_len);
158
+ void *reject_array(const void *source, size_t source_size, size_t elem_size, int (*condition)(const void *), size_t *result_size);
159
+ void *replicate(const void *source, size_t source_size, size_t elem_size, size_t repetitions);
160
+ void *select_array(const void *source, size_t source_size, size_t elem_size, int (*condition)(const void *), size_t *result_size);
161
+ void dict_del_key(struct Dict *dict, const char *key);
162
+ void dict_destructor(struct Dict *dict);
163
+ void dict_iter(struct Dict *dict, void (*callback)(char *key, void *value));
164
+ void frozen_dict_destructor(struct FrozenDict *dict);
165
+ void frozen_dict_iter(struct FrozenDict *frozen_dict, void (*callback)(char *key, void *value));
166
+ void frozen_set_del_keys(char **keys);
167
+ void frozen_set_destructor(struct FrozenSet *frozen_set);
168
+ void frozen_set_iter(struct Set *set, void (*callback)(char *key));
169
+ void int_to_string_with_buffer(long long int number, char *buffer);
170
+ void map(void *array, size_t size, size_t elem_size, void (*transform)(void *));
171
+ void map_ints(int *array, size_t size, int (*transform)(int));
172
+ void print_char(const char value);
173
+ void print_char_array_to_stream(const char *array, size_t size, FILE *stream);
174
+ void print_char_to_stream(const char value, FILE *stream);
175
+ void print_double(const double value);
176
+ void print_double_array(const double *array, size_t size);
177
+ void print_double_array_to_stream(const double *array, size_t size, FILE *stream);
178
+ void print_double_ptr_array(const double **array, size_t size);
179
+ void print_double_ptr_array_to_stream(const double **array, size_t size, FILE *stream);
180
+ void print_double_to_stream(const double value, FILE *stream);
181
+ void print_float(const float value);
182
+ void print_float_array(const float *array, size_t size);
183
+ void print_float_array_to_stream(const float *array, size_t size, FILE *stream);
184
+ void print_float_ptr_array(const float **array, size_t size);
185
+ void print_float_ptr_array_to_stream(const float **array, size_t size, FILE *stream);
186
+ void print_float_to_stream(const float value, FILE *stream);
187
+ void print_int(const int value);
188
+ void print_int_array(const int *array, size_t size);
189
+ void print_int_array_to_stream(const int *array, size_t size, FILE *stream);
190
+ void print_int_ptr_array(const int **array, size_t size);
191
+ void print_int_ptr_array_to_stream(const int **array, size_t size, FILE *stream);
192
+ void print_int_to_stream(const int value, FILE *stream);
193
+ void print_long(const long value);
194
+ void print_long_array(const long *array, size_t size);
195
+ void print_long_array_to_stream(const long *array, size_t size, FILE *stream);
196
+ void print_long_long(const long long value);
197
+ void print_long_long_array(const long long *array, size_t size);
198
+ void print_long_long_array_to_stream(const long long *array, size_t size, FILE *stream);
199
+ void print_long_long_ptr_array(const long long **array, size_t size);
200
+ void print_long_long_ptr_array_to_stream(const long long **array, size_t size, FILE *stream);
201
+ void print_long_long_to_stream(const long long value, FILE *stream);
202
+ void print_long_ptr_array(const long **array, size_t size);
203
+ void print_long_ptr_array_to_stream(const long **array, size_t size, FILE *stream);
204
+ void print_long_to_stream(const long value, FILE *stream);
205
+ void print_short(const short value);
206
+ void print_short_array(const short *array, size_t size);
207
+ void print_short_array_to_stream(const short *array, size_t size, FILE *stream);
208
+ void print_short_ptr_array(const short **array, size_t size);
209
+ void print_short_ptr_array_to_stream(const short **array, size_t size, FILE *stream);
210
+ void print_short_to_stream(const short value, FILE *stream);
211
+ void print_size_t(const size_t value);
212
+ void print_size_t_array(const size_t *array, size_t size);
213
+ void print_size_t_array_to_stream(const size_t *array, size_t size, FILE *stream);
214
+ void print_size_t_ptr_array(const size_t **array, size_t size);
215
+ void print_size_t_ptr_array_to_stream(const size_t **array, size_t size, FILE *stream);
216
+ void print_size_t_to_stream(const size_t value, FILE *stream);
217
+ void print_string(char *value);
218
+ void print_string_array(char **array, size_t size);
219
+ void print_string_array_array(char ***array, size_t size);
220
+ void print_string_array_array_to_stream(char ***array, size_t size, FILE *stream);
221
+ void print_string_array_to_stream(char **array, size_t size, FILE *stream);
222
+ void print_string_to_stream(char *value, FILE *stream);
223
+ void print_uchar(const unsigned char value);
224
+ void print_uchar_array_to_stream(const unsigned char *array, size_t size, FILE *stream);
225
+ void print_uchar_to_stream(const unsigned char value, FILE *stream);
226
+ void print_uint(const unsigned int value);
227
+ void print_uint_array(const unsigned long long *array, size_t size);
228
+ void print_uint_array_to_stream(const unsigned int *array, size_t size, FILE *stream);
229
+ void print_uint_ptr_array(const unsigned int **array, size_t size);
230
+ void print_uint_ptr_array_to_stream(const unsigned int **array, size_t size, FILE *stream);
231
+ void print_uint_to_stream(const unsigned int value, FILE *stream);
232
+ void print_ulong(const unsigned long value);
233
+ void print_ulong_array(const unsigned long *array, size_t size);
234
+ void print_ulong_array_to_stream(const unsigned long *array, size_t size, FILE *stream);
235
+ void print_ulong_long(const unsigned long long value);
236
+ void print_ulong_long_array(const unsigned long long *array, size_t size);
237
+ void print_ulong_long_array_to_stream(const unsigned long long *array, size_t size, FILE *stream);
238
+ void print_ulong_long_ptr_array(const unsigned long long **array, size_t size);
239
+ void print_ulong_long_ptr_array_to_stream(const unsigned long long **array, size_t size, FILE *stream);
240
+ void print_ulong_long_to_stream(const unsigned long long value, FILE *stream);
241
+ void print_ulong_ptr_array(const unsigned long **array, size_t size);
242
+ void print_ulong_ptr_array_to_stream(const unsigned long **array, size_t size, FILE *stream);
243
+ void print_ulong_to_stream(const unsigned long value, FILE *stream);
244
+ void print_ushort(const unsigned short value);
245
+ void print_ushort_array(const unsigned short *array, size_t size);
246
+ void print_ushort_array_to_stream(const unsigned short *array, size_t size, FILE *stream);
247
+ void print_ushort_ptr_array(const unsigned short **array, size_t size);
248
+ void print_ushort_ptr_array_to_stream(const unsigned short **array, size_t size, FILE *stream);
249
+ void print_ushort_to_stream(const unsigned short value, FILE *stream);
250
+ void reduce(void *array, size_t size, size_t elem_size, void *result, void (*operation)(void *, void *));
251
+ void reverse_int_array_in_place(int *array, size_t size);
252
+ void reverse_string_in_place(char *str);
253
+ void set_del_key(struct Set *set, const char *key);
254
+ void set_del_keys(char **keys);
255
+ void set_destructor(struct Set *set);
256
+ void set_iter(struct Set *set, void (*callback)(char *key));
257
+ void sort_char_ptrs(char **char_ptrs, size_t size);
258
+ void sort_chars(char *chars, size_t size);
259
+ void sort_double_ptrs(double **double_ptrs, size_t size);
260
+ void sort_doubles(double *doubles, size_t size);
261
+ void sort_float_ptrs(float **float_ptrs, size_t size);
262
+ void sort_floats(float *floats, size_t size);
263
+ void sort_int_ptrs(int **int_ptrs, size_t size);
264
+ void sort_ints(int *ints, size_t size);
265
+ void sort_long_long_ptrs(long long **long_long_ptrs, size_t size);
266
+ void sort_long_longs(long long *long_longs, size_t size);
267
+ void sort_long_ptrs(long **long_ptrs, size_t size);
268
+ void sort_longs(long *longs, size_t size);
269
+ void sort_short_ptrs(short **short_ptrs, size_t size);
270
+ void sort_shorts(short *shorts, size_t size);
271
+ void sort_size_t_ptrs(size_t **size_t_ptrs, size_t size);
272
+ void sort_size_ts(size_t *size_ts, size_t size);
273
+ void sort_strings(char **strings, size_t size);
274
+ void sort_uchar_ptrs(unsigned char **uchar_ptrs, size_t size);
275
+ void sort_uchars(unsigned char *uchars, size_t size);
276
+ void sort_uint_ptrs(unsigned int **uint_ptrs, size_t size);
277
+ void sort_uints(unsigned int *uints, size_t size);
278
+ void sort_ulong_long_ptrs(unsigned long long **ulong_long_ptrs, size_t size);
279
+ void sort_ulong_longs(unsigned long long *ulong_longs, size_t size);
280
+ void sort_ulong_ptrs(unsigned long **ulong_ptrs, size_t size);
281
+ void sort_ulongs(unsigned long *ulongs, size_t size);
282
+ void sort_ushort_ptrs(unsigned short **ushort_ptrs, size_t size);
283
+ void sort_ushorts(unsigned short *ushorts, size_t size);
284
+ void utoa(size_t unsigned_value, char *output);
@@ -0,0 +1,33 @@
1
+
2
+ #ifndef _FOUNDATIONAL_LIB_HEADER_GUARD
3
+ #define _FOUNDATIONAL_LIB_HEADER_GUARD
4
+
5
+ #include <ctype.h>
6
+ #include <stdarg.h>
7
+ #include <stdio.h>
8
+ #ifdef _WIN32
9
+ #define _CRT_RAND_S
10
+ #endif
11
+ #include <stdlib.h>
12
+
13
+ #include <string.h>
14
+
15
+ #include <errno.h>
16
+
17
+ #ifndef FOUNDATIONAL_LIB_AGGRESSIVE_DIE_TYPE
18
+ /**
19
+ * @brief Type of the aggressive die variable.
20
+ *
21
+ * This macro defines the type of the aggressive die variable, which
22
+ * uses 1 byte of overhead by default. It can be configured as static
23
+ * or nonstatic based on user preference.
24
+ */
25
+ #define FOUNDATIONAL_LIB_AGGRESSIVE_DIE_TYPE static unsigned char
26
+ #endif
27
+
28
+ struct Dict;
29
+ struct FrozenDict;
30
+ struct Set;
31
+ struct FrozenSet;
32
+
33
+ #endif