]> Kevux Git Server - fll/commitdiff
Feature: Add f_string_range_double_t, updating build settings and unit tests appropri...
authorKevin Day <thekevinday@gmail.com>
Mon, 4 Dec 2023 01:43:11 +0000 (19:43 -0600)
committerKevin Day <thekevinday@gmail.com>
Mon, 4 Dec 2023 01:43:11 +0000 (19:43 -0600)
I need a string range structure that has two ranges for some given string for the network related code.

The unit tests are updated or added as appropriate.
Any bugs discovered in the related unit tests are fixed.

The build data is rebuilt.

I originally wrote f_string_range_t to be specific to strings.
I now think that this needs to be conceptually more generalized.
The purpose of such a generalization is to simplify the code logic and design.
Renaming f_string_range_t to f_range_t and now renaming f_string_range_double_t into f_range_double_t is the intended change.
This would then be moved out of the f_string project and into the f_type project.
This is too much to do in the scope of this commit.

Instead, the f_string_range_double_t is being added under f_string_range_double_t.
I will then follow up this commit with a refactor of the f_string_range_t and f_string_range_double_t.

47 files changed:
build/disable/about.txt
build/disable/level_0/f_abstruse.h [new file with mode: 0644]
build/disable/level_0/f_account.h
build/disable/level_0/f_directory.h
build/disable/level_0/f_file.h
build/disable/level_0/f_fss.h
build/disable/level_0/f_iki.h
build/disable/level_0/f_limit.h
build/disable/level_0/f_memory.h
build/disable/level_0/f_print.h
build/disable/level_0/f_socket.h
build/disable/level_0/f_status.h
build/disable/level_0/f_status_string.h
build/disable/level_0/f_string.h
build/disable/level_0/f_thread.h
build/disable/level_0/f_time.h [new file with mode: 0644]
build/disable/level_0/f_type.h
build/disable/level_0/f_type_array.h
build/disable/level_0/f_utf.h
build/disable/level_1/fl_fss.h
build/disable/level_1/fl_status_string.h
build/disable/level_2/fll_program.h
build/level_0/settings
build/monolithic/settings
build/stand_alone/fake.config.h
level_0/f_string/c/string.h
level_0/f_string/c/string/range_double.c [new file with mode: 0644]
level_0/f_string/c/string/range_double.h [new file with mode: 0644]
level_0/f_string/c/string/range_doubles.c [new file with mode: 0644]
level_0/f_string/c/string/range_doubles.h [new file with mode: 0644]
level_0/f_string/c/string/range_doubless.c [new file with mode: 0644]
level_0/f_string/c/string/range_doubless.h [new file with mode: 0644]
level_0/f_string/data/build/settings
level_0/f_string/data/build/settings-mocks
level_0/f_string/data/build/settings-tests
level_0/f_string/tests/unit/c/test-string-range_doubles_append.c [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubles_append.h [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubles_append_all.c [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubles_append_all.h [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubless_append.c [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubless_append.h [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubless_append_all.c [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubless_append_all.h [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubless_delete_callback.c [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubless_delete_callback.h [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubless_destroy_callback.c [new file with mode: 0644]
level_0/f_string/tests/unit/c/test-string-range_doubless_destroy_callback.h [new file with mode: 0644]

index 47ebd9b0bad40c5795b82072a5257bbe8c2a032b..5354649202b726cb9afbc490135eca835703a674 100644 (file)
@@ -1,7 +1,8 @@
 Use these files as a starting point to generate a config.h or similar to disable functions in a project.
-This is also used for building the stand alone programs.
+There are different ways to build the stand alone program configuration files.
+This is one of the ways to build the stand alone program configuration files (with another being documented in the config files themselves).
 
-These files are generated like the following:
+The disable files are generated like the following:
 
 # cd fll/
 
@@ -33,11 +34,11 @@ Consider the following example using the fake dependencies for the stand alone b
 # echo $(cat level_3/fake/data/build/dependencies)
 
 Which prints:
-  # fss-0000 f_type f_status f_memory f_type_array f_string f_utf f_abstruse f_account f_capability f_color f_compare f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_parse f_path f_pipe f_print f_rip f_signal f_thread f_time fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print fll_error fll_execute fll_file fll_fss fll_print fll_program
+  # fss-0000 f_type f_status f_memory f_type_array f_string f_utf f_abstruse f_account f_capability f_color f_compare f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_parse f_path f_pipe f_print f_rip f_signal f_thread fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print fll_error fll_execute fll_file fll_fss fll_print fll_program
 
 From this list, build the level_0:
 
-# for i in f_type f_status f_memory f_type_array f_string f_utf f_abstruse f_account f_capability f_color f_compare f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_parse f_path f_pipe f_print f_rip f_signal f_thread f_time ; do if [[ -f build/disable/level_0/$i.h ]] ; then echo >> build/stand_alone/fake.config.h && cat build/disable/level_0/$i.h >> build/stand_alone/fake.config.h ; fi ; done
+# for i in f_type f_status f_memory f_type_array f_string f_utf f_abstruse f_account f_capability f_color f_compare f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_parse f_path f_pipe f_print f_rip f_signal f_thread ; do if [[ -f build/disable/level_0/$i.h ]] ; then echo >> build/stand_alone/fake.config.h && cat build/disable/level_0/$i.h >> build/stand_alone/fake.config.h ; fi ; done
 
 From the list, build the level_1:
 
diff --git a/build/disable/level_0/f_abstruse.h b/build/disable/level_0/f_abstruse.h
new file mode 100644 (file)
index 0000000..99a951f
--- /dev/null
@@ -0,0 +1,16 @@
+#define _di_f_abstruse_e_
+#define _di_f_abstruse_maps_delete_callback_
+#define _di_f_abstruse_maps_destroy_callback_
+#define _di_f_abstruse_mapss_delete_callback_
+#define _di_f_abstruse_mapss_destroy_callback_
+#define _di_f_abstruse_mapss_t_
+#define _di_f_abstruse_maps_t_
+#define _di_f_abstruse_map_t_
+#define _di_f_abstruses_delete_callback_
+#define _di_f_abstruses_destroy_callback_
+#define _di_f_abstrusess_delete_callback_
+#define _di_f_abstrusess_destroy_callback_
+#define _di_f_abstrusess_t_
+#define _di_f_abstruses_t_
+#define _di_f_abstruse_t_
+#define _di_f_abstruse_type_t_
index c3a4a9890a0d78b54ac2da43538e431288b29660..b17f60d6738ca3d94bd120da78ee3aaa82841022 100644 (file)
@@ -7,21 +7,9 @@
 #define _di_f_account_group_name_by_id_
 #define _di_f_account_id_by_name_
 #define _di_f_account_name_by_id_
-#define _di_f_accounts_adjust_
-#define _di_f_accounts_append_
-#define _di_f_accounts_append_all_
-#define _di_f_accounts_decimate_by_
-#define _di_f_accounts_decrease_by_
-#define _di_f_accounts_increase_
-#define _di_f_accounts_increase_by_
-#define _di_f_accounts_resize_
-#define _di_f_accountss_adjust_
-#define _di_f_accountss_append_
-#define _di_f_accountss_append_all_
-#define _di_f_accountss_decimate_by_
-#define _di_f_accountss_decrease_by_
-#define _di_f_accountss_increase_
-#define _di_f_accountss_increase_by_
-#define _di_f_accountss_resize_
+#define _di_f_accounts_delete_callback_
+#define _di_f_accounts_destroy_callback_
+#define _di_f_accountss_delete_callback_
+#define _di_f_accountss_destroy_callback_
 #define _di_f_accounts_t_
 #define _di_f_account_t_
index 65795119dea92870f8b6742eee4c437a274a600a..b0c1b4e4b268060e56600c9512746cb8285577d8 100644 (file)
 #define _di_f_directory_list_
 #define _di_f_directory_listing_delete_
 #define _di_f_directory_listing_destroy_
+#define _di_f_directory_listings_delete_callback_
+#define _di_f_directory_listings_destroy_callback_
+#define _di_f_directory_listingss_delete_callback_
+#define _di_f_directory_listingss_destroy_callback_
+#define _di_f_directory_listingss_t_
+#define _di_f_directory_listings_t_
 #define _di_f_directory_listing_t_
 #define _di_f_directory_max_d_
 #define _di_f_directory_open_
 #define _di_f_directory_recurse_do_delete_
 #define _di_f_directory_recurse_do_destroy_
 #define _di_f_directory_recurse_do_flag_e_
+#define _di_f_directory_recurse_dos_delete_callback_
+#define _di_f_directory_recurse_dos_destroy_callback_
+#define _di_f_directory_recurse_doss_delete_callback_
+#define _di_f_directory_recurse_doss_destroy_callback_
+#define _di_f_directory_recurse_doss_t_
+#define _di_f_directory_recurse_dos_t_
 #define _di_f_directory_recurse_do_t_
 #define _di_f_directory_remove_
 #define _di_f_directory_remove_custom_
 #define _di_f_directory_s_
-#define _di_f_directory_statuss_adjust_
-#define _di_f_directory_statuss_decimate_by_
-#define _di_f_directory_statuss_decrease_by_
-#define _di_f_directory_statuss_increase_
-#define _di_f_directory_statuss_increase_by_
-#define _di_f_directory_statuss_resize_
+#define _di_f_directory_status_delete_
+#define _di_f_directory_status_destroy_
+#define _di_f_directory_statuss_delete_callback_
+#define _di_f_directory_statuss_destroy_callback_
+#define _di_f_directory_statusss_delete_callback_
+#define _di_f_directory_statusss_destroy_callback_
+#define _di_f_directory_statusss_t_
 #define _di_f_directory_statuss_t_
 #define _di_f_directory_status_t_
 #define _di_f_directory_touch_
index 8453949eb307ddbdff1b461a45ee7799ef1a0f49..70b7140ef5b95edd421c65adc432394b42d5816e 100644 (file)
@@ -4,6 +4,7 @@
 #define _di_f_file_at_d_
 #define _di_f_file_clone_
 #define _di_f_file_close_
+#define _di_f_file_close_id_
 #define _di_f_file_copy_
 #define _di_f_file_create_
 #define _di_f_file_create_at_
 #define _di_f_file_seek_
 #define _di_f_file_seeks_d_
 #define _di_f_file_select_
+#define _di_f_file_select_signal_
 #define _di_f_file_size_
 #define _di_f_file_size_at_
 #define _di_f_file_size_by_id_
index 56ca48f3fbc2baf38e3ec5ae9177995a5c5bdc00..a3eb7b5d35d29f5056748f91b70f08ff4c5a79b0 100644 (file)
 #define _di_f_fss_is_graph_
 #define _di_f_fss_is_space_
 #define _di_f_fss_is_zero_width_
-#define _di_f_fss_items_adjust_
-#define _di_f_fss_items_decimate_by_
-#define _di_f_fss_items_decrease_by_
-#define _di_f_fss_items_increase_
-#define _di_f_fss_items_increase_by_
-#define _di_f_fss_items_resize_
+#define _di_f_fss_item_delete_
+#define _di_f_fss_item_destroy_
+#define _di_f_fss_items_delete_callback_
+#define _di_f_fss_items_destroy_callback_
+#define _di_f_fss_itemss_delete_callback_
+#define _di_f_fss_itemss_destroy_callback_
+#define _di_f_fss_itemss_t_
 #define _di_f_fss_items_t_
 #define _di_f_fss_item_t_
-#define _di_f_fss_named_adjust_
-#define _di_f_fss_named_decimate_by_
-#define _di_f_fss_named_decrease_by_
-#define _di_f_fss_named_increase_
-#define _di_f_fss_named_increase_by_
-#define _di_f_fss_named_resize_
-#define _di_f_fss_nameds_adjust_
-#define _di_f_fss_nameds_decimate_by_
-#define _di_f_fss_nameds_decrease_by_
-#define _di_f_fss_nameds_increase_
-#define _di_f_fss_nameds_increase_by_
-#define _di_f_fss_nameds_resize_
+#define _di_f_fss_named_delete_
+#define _di_f_fss_named_destroy_
+#define _di_f_fss_nameds_delete_callback_
+#define _di_f_fss_nameds_destroy_callback_
+#define _di_f_fss_namedss_delete_callback_
+#define _di_f_fss_namedss_destroy_callback_
+#define _di_f_fss_namedss_t_
 #define _di_f_fss_nameds_t_
 #define _di_f_fss_named_t_
-#define _di_f_fss_nest_adjust_
-#define _di_f_fss_nest_decimate_by_
-#define _di_f_fss_nest_decrease_by_
-#define _di_f_fss_nest_increase_
-#define _di_f_fss_nest_increase_by_
-#define _di_f_fss_nest_resize_
-#define _di_f_fss_nests_adjust_
-#define _di_f_fss_nests_decimate_by_
-#define _di_f_fss_nests_decrease_by_
-#define _di_f_fss_nests_increase_
-#define _di_f_fss_nests_increase_by_
-#define _di_f_fss_nests_resize_
+#define _di_f_fss_nest_delete_
+#define _di_f_fss_nest_destroy_
+#define _di_f_fss_nests_delete_callback_
+#define _di_f_fss_nests_destroy_callback_
+#define _di_f_fss_nestss_delete_callback_
+#define _di_f_fss_nestss_destroy_callback_
+#define _di_f_fss_nestss_t_
 #define _di_f_fss_nests_t_
 #define _di_f_fss_nest_t_
+#define _di_f_fss_payload_comment_header_begin_s_
+#define _di_f_fss_payload_comment_header_end_s_
+#define _di_f_fss_payload_comment_header_s_
+#define _di_f_fss_payload_header_map_e_
+#define _di_f_fss_payload_object_end_s_
+#define _di_f_fss_payload_object_header_s_
+#define _di_f_fss_payload_object_id_s_
+#define _di_f_fss_payload_object_length_s_
+#define _di_f_fss_payload_object_name_s_
+#define _di_f_fss_payload_object_part_s_
+#define _di_f_fss_payload_object_payload_s_
+#define _di_f_fss_payload_object_signature_s_
+#define _di_f_fss_payload_object_size_s_
+#define _di_f_fss_payload_object_status_s_
+#define _di_f_fss_payload_object_total_s_
+#define _di_f_fss_payload_object_type_s_
 #define _di_f_fss_payload_s_
 #define _di_f_fss_placeholder_s_
 #define _di_f_fss_quote_type_e_
 #define _di_f_fss_s_
 #define _di_f_fss_seek_to_eol_
-#define _di_f_fss_set_adjust_
-#define _di_f_fss_set_decimate_by_
-#define _di_f_fss_set_decrease_by_
-#define _di_f_fss_set_increase_
-#define _di_f_fss_set_increase_by_
-#define _di_f_fss_set_quote_adjust_
-#define _di_f_fss_set_quote_decimate_by_
-#define _di_f_fss_set_quote_decrease_by_
-#define _di_f_fss_set_quote_increase_
-#define _di_f_fss_set_quote_increase_by_
-#define _di_f_fss_set_quote_resize_
-#define _di_f_fss_set_quotes_adjust_
-#define _di_f_fss_set_quotes_decimate_by_
-#define _di_f_fss_set_quotes_decrease_by_
-#define _di_f_fss_set_quotes_increase_
-#define _di_f_fss_set_quotes_increase_by_
-#define _di_f_fss_set_quotes_resize_
+#define _di_f_fss_set_delete_
+#define _di_f_fss_set_destroy_
+#define _di_f_fss_set_quote_delete_
+#define _di_f_fss_set_quote_destroy_
+#define _di_f_fss_set_quotes_delete_callback_
+#define _di_f_fss_set_quotes_destroy_callback_
+#define _di_f_fss_set_quotess_delete_callback_
+#define _di_f_fss_set_quotess_destroy_callback_
+#define _di_f_fss_set_quotess_t_
 #define _di_f_fss_set_quotes_t_
 #define _di_f_fss_set_quote_t_
-#define _di_f_fss_set_resize_
-#define _di_f_fss_sets_adjust_
-#define _di_f_fss_sets_decimate_by_
-#define _di_f_fss_sets_decrease_by_
-#define _di_f_fss_sets_increase_
-#define _di_f_fss_sets_increase_by_
-#define _di_f_fss_sets_resize_
+#define _di_f_fss_sets_delete_callback_
+#define _di_f_fss_sets_destroy_callback_
+#define _di_f_fss_setss_delete_callback_
+#define _di_f_fss_setss_destroy_callback_
+#define _di_f_fss_setss_t_
 #define _di_f_fss_sets_t_
 #define _di_f_fss_set_t_
 #define _di_f_fss_simple_packet_d_
-#define _di_f_fss_simple_packet_identify_
-#define _di_f_fss_simple_packet_ranges_adjust_
-#define _di_f_fss_simple_packet_ranges_append_
-#define _di_f_fss_simple_packet_ranges_append_all_
-#define _di_f_fss_simple_packet_ranges_decimate_by_
-#define _di_f_fss_simple_packet_ranges_decrease_by_
-#define _di_f_fss_simple_packet_ranges_increase_
-#define _di_f_fss_simple_packet_ranges_increase_by_
-#define _di_f_fss_simple_packet_ranges_resize_
-#define _di_f_fss_simple_packet_rangess_adjust_
-#define _di_f_fss_simple_packet_rangess_append_
-#define _di_f_fss_simple_packet_rangess_append_all_
-#define _di_f_fss_simple_packet_rangess_decimate_by_
-#define _di_f_fss_simple_packet_rangess_decrease_by_
-#define _di_f_fss_simple_packet_rangess_increase_
-#define _di_f_fss_simple_packet_rangess_increase_by_
-#define _di_f_fss_simple_packet_rangess_resize_
+#define _di_f_fss_simple_packet_delete_
+#define _di_f_fss_simple_packet_destroy_
+#define _di_f_fss_simple_packet_extract_
+#define _di_f_fss_simple_packet_extract_range_
 #define _di_f_fss_simple_packet_rangess_t_
 #define _di_f_fss_simple_packet_ranges_t_
 #define _di_f_fss_simple_packet_range_t_
+#define _di_f_fss_simple_packets_delete_callback_
+#define _di_f_fss_simple_packets_destroy_callback_
+#define _di_f_fss_simple_packetss_delete_callback_
+#define _di_f_fss_simple_packetss_destroy_callback_
+#define _di_f_fss_simple_packetss_t_
+#define _di_f_fss_simple_packets_t_
+#define _di_f_fss_simple_packet_t_
 #define _di_f_fss_skip_past_delimit_
 #define _di_f_fss_skip_past_space_
 #define _di_f_fss_state_flag_e_
index 917f4e7c459c46882f2c1850f27bc34e70abd9d9..3c8596227dc326554dd43b3810da2e773114f7f3 100644 (file)
@@ -2,22 +2,14 @@
 #define _di_f_iki_content_partial_is_
 #define _di_f_iki_data_delete_
 #define _di_f_iki_data_destroy_
-#define _di_f_iki_datas_adjust_
 #define _di_f_iki_datas_append_
 #define _di_f_iki_datas_append_all_
-#define _di_f_iki_datas_decimate_by_
-#define _di_f_iki_datas_decrease_by_
-#define _di_f_iki_datas_increase_
-#define _di_f_iki_datas_increase_by_
-#define _di_f_iki_datas_resize_
-#define _di_f_iki_datass_adjust_
+#define _di_f_iki_datas_delete_callback_
+#define _di_f_iki_datas_destroy_callback_
 #define _di_f_iki_datass_append_
 #define _di_f_iki_datass_append_all_
-#define _di_f_iki_datass_decimate_by_
-#define _di_f_iki_datass_decrease_by_
-#define _di_f_iki_datass_increase_
-#define _di_f_iki_datass_increase_by_
-#define _di_f_iki_datass_resize_
+#define _di_f_iki_datass_delete_callback_
+#define _di_f_iki_datass_destroy_callback_
 #define _di_f_iki_datass_t_
 #define _di_f_iki_datas_t_
 #define _di_f_iki_data_t_
index 4b3a5957d8c4105c929552d0521a7313c2ed92a4..abc815712dbd8bb7a6e74753faa810f296950db4 100644 (file)
@@ -1,39 +1,11 @@
 #define _di_f_limit_process_
-#define _di_f_limit_sets_adjust_
-#define _di_f_limit_sets_append_
-#define _di_f_limit_sets_append_all_
-#define _di_f_limit_sets_decimate_by_
-#define _di_f_limit_sets_decrease_by_
-#define _di_f_limit_sets_increase_
-#define _di_f_limit_sets_increase_by_
-#define _di_f_limit_sets_resize_
-#define _di_f_limit_setss_adjust_
-#define _di_f_limit_setss_append_
-#define _di_f_limit_setss_append_all_
-#define _di_f_limit_setss_decimate_by_
-#define _di_f_limit_setss_decrease_by_
-#define _di_f_limit_setss_increase_
-#define _di_f_limit_setss_increase_by_
-#define _di_f_limit_setss_resize_
+#define _di_f_limit_setss_delete_callback_
+#define _di_f_limit_setss_destroy_callback_
 #define _di_f_limit_setss_t_
 #define _di_f_limit_sets_t_
 #define _di_f_limit_set_t_
-#define _di_f_limit_values_adjust_
-#define _di_f_limit_values_append_
-#define _di_f_limit_values_append_all_
-#define _di_f_limit_values_decimate_by_
-#define _di_f_limit_values_decrease_by_
-#define _di_f_limit_values_increase_
-#define _di_f_limit_values_increase_by_
-#define _di_f_limit_values_resize_
-#define _di_f_limit_valuess_adjust_
-#define _di_f_limit_valuess_append_
-#define _di_f_limit_valuess_append_all_
-#define _di_f_limit_valuess_decimate_by_
-#define _di_f_limit_valuess_decrease_by_
-#define _di_f_limit_valuess_increase_
-#define _di_f_limit_valuess_increase_by_
-#define _di_f_limit_valuess_resize_
+#define _di_f_limit_valuess_delete_callback_
+#define _di_f_limit_valuess_destroy_callback_
 #define _di_f_limit_valuess_t_
 #define _di_f_limit_values_t_
 #define _di_f_limit_value_t_
index 59df8a5b1b427b1d08a40c544baeb478ed70c362..a5528a42dd0d171b65c90a0a7169d0c29c4c3e90 100644 (file)
@@ -1,10 +1,14 @@
 #define _di_f_memory_adjust_
 #define _di_f_memory_array_adjust_
+#define _di_f_memory_array_append_
+#define _di_f_memory_array_append_all_
 #define _di_f_memory_array_decimate_by_
 #define _di_f_memory_array_decrease_by_
 #define _di_f_memory_array_increase_
 #define _di_f_memory_array_increase_by_
 #define _di_f_memory_array_resize_
+#define _di_f_memory_arrays_adjust_
+#define _di_f_memory_arrays_resize_
 #define _di_f_memory_default_d_
 #define _di_f_memory_delete_
 #define _di_f_memory_destroy_
index b5d29c1fd3daa4e98034297f008244e39157a887..954f0d4318f4d712f538da262a379907816197d9 100644 (file)
 #define _di_f_print_to_safely_terminated_
 #define _di_f_print_to_terminated_
 #define _di_f_print_write_max_d_
+#define _di_private_inline_f_print_to_error_
+#define _di_private_inline_private_f_print_to_error_
index afe7b81b25012881d48d3786325e2ca476e35b9d..f38edcbf7c8d71f63fb966c08befec67ead178b9 100644 (file)
@@ -1,5 +1,9 @@
 #define _di_f_socket_accept_
 #define _di_f_socket_address_family_e_
+#define _di_f_socket_addressss_delete_callback_
+#define _di_f_socket_addressss_destroy_callback_
+#define _di_f_socket_addressss_t_
+#define _di_f_socket_addresss_t_
 #define _di_f_socket_address_t_
 #define _di_f_socket_bind_
 #define _di_f_socket_bind_inet4_
 #define _di_f_socket_read_
 #define _di_f_socket_read_message_
 #define _di_f_socket_read_stream_
-#define _di_f_sockets_adjust_
-#define _di_f_sockets_append_
-#define _di_f_sockets_append_all_
-#define _di_f_sockets_decimate_by_
-#define _di_f_sockets_decrease_by_
-#define _di_f_sockets_increase_
-#define _di_f_sockets_increase_by_
-#define _di_f_sockets_resize_
-#define _di_f_socketss_adjust_
-#define _di_f_socketss_append_
-#define _di_f_socketss_append_all_
-#define _di_f_socketss_decimate_by_
-#define _di_f_socketss_decrease_by_
-#define _di_f_socketss_increase_
-#define _di_f_socketss_increase_by_
-#define _di_f_socketss_resize_
+#define _di_f_socketss_delete_callback_
+#define _di_f_socketss_destroy_callback_
 #define _di_f_socketss_t_
 #define _di_f_sockets_t_
 #define _di_f_socket_t_
index 732ee811eb884d80dcdc46ec371417ac730c6e56..7737cb98ae61f2a62de18c23f9380254b1325b66 100644 (file)
@@ -1,21 +1,2 @@
-#define _di_f_status_access_e_
-#define _di_f_status_array_e_
-#define _di_f_status_available_e_
-#define _di_f_status_basic_e_
-#define _di_f_status_boolean_e_
-#define _di_f_status_buffer_e_
-#define _di_f_status_busy_e_
-#define _di_f_status_code_e_
-#define _di_f_status_compare_e_
-#define _di_f_status_directory_e_
-#define _di_f_status_end_e_
-#define _di_f_status_file_e_
-#define _di_f_status_filesystem_e_
+#define _di_f_status_e_
 #define _di_f_status_mask_d_
-#define _di_f_status_network_e_
-#define _di_f_status_number_e_
-#define _di_f_status_process_e_
-#define _di_f_status_return_e_
-#define _di_f_status_signal_e_
-#define _di_f_status_socket_e_
-#define _di_f_status_terminal_e_
index 3a05e5c9c6db8ebae81181baa2f2bae35474ce72..e8bf0f08e6c28354035b91c63dc1a88b7684289f 100644 (file)
@@ -1,22 +1,3 @@
-#define _di_f_status_access_s_
-#define _di_f_status_array_s_
-#define _di_f_status_available_s_
-#define _di_f_status_basic_s_
-#define _di_f_status_boolean_s_
-#define _di_f_status_buffer_s_
-#define _di_f_status_buffers_s_
-#define _di_f_status_busy_s_
-#define _di_f_status_compare_s_
 #define _di_f_status_directory_s_
-#define _di_f_status_end_s_
-#define _di_f_status_file_s_
-#define _di_f_status_filesystem_s_
-#define _di_f_status_network_s_
-#define _di_f_status_number_s_
-#define _di_f_status_process_s_
-#define _di_f_status_return_s_
-#define _di_f_status_signal_s_
-#define _di_f_status_socket_s_
 #define _di_f_status_string_s_
 #define _di_f_status_string_to_
-#define _di_f_status_terminal_s_
index ebe0e4106155823d9f147b90430d78f6113c7db4..8cf0ea551646f157a7c60d02dc53f3bcf7f40ccf 100644 (file)
@@ -5,15 +5,10 @@
 #define _di_f_string_append_nulless_
 #define _di_f_string_ascii_s_
 #define _di_f_string_constant_t_
-#define _di_f_string_dynamic_adjust_
 #define _di_f_string_dynamic_append_
 #define _di_f_string_dynamic_append_assure_
 #define _di_f_string_dynamic_append_assure_nulless_
 #define _di_f_string_dynamic_append_nulless_
-#define _di_f_string_dynamic_decimate_by_
-#define _di_f_string_dynamic_decrease_by_
-#define _di_f_string_dynamic_increase_
-#define _di_f_string_dynamic_increase_by_
 #define _di_f_string_dynamic_mash_
 #define _di_f_string_dynamic_mash_nulless_
 #define _di_f_string_dynamic_mish_
 #define _di_f_string_dynamic_prepend_assure_
 #define _di_f_string_dynamic_prepend_assure_nulless_
 #define _di_f_string_dynamic_prepend_nulless_
-#define _di_f_string_dynamic_resize_
-#define _di_f_string_dynamics_adjust_
 #define _di_f_string_dynamics_append_
 #define _di_f_string_dynamics_append_all_
-#define _di_f_string_dynamics_decimate_by_
-#define _di_f_string_dynamics_decrease_by_
+#define _di_f_string_dynamics_delete_callback_
+#define _di_f_string_dynamics_destroy_callback_
 #define _di_f_string_dynamic_seek_line_
 #define _di_f_string_dynamic_seek_line_to_
 #define _di_f_string_dynamic_seek_to_
-#define _di_f_string_dynamics_increase_
-#define _di_f_string_dynamics_increase_by_
-#define _di_f_string_dynamics_resize_
-#define _di_f_string_dynamicss_adjust_
 #define _di_f_string_dynamicss_append_
 #define _di_f_string_dynamicss_append_all_
-#define _di_f_string_dynamicss_decimate_by_
-#define _di_f_string_dynamicss_decrease_by_
-#define _di_f_string_dynamicss_increase_
-#define _di_f_string_dynamicss_increase_by_
-#define _di_f_string_dynamicss_resize_
+#define _di_f_string_dynamicss_delete_callback_
+#define _di_f_string_dynamicss_destroy_callback_
 #define _di_f_string_dynamicss_t_
 #define _di_f_string_dynamics_t_
 #define _di_f_string_dynamic_t_
 #define _di_f_string_dynamic_terminate_after_
 #define _di_f_string_empty_s_
 #define _di_f_string_eol_s_
-#define _di_f_string_map_multis_adjust_
+#define _di_f_string_format_s_
 #define _di_f_string_map_multis_append_
 #define _di_f_string_map_multis_append_all_
-#define _di_f_string_map_multis_decimate_by_
-#define _di_f_string_map_multis_decrease_by_
-#define _di_f_string_map_multis_increase_
-#define _di_f_string_map_multis_increase_by_
-#define _di_f_string_map_multis_resize_
-#define _di_f_string_map_multiss_adjust_
+#define _di_f_string_map_multis_delete_callback_
+#define _di_f_string_map_multis_destroy_callback_
 #define _di_f_string_map_multiss_append_
 #define _di_f_string_map_multiss_append_all_
-#define _di_f_string_map_multiss_decimate_by_
-#define _di_f_string_map_multiss_decrease_by_
-#define _di_f_string_map_multiss_increase_
-#define _di_f_string_map_multiss_increase_by_
-#define _di_f_string_map_multiss_resize_
+#define _di_f_string_map_multiss_delete_callback_
+#define _di_f_string_map_multiss_destroy_callback_
 #define _di_f_string_map_multiss_t_
 #define _di_f_string_map_multis_t_
 #define _di_f_string_map_multi_t_
-#define _di_f_string_maps_adjust_
 #define _di_f_string_maps_append_
 #define _di_f_string_maps_append_all_
-#define _di_f_string_maps_decimate_by_
-#define _di_f_string_maps_decrease_by_
-#define _di_f_string_maps_increase_
-#define _di_f_string_maps_increase_by_
-#define _di_f_string_maps_resize_
-#define _di_f_string_mapss_adjust_
+#define _di_f_string_maps_delete_callback_
+#define _di_f_string_maps_destroy_callback_
 #define _di_f_string_mapss_append_
 #define _di_f_string_mapss_append_all_
-#define _di_f_string_mapss_decimate_by_
-#define _di_f_string_mapss_decrease_by_
-#define _di_f_string_mapss_increase_
-#define _di_f_string_mapss_increase_by_
-#define _di_f_string_mapss_resize_
+#define _di_f_string_mapss_delete_callback_
+#define _di_f_string_mapss_destroy_callback_
 #define _di_f_string_mapss_t_
 #define _di_f_string_maps_t_
 #define _di_f_string_map_t_
 #define _di_f_string_prepend_assure_
 #define _di_f_string_prepend_assure_nulless_
 #define _di_f_string_prepend_nulless_
-#define _di_f_string_quantitys_adjust_
 #define _di_f_string_quantitys_append_
 #define _di_f_string_quantitys_append_all_
-#define _di_f_string_quantitys_decimate_by_
-#define _di_f_string_quantitys_decrease_by_
-#define _di_f_string_quantitys_increase_
-#define _di_f_string_quantitys_increase_by_
-#define _di_f_string_quantitys_resize_
-#define _di_f_string_quantityss_adjust_
 #define _di_f_string_quantityss_append_
 #define _di_f_string_quantityss_append_all_
-#define _di_f_string_quantityss_decimate_by_
-#define _di_f_string_quantityss_decrease_by_
-#define _di_f_string_quantityss_increase_
-#define _di_f_string_quantityss_increase_by_
-#define _di_f_string_quantityss_resize_
+#define _di_f_string_quantityss_delete_callback_
+#define _di_f_string_quantityss_destroy_callback_
 #define _di_f_string_quantityss_t_
 #define _di_f_string_quantitys_t_
 #define _di_f_string_quantity_t_
+#define _di_f_string_range_double_empty_c_
+#define _di_f_string_range_doubles_append_
+#define _di_f_string_range_doubles_append_all_
+#define _di_f_string_range_doubless_append_
+#define _di_f_string_range_doubless_append_all_
+#define _di_f_string_range_doubless_delete_callback_
+#define _di_f_string_range_doubless_destroy_callback_
+#define _di_f_string_range_doubless_t_
+#define _di_f_string_range_doubles_t_
+#define _di_f_string_range_double_t_
 #define _di_f_string_range_empty_c_
-#define _di_f_string_ranges_adjust_
 #define _di_f_string_ranges_append_
 #define _di_f_string_ranges_append_all_
-#define _di_f_string_ranges_decimate_by_
-#define _di_f_string_ranges_decrease_by_
-#define _di_f_string_ranges_increase_
-#define _di_f_string_ranges_increase_by_
-#define _di_f_string_ranges_resize_
-#define _di_f_string_rangess_adjust_
 #define _di_f_string_rangess_append_
 #define _di_f_string_rangess_append_all_
-#define _di_f_string_rangess_decimate_by_
-#define _di_f_string_rangess_decrease_by_
-#define _di_f_string_rangess_increase_
-#define _di_f_string_rangess_increase_by_
-#define _di_f_string_rangess_resize_
+#define _di_f_string_rangess_delete_callback_
+#define _di_f_string_rangess_destroy_callback_
 #define _di_f_string_rangess_t_
 #define _di_f_string_ranges_t_
 #define _di_f_string_range_t_
 #define _di_f_string_statics_t_
 #define _di_f_string_static_t_
 #define _di_f_string_t_
-#define _di_f_string_triples_adjust_
 #define _di_f_string_triples_append_
 #define _di_f_string_triples_append_all_
-#define _di_f_string_triples_decimate_by_
-#define _di_f_string_triples_decrease_by_
-#define _di_f_string_triples_increase_
-#define _di_f_string_triples_increase_by_
-#define _di_f_string_triples_resize_
-#define _di_f_string_tripless_adjust_
+#define _di_f_string_triples_delete_callback_
+#define _di_f_string_triples_destroy_callback_
 #define _di_f_string_tripless_append_
 #define _di_f_string_tripless_append_all_
-#define _di_f_string_tripless_decimate_by_
-#define _di_f_string_tripless_decrease_by_
-#define _di_f_string_tripless_increase_
-#define _di_f_string_tripless_increase_by_
-#define _di_f_string_tripless_resize_
+#define _di_f_string_tripless_delete_callback_
+#define _di_f_string_tripless_destroy_callback_
 #define _di_f_string_tripless_t_
 #define _di_f_string_triples_t_
 #define _di_f_string_triple_t_
index 7acb361e8eee1ba832fa908a80bf0bf20d46aacd..ddd17b0020b0e97c6fc4aa407a0293f54cf36c1a 100644 (file)
@@ -11,7 +11,6 @@
 #define _di_f_thread_attribute_detach_set_
 #define _di_f_thread_attribute_guard_get_
 #define _di_f_thread_attribute_guard_set_
-#define _di_f_thread_attributes_adjust_
 #define _di_f_thread_attribute_scheduler_inherit_get_
 #define _di_f_thread_attribute_scheduler_inherit_set_
 #define _di_f_thread_attribute_scheduler_parameter_get_
 #define _di_f_thread_attribute_scheduler_policy_set_
 #define _di_f_thread_attribute_scope_get_
 #define _di_f_thread_attribute_scope_set_
-#define _di_f_thread_attributes_decimate_by_
-#define _di_f_thread_attributes_decrease_by_
-#define _di_f_thread_attributes_increase_
-#define _di_f_thread_attributes_increase_by_
-#define _di_f_thread_attributes_resize_
+#define _di_f_thread_attributes_delete_callback_
+#define _di_f_thread_attributes_destroy_callback_
+#define _di_f_thread_attributess_delete_callback_
+#define _di_f_thread_attributess_destroy_callback_
 #define _di_f_thread_attributes_t_
 #define _di_f_thread_attribute_stack_get_
 #define _di_f_thread_attribute_stack_set_
 #define _di_f_thread_attribute_t_
 #define _di_f_thread_barrier_attribute_create_
 #define _di_f_thread_barrier_attribute_delete_
-#define _di_f_thread_barrier_attributes_adjust_
-#define _di_f_thread_barrier_attributes_decimate_by_
-#define _di_f_thread_barrier_attributes_decrease_by_
+#define _di_f_thread_barrier_attributes_delete_callback_
+#define _di_f_thread_barrier_attributes_destroy_callback_
 #define _di_f_thread_barrier_attribute_shared_get_
 #define _di_f_thread_barrier_attribute_shared_set_
-#define _di_f_thread_barrier_attributes_increase_
-#define _di_f_thread_barrier_attributes_increase_by_
-#define _di_f_thread_barrier_attributes_resize_
+#define _di_f_thread_barrier_attributess_delete_callback_
+#define _di_f_thread_barrier_attributess_destroy_callback_
 #define _di_f_thread_barrier_attributes_t_
 #define _di_f_thread_barrier_attribute_t_
 #define _di_f_thread_barrier_create_
 #define _di_f_thread_barrier_delete_
-#define _di_f_thread_barriers_adjust_
-#define _di_f_thread_barriers_decimate_by_
-#define _di_f_thread_barriers_decrease_by_
-#define _di_f_thread_barriers_increase_
-#define _di_f_thread_barriers_increase_by_
-#define _di_f_thread_barriers_resize_
+#define _di_f_thread_barriers_delete_callback_
+#define _di_f_thread_barriers_destroy_callback_
+#define _di_f_thread_barrierss_delete_callback_
+#define _di_f_thread_barrierss_destroy_callback_
 #define _di_f_thread_barriers_t_
 #define _di_f_thread_barrier_t_
 #define _di_f_thread_barrier_wait_
 #define _di_f_thread_condition_attribute_clock_set_
 #define _di_f_thread_condition_attribute_create_
 #define _di_f_thread_condition_attribute_delete_
-#define _di_f_thread_condition_attributes_adjust_
-#define _di_f_thread_condition_attributes_decimate_by_
-#define _di_f_thread_condition_attributes_decrease_by_
+#define _di_f_thread_condition_attributes_delete_callback_
+#define _di_f_thread_condition_attributes_destroy_callback_
 #define _di_f_thread_condition_attribute_shared_get_
 #define _di_f_thread_condition_attribute_shared_set_
-#define _di_f_thread_condition_attributes_increase_
-#define _di_f_thread_condition_attributes_increase_by_
-#define _di_f_thread_condition_attributes_resize_
+#define _di_f_thread_condition_attributess_delete_callback_
+#define _di_f_thread_condition_attributess_destroy_callback_
 #define _di_f_thread_condition_attributes_t_
 #define _di_f_thread_condition_attribute_t_
 #define _di_f_thread_condition_create_
 #define _di_f_thread_condition_delete_
-#define _di_f_thread_conditions_adjust_
-#define _di_f_thread_conditions_decimate_by_
-#define _di_f_thread_conditions_decrease_by_
+#define _di_f_thread_conditions_delete_callback_
+#define _di_f_thread_conditions_destroy_callback_
 #define _di_f_thread_condition_signal_
 #define _di_f_thread_condition_signal_all_
-#define _di_f_thread_conditions_increase_
-#define _di_f_thread_conditions_increase_by_
-#define _di_f_thread_conditions_resize_
+#define _di_f_thread_conditionss_delete_callback_
+#define _di_f_thread_conditionss_destroy_callback_
 #define _di_f_thread_conditions_t_
 #define _di_f_thread_condition_t_
 #define _di_f_thread_condition_wait_
 #define _di_f_thread_create_
 #define _di_f_thread_detach_
 #define _di_f_thread_exit_
-#define _di_f_thread_ids_adjust_
-#define _di_f_thread_ids_decimate_by_
-#define _di_f_thread_ids_decrease_by_
-#define _di_f_thread_ids_increase_
-#define _di_f_thread_ids_increase_by_
-#define _di_f_thread_ids_resize_
 #define _di_f_thread_ids_t_
 #define _di_f_thread_id_t_
 #define _di_f_thread_join_
 #define _di_f_thread_key_create_
 #define _di_f_thread_key_delete_
 #define _di_f_thread_key_get_
-#define _di_f_thread_keys_adjust_
-#define _di_f_thread_keys_decimate_by_
-#define _di_f_thread_keys_decrease_by_
+#define _di_f_thread_keys_delete_callback_
+#define _di_f_thread_keys_destroy_callback_
 #define _di_f_thread_key_set_
-#define _di_f_thread_keys_increase_
-#define _di_f_thread_keys_increase_by_
-#define _di_f_thread_keys_resize_
+#define _di_f_thread_keyss_delete_callback_
+#define _di_f_thread_keyss_destroy_callback_
 #define _di_f_thread_keys_t_
 #define _di_f_thread_key_t_
 #define _di_f_thread_lock_attribute_create_
 #define _di_f_thread_lock_attribute_delete_
-#define _di_f_thread_lock_attributes_adjust_
-#define _di_f_thread_lock_attributes_decimate_by_
-#define _di_f_thread_lock_attributes_decrease_by_
+#define _di_f_thread_lock_attributes_delete_callback_
+#define _di_f_thread_lock_attributes_destroy_callback_
 #define _di_f_thread_lock_attribute_shared_get_
 #define _di_f_thread_lock_attribute_shared_set_
-#define _di_f_thread_lock_attributes_increase_
-#define _di_f_thread_lock_attributes_increase_by_
-#define _di_f_thread_lock_attributes_resize_
+#define _di_f_thread_lock_attributess_delete_callback_
+#define _di_f_thread_lock_attributess_destroy_callback_
 #define _di_f_thread_lock_attributes_t_
 #define _di_f_thread_lock_attribute_t_
 #define _di_f_thread_lock_create_
 #define _di_f_thread_lock_read_
 #define _di_f_thread_lock_read_timed_
 #define _di_f_thread_lock_read_try_
-#define _di_f_thread_locks_adjust_
-#define _di_f_thread_locks_decimate_by_
-#define _di_f_thread_locks_decrease_by_
-#define _di_f_thread_locks_increase_
-#define _di_f_thread_locks_increase_by_
-#define _di_f_thread_locks_resize_
+#define _di_f_thread_locks_delete_callback_
+#define _di_f_thread_locks_destroy_callback_
+#define _di_f_thread_lockss_delete_callback_
+#define _di_f_thread_lockss_destroy_callback_
 #define _di_f_thread_locks_t_
 #define _di_f_thread_lock_t_
 #define _di_f_thread_lock_write_
 #define _di_f_thread_mutex_attribute_priority_ceiling_set_
 #define _di_f_thread_mutex_attribute_protocol_get_
 #define _di_f_thread_mutex_attribute_protocol_set_
-#define _di_f_thread_mutex_attributes_adjust_
-#define _di_f_thread_mutex_attributes_decimate_by_
-#define _di_f_thread_mutex_attributes_decrease_by_
+#define _di_f_thread_mutex_attributes_delete_callback_
+#define _di_f_thread_mutex_attributes_destroy_callback_
 #define _di_f_thread_mutex_attribute_shared_get_
 #define _di_f_thread_mutex_attribute_shared_set_
-#define _di_f_thread_mutex_attributes_increase_
-#define _di_f_thread_mutex_attributes_increase_by_
-#define _di_f_thread_mutex_attributes_resize_
+#define _di_f_thread_mutex_attributess_delete_callback_
+#define _di_f_thread_mutex_attributess_destroy_callback_
 #define _di_f_thread_mutex_attributes_t_
 #define _di_f_thread_mutex_attribute_t_
 #define _di_f_thread_mutex_attribute_type_get_
 #define _di_f_thread_mutex_lock_try_
 #define _di_f_thread_mutex_priority_ceiling_get_
 #define _di_f_thread_mutex_priority_ceiling_set_
-#define _di_f_thread_mutexs_adjust_
-#define _di_f_thread_mutexs_decimate_by_
-#define _di_f_thread_mutexs_decrease_by_
-#define _di_f_thread_mutexs_increase_
-#define _di_f_thread_mutexs_increase_by_
-#define _di_f_thread_mutexs_resize_
+#define _di_f_thread_mutexs_delete_callback_
+#define _di_f_thread_mutexs_destroy_callback_
+#define _di_f_thread_mutexss_delete_callback_
+#define _di_f_thread_mutexss_destroy_callback_
 #define _di_f_thread_mutexs_t_
 #define _di_f_thread_mutex_t_
 #define _di_f_thread_mutex_unlock_
 #define _di_f_thread_once_
-#define _di_f_thread_onces_adjust_
-#define _di_f_thread_onces_decimate_by_
-#define _di_f_thread_onces_decrease_by_
-#define _di_f_thread_onces_increase_
-#define _di_f_thread_onces_increase_by_
-#define _di_f_thread_onces_resize_
 #define _di_f_thread_onces_t_
 #define _di_f_thread_once_t_
 #define _di_f_thread_scheduler_parameter_get_
 #define _di_f_thread_semaphore_lock_
 #define _di_f_thread_semaphore_lock_timed_
 #define _di_f_thread_semaphore_lock_try_
-#define _di_f_thread_semaphores_adjust_
-#define _di_f_thread_semaphores_decimate_by_
-#define _di_f_thread_semaphores_decrease_by_
-#define _di_f_thread_semaphores_increase_
-#define _di_f_thread_semaphores_increase_by_
-#define _di_f_thread_semaphores_resize_
+#define _di_f_thread_semaphores_delete_callback_
+#define _di_f_thread_semaphores_destroy_callback_
+#define _di_f_thread_semaphoress_delete_callback_
+#define _di_f_thread_semaphoress_destroy_callback_
 #define _di_f_thread_semaphores_t_
 #define _di_f_thread_semaphore_t_
 #define _di_f_thread_semaphore_unlock_
 #define _di_f_thread_semaphore_value_get_
-#define _di_f_thread_sets_adjust_
-#define _di_f_thread_sets_decimate_by_
-#define _di_f_thread_sets_decrease_by_
-#define _di_f_thread_sets_increase_
-#define _di_f_thread_sets_increase_by_
-#define _di_f_thread_sets_resize_
+#define _di_f_thread_sets_delete_callback_
+#define _di_f_thread_sets_destroy_callback_
+#define _di_f_thread_setss_delete_callback_
+#define _di_f_thread_setss_destroy_callback_
 #define _di_f_thread_sets_t_
 #define _di_f_thread_set_t_
 #define _di_f_thread_signal_mask_
 #define _di_f_thread_spin_delete_
 #define _di_f_thread_spin_lock_
 #define _di_f_thread_spin_lock_try_
-#define _di_f_thread_spins_adjust_
-#define _di_f_thread_spins_decimate_by_
-#define _di_f_thread_spins_decrease_by_
-#define _di_f_thread_spins_increase_
-#define _di_f_thread_spins_increase_by_
-#define _di_f_thread_spins_resize_
+#define _di_f_thread_spins_delete_callback_
+#define _di_f_thread_spins_destroy_callback_
+#define _di_f_thread_spinss_delete_callback_
+#define _di_f_thread_spinss_destroy_callback_
 #define _di_f_thread_spins_t_
 #define _di_f_thread_spin_t_
 #define _di_f_thread_spin_unlock_
diff --git a/build/disable/level_0/f_time.h b/build/disable/level_0/f_time.h
new file mode 100644 (file)
index 0000000..de48c6d
--- /dev/null
@@ -0,0 +1,2 @@
+#define _di_f_time_spec_millisecond_
+#define _di_f_time_spec_nanosecond_
index 93cc5ef0eba85e23255ad90c946adf821605d7c5..8ca5223c2c7e24894b7f29b1c3b80452a888c586 100644 (file)
@@ -22,6 +22,8 @@
 #define _di_f_int8ss_t_
 #define _di_f_int8s_t_
 #define _di_f_mode_t_
+#define _di_f_number_signedss_t_
+#define _di_f_number_signeds_t_
 #define _di_f_number_unsignedss_t_
 #define _di_f_number_unsigneds_t_
 #define _di_f_poll_e_
index d62ffdd491dde2f5339deeacc6fbc2562cb2fdac..a626817a0ebf9df85af092fea510b961afb95e8b 100644 (file)
-#define _di_f_cells_adjust_
-#define _di_f_cells_append_
-#define _di_f_cells_append_all_
-#define _di_f_cells_decimate_by_
-#define _di_f_cells_decrease_by_
-#define _di_f_cells_increase_
-#define _di_f_cells_increase_by_
-#define _di_f_cells_resize_
-#define _di_f_cellss_adjust_
-#define _di_f_cellss_append_
-#define _di_f_cellss_append_all_
-#define _di_f_cellss_decimate_by_
-#define _di_f_cellss_decrease_by_
-#define _di_f_cellss_increase_
-#define _di_f_cellss_increase_by_
-#define _di_f_cellss_resize_
-#define _di_f_cellss_t_
-#define _di_f_cells_t_
-#define _di_f_files_adjust_
-#define _di_f_files_append_
-#define _di_f_files_append_all_
-#define _di_f_files_decimate_by_
-#define _di_f_files_decrease_by_
-#define _di_f_files_increase_
-#define _di_f_files_increase_by_
-#define _di_f_files_resize_
-#define _di_f_filess_adjust_
-#define _di_f_filess_append_
-#define _di_f_filess_append_all_
-#define _di_f_filess_decimate_by_
-#define _di_f_filess_decrease_by_
-#define _di_f_filess_increase_
-#define _di_f_filess_increase_by_
-#define _di_f_filess_resize_
-#define _di_f_fll_ids_adjust_
-#define _di_f_fll_ids_append_
-#define _di_f_fll_ids_append_all_
-#define _di_f_fll_ids_decimate_by_
-#define _di_f_fll_ids_decrease_by_
-#define _di_f_fll_ids_increase_
-#define _di_f_fll_ids_increase_by_
-#define _di_f_fll_ids_resize_
-#define _di_f_fll_idss_adjust_
-#define _di_f_fll_idss_append_
-#define _di_f_fll_idss_append_all_
-#define _di_f_fll_idss_decimate_by_
-#define _di_f_fll_idss_decrease_by_
-#define _di_f_fll_idss_increase_
-#define _di_f_fll_idss_increase_by_
-#define _di_f_fll_idss_resize_
-#define _di_f_fll_idss_t_
-#define _di_f_fll_ids_t_
-#define _di_f_int128s_adjust_
-#define _di_f_int128s_append_
-#define _di_f_int128s_append_all_
-#define _di_f_int128s_decimate_by_
-#define _di_f_int128s_decrease_by_
-#define _di_f_int128s_increase_
-#define _di_f_int128s_increase_by_
-#define _di_f_int128s_resize_
-#define _di_f_int128ss_adjust_
-#define _di_f_int128ss_append_
-#define _di_f_int128ss_append_all_
-#define _di_f_int128ss_decimate_by_
-#define _di_f_int128ss_decrease_by_
-#define _di_f_int128ss_increase_
-#define _di_f_int128ss_increase_by_
-#define _di_f_int128ss_resize_
-#define _di_f_int128ss_t_
-#define _di_f_int128s_t_
-#define _di_f_int16s_adjust_
-#define _di_f_int16s_append_
-#define _di_f_int16s_append_all_
-#define _di_f_int16s_decimate_by_
-#define _di_f_int16s_decrease_by_
-#define _di_f_int16s_increase_
-#define _di_f_int16s_increase_by_
-#define _di_f_int16s_resize_
-#define _di_f_int16ss_adjust_
-#define _di_f_int16ss_append_
-#define _di_f_int16ss_append_all_
-#define _di_f_int16ss_decimate_by_
-#define _di_f_int16ss_decrease_by_
-#define _di_f_int16ss_increase_
-#define _di_f_int16ss_increase_by_
-#define _di_f_int16ss_resize_
-#define _di_f_int16ss_t_
-#define _di_f_int16s_t_
-#define _di_f_int32s_adjust_
-#define _di_f_int32s_append_
-#define _di_f_int32s_append_all_
-#define _di_f_int32s_decimate_by_
-#define _di_f_int32s_decrease_by_
-#define _di_f_int32s_increase_
-#define _di_f_int32s_increase_by_
-#define _di_f_int32s_resize_
-#define _di_f_int32ss_adjust_
-#define _di_f_int32ss_append_
-#define _di_f_int32ss_append_all_
-#define _di_f_int32ss_decimate_by_
-#define _di_f_int32ss_decrease_by_
-#define _di_f_int32ss_increase_
-#define _di_f_int32ss_increase_by_
-#define _di_f_int32ss_resize_
-#define _di_f_int32ss_t_
-#define _di_f_int32s_t_
-#define _di_f_int64s_adjust_
-#define _di_f_int64s_append_
-#define _di_f_int64s_append_all_
-#define _di_f_int64s_decimate_by_
-#define _di_f_int64s_decrease_by_
-#define _di_f_int64s_increase_
-#define _di_f_int64s_increase_by_
-#define _di_f_int64s_resize_
-#define _di_f_int64ss_adjust_
-#define _di_f_int64ss_append_
-#define _di_f_int64ss_append_all_
-#define _di_f_int64ss_decimate_by_
-#define _di_f_int64ss_decrease_by_
-#define _di_f_int64ss_increase_
-#define _di_f_int64ss_increase_by_
-#define _di_f_int64ss_resize_
-#define _di_f_int64ss_t_
-#define _di_f_int64s_t_
-#define _di_f_int8s_adjust_
-#define _di_f_int8s_append_
-#define _di_f_int8s_append_all_
-#define _di_f_int8s_decimate_by_
-#define _di_f_int8s_decrease_by_
-#define _di_f_int8s_increase_
-#define _di_f_int8s_increase_by_
-#define _di_f_int8s_resize_
-#define _di_f_int8ss_adjust_
-#define _di_f_int8ss_append_
-#define _di_f_int8ss_append_all_
-#define _di_f_int8ss_decimate_by_
-#define _di_f_int8ss_decrease_by_
-#define _di_f_int8ss_increase_
-#define _di_f_int8ss_increase_by_
-#define _di_f_int8ss_resize_
-#define _di_f_int8ss_t_
-#define _di_f_int8_t_
-#define _di_f_number_unsigneds_adjust_
-#define _di_f_number_unsigneds_append_
-#define _di_f_number_unsigneds_append_all_
-#define _di_f_number_unsigneds_decimate_by_
-#define _di_f_number_unsigneds_decrease_by_
-#define _di_f_number_unsigneds_increase_
-#define _di_f_number_unsigneds_increase_by_
-#define _di_f_number_unsigneds_resize_
-#define _di_f_number_unsignedss_adjust_
-#define _di_f_number_unsignedss_append_
-#define _di_f_number_unsignedss_append_all_
-#define _di_f_number_unsignedss_decimate_by_
-#define _di_f_number_unsignedss_decrease_by_
-#define _di_f_number_unsignedss_increase_
-#define _di_f_number_unsignedss_increase_by_
-#define _di_f_number_unsignedss_resize_
-#define _di_f_number_unsignedss_t_
-#define _di_f_number_unsigneds_t_
-#define _di_f_polls_adjust_
-#define _di_f_polls_append_
-#define _di_f_polls_append_all_
-#define _di_f_polls_decimate_by_
-#define _di_f_polls_decrease_by_
-#define _di_f_polls_increase_
-#define _di_f_polls_increase_by_
-#define _di_f_polls_resize_
-#define _di_f_pollss_adjust_
-#define _di_f_pollss_append_
-#define _di_f_pollss_append_all_
-#define _di_f_pollss_decimate_by_
-#define _di_f_pollss_decrease_by_
-#define _di_f_pollss_increase_
-#define _di_f_pollss_increase_by_
-#define _di_f_pollss_resize_
-#define _di_f_states_adjust_
-#define _di_f_states_append_
-#define _di_f_states_append_all_
-#define _di_f_states_decimate_by_
-#define _di_f_states_decrease_by_
-#define _di_f_states_increase_
-#define _di_f_states_increase_by_
-#define _di_f_states_resize_
-#define _di_f_statess_adjust_
-#define _di_f_statess_append_
-#define _di_f_statess_append_all_
-#define _di_f_statess_decimate_by_
-#define _di_f_statess_decrease_by_
-#define _di_f_statess_increase_
-#define _di_f_statess_increase_by_
-#define _di_f_statess_resize_
-#define _di_f_statess_t_
-#define _di_f_states_t_
-#define _di_f_statuss_adjust_
-#define _di_f_statuss_append_
-#define _di_f_statuss_append_all_
-#define _di_f_statuss_decimate_by_
-#define _di_f_statuss_decrease_by_
-#define _di_f_statuss_increase_
-#define _di_f_statuss_increase_by_
-#define _di_f_statuss_resize_
-#define _di_f_statusss_adjust_
-#define _di_f_statusss_append_
-#define _di_f_statusss_append_all_
-#define _di_f_statusss_decimate_by_
-#define _di_f_statusss_decrease_by_
-#define _di_f_statusss_increase_
-#define _di_f_statusss_increase_by_
-#define _di_f_statusss_resize_
-#define _di_f_statusss_t_
-#define _di_f_statuss_t_
-#define _di_f_uint128s_adjust_
-#define _di_f_uint128s_append_
-#define _di_f_uint128s_append_all_
-#define _di_f_uint128s_decimate_by_
-#define _di_f_uint128s_decrease_by_
-#define _di_f_uint128s_increase_
-#define _di_f_uint128s_increase_by_
-#define _di_f_uint128s_resize_
-#define _di_f_uint128ss_adjust_
-#define _di_f_uint128ss_append_
-#define _di_f_uint128ss_append_all_
-#define _di_f_uint128ss_decimate_by_
-#define _di_f_uint128ss_decrease_by_
-#define _di_f_uint128ss_increase_
-#define _di_f_uint128ss_increase_by_
-#define _di_f_uint128ss_resize_
-#define _di_f_uint128ss_t_
-#define _di_f_uint128s_t_
-#define _di_f_uint16s_adjust_
-#define _di_f_uint16s_append_
-#define _di_f_uint16s_append_all_
-#define _di_f_uint16s_decimate_by_
-#define _di_f_uint16s_decrease_by_
-#define _di_f_uint16s_increase_
-#define _di_f_uint16s_increase_by_
-#define _di_f_uint16s_resize_
-#define _di_f_uint16ss_adjust_
-#define _di_f_uint16ss_append_
-#define _di_f_uint16ss_append_all_
-#define _di_f_uint16ss_decimate_by_
-#define _di_f_uint16ss_decrease_by_
-#define _di_f_uint16ss_increase_
-#define _di_f_uint16ss_increase_by_
-#define _di_f_uint16ss_resize_
-#define _di_f_uint16ss_t_
-#define _di_f_uint16s_t_
-#define _di_f_uint32s_adjust_
-#define _di_f_uint32s_append_
-#define _di_f_uint32s_append_all_
-#define _di_f_uint32s_decimate_by_
-#define _di_f_uint32s_decrease_by_
-#define _di_f_uint32s_increase_
-#define _di_f_uint32s_increase_by_
-#define _di_f_uint32s_resize_
-#define _di_f_uint32ss_adjust_
-#define _di_f_uint32ss_append_
-#define _di_f_uint32ss_append_all_
-#define _di_f_uint32ss_decimate_by_
-#define _di_f_uint32ss_decrease_by_
-#define _di_f_uint32ss_increase_
-#define _di_f_uint32ss_increase_by_
-#define _di_f_uint32ss_resize_
-#define _di_f_uint32ss_t_
-#define _di_f_uint32s_t_
-#define _di_f_uint64s_adjust_
-#define _di_f_uint64s_append_
-#define _di_f_uint64s_append_all_
-#define _di_f_uint64s_decimate_by_
-#define _di_f_uint64s_decrease_by_
-#define _di_f_uint64s_increase_
-#define _di_f_uint64s_increase_by_
-#define _di_f_uint64s_resize_
-#define _di_f_uint64ss_adjust_
-#define _di_f_uint64ss_append_
-#define _di_f_uint64ss_append_all_
-#define _di_f_uint64ss_decimate_by_
-#define _di_f_uint64ss_decrease_by_
-#define _di_f_uint64ss_increase_
-#define _di_f_uint64ss_increase_by_
-#define _di_f_uint64ss_resize_
-#define _di_f_uint64ss_t_
-#define _di_f_uint64s_t_
-#define _di_f_uint8s_adjust_
-#define _di_f_uint8s_append_
-#define _di_f_uint8s_append_all_
-#define _di_f_uint8s_decimate_by_
-#define _di_f_uint8s_decrease_by_
-#define _di_f_uint8s_increase_
-#define _di_f_uint8s_increase_by_
-#define _di_f_uint8s_resize_
-#define _di_f_uint8ss_adjust_
-#define _di_f_uint8ss_append_
-#define _di_f_uint8ss_append_all_
-#define _di_f_uint8ss_decimate_by_
-#define _di_f_uint8ss_decrease_by_
-#define _di_f_uint8ss_increase_
-#define _di_f_uint8ss_increase_by_
-#define _di_f_uint8ss_resize_
-#define _di_f_uint8ss_t_
-#define _di_f_uint8s_t_
+#define _di_f_cellss_delete_callback_
+#define _di_f_cellss_destroy_callback_
+#define _di_f_filess_delete_callback_
+#define _di_f_filess_destroy_callback_
+#define _di_f_fll_ids_delete_callback_
+#define _di_f_fll_ids_destroy_callback_
+#define _di_f_fll_idss_delete_callback_
+#define _di_f_fll_idss_destroy_callback_
+#define _di_f_int128ss_delete_callback_
+#define _di_f_int128ss_destroy_callback_
+#define _di_f_int16ss_delete_callback_
+#define _di_f_int16ss_destroy_callback_
+#define _di_f_int32ss_delete_callback_
+#define _di_f_int32ss_destroy_callback_
+#define _di_f_int64ss_delete_callback_
+#define _di_f_int64ss_destroy_callback_
+#define _di_f_int8ss_delete_callback_
+#define _di_f_int8ss_destroy_callback_
+#define _di_f_number_signedss_delete_callback_
+#define _di_f_number_signedss_destroy_callback_
+#define _di_f_number_unsignedss_delete_callback_
+#define _di_f_number_unsignedss_destroy_callback_
+#define _di_f_pollss_delete_callback_
+#define _di_f_pollss_destroy_callback_
+#define _di_f_statess_delete_callback_
+#define _di_f_statess_destroy_callback_
+#define _di_f_statusss_delete_callback_
+#define _di_f_statusss_destroy_callback_
+#define _di_f_uint128ss_delete_callback_
+#define _di_f_uint128ss_destroy_callback_
+#define _di_f_uint16ss_delete_callback_
+#define _di_f_uint16ss_destroy_callback_
+#define _di_f_uint32ss_delete_callback_
+#define _di_f_uint32ss_destroy_callback_
+#define _di_f_uint64ss_delete_callback_
+#define _di_f_uint64ss_destroy_callback_
+#define _di_f_uint8ss_delete_callback_
+#define _di_f_uint8ss_destroy_callback_
index 4211a61cdc10f7959c48f3248ead73089812eb94..c8a8e194b94f3c24c4376a5cc8007d2daca43d9d 100644 (file)
 #define _di_f_utf_string_append_assure_
 #define _di_f_utf_string_append_assure_nulless_
 #define _di_f_utf_string_append_nulless_
-#define _di_f_utf_string_dynamic_adjust_
 #define _di_f_utf_string_dynamic_append_
 #define _di_f_utf_string_dynamic_append_assure_
 #define _di_f_utf_string_dynamic_append_assure_nulless_
 #define _di_f_utf_string_dynamic_append_nulless_
-#define _di_f_utf_string_dynamic_decimate_by_
-#define _di_f_utf_string_dynamic_decrease_by_
-#define _di_f_utf_string_dynamic_increase_
-#define _di_f_utf_string_dynamic_increase_by_
 #define _di_f_utf_string_dynamic_mash_
 #define _di_f_utf_string_dynamic_mash_nulless_
 #define _di_f_utf_string_dynamic_mish_
 #define _di_f_utf_string_dynamic_prepend_assure_
 #define _di_f_utf_string_dynamic_prepend_assure_nulless_
 #define _di_f_utf_string_dynamic_prepend_nulless_
-#define _di_f_utf_string_dynamic_resize_
-#define _di_f_utf_string_dynamics_adjust_
 #define _di_f_utf_string_dynamics_append_
 #define _di_f_utf_string_dynamics_append_all_
-#define _di_f_utf_string_dynamics_decimate_by_
-#define _di_f_utf_string_dynamics_decrease_by_
+#define _di_f_utf_string_dynamics_delete_callback_
+#define _di_f_utf_string_dynamics_destroy_callback_
 #define _di_f_utf_string_dynamic_seek_line_
 #define _di_f_utf_string_dynamic_seek_line_to_
 #define _di_f_utf_string_dynamic_seek_to_
-#define _di_f_utf_string_dynamics_increase_
-#define _di_f_utf_string_dynamics_increase_by_
-#define _di_f_utf_string_dynamics_resize_
-#define _di_f_utf_string_dynamicss_adjust_
 #define _di_f_utf_string_dynamicss_append_
 #define _di_f_utf_string_dynamicss_append_all_
-#define _di_f_utf_string_dynamicss_decimate_by_
-#define _di_f_utf_string_dynamicss_decrease_by_
-#define _di_f_utf_string_dynamicss_increase_
-#define _di_f_utf_string_dynamicss_increase_by_
-#define _di_f_utf_string_dynamicss_resize_
+#define _di_f_utf_string_dynamicss_delete_callback_
+#define _di_f_utf_string_dynamicss_destroy_callback_
 #define _di_f_utf_string_dynamicss_t_
 #define _di_f_utf_string_dynamics_t_
 #define _di_f_utf_string_dynamic_t_
 #define _di_f_utf_string_dynamic_terminate_
 #define _di_f_utf_string_dynamic_terminate_after_
 #define _di_f_utf_string_empty_s_
-#define _di_f_utf_string_map_multis_adjust_
 #define _di_f_utf_string_map_multis_append_
 #define _di_f_utf_string_map_multis_append_all_
-#define _di_f_utf_string_map_multis_decimate_by_
-#define _di_f_utf_string_map_multis_decrease_by_
-#define _di_f_utf_string_map_multis_increase_
-#define _di_f_utf_string_map_multis_increase_by_
-#define _di_f_utf_string_map_multis_resize_
-#define _di_f_utf_string_map_multiss_adjust_
+#define _di_f_utf_string_map_multis_delete_callback_
+#define _di_f_utf_string_map_multis_destroy_callback_
 #define _di_f_utf_string_map_multiss_append_
 #define _di_f_utf_string_map_multiss_append_all_
-#define _di_f_utf_string_map_multiss_decimate_by_
-#define _di_f_utf_string_map_multiss_decrease_by_
-#define _di_f_utf_string_map_multiss_increase_
-#define _di_f_utf_string_map_multiss_increase_by_
-#define _di_f_utf_string_map_multiss_resize_
+#define _di_f_utf_string_map_multiss_delete_callback_
+#define _di_f_utf_string_map_multiss_destroy_callback_
 #define _di_f_utf_string_map_multiss_t_
 #define _di_f_utf_string_map_multis_t_
 #define _di_f_utf_string_map_multi_t_
-#define _di_f_utf_string_maps_adjust_
 #define _di_f_utf_string_maps_append_
 #define _di_f_utf_string_maps_append_all_
-#define _di_f_utf_string_maps_decimate_by_
-#define _di_f_utf_string_maps_decrease_by_
-#define _di_f_utf_string_maps_increase_
-#define _di_f_utf_string_maps_increase_by_
-#define _di_f_utf_string_maps_resize_
-#define _di_f_utf_string_mapss_adjust_
+#define _di_f_utf_string_maps_delete_callback_
+#define _di_f_utf_string_maps_destroy_callback_
 #define _di_f_utf_string_mapss_append_
 #define _di_f_utf_string_mapss_append_all_
-#define _di_f_utf_string_mapss_decimate_by_
-#define _di_f_utf_string_mapss_decrease_by_
-#define _di_f_utf_string_mapss_increase_
-#define _di_f_utf_string_mapss_increase_by_
-#define _di_f_utf_string_mapss_resize_
+#define _di_f_utf_string_mapss_delete_callback_
+#define _di_f_utf_string_mapss_destroy_callback_
 #define _di_f_utf_string_mapss_t_
 #define _di_f_utf_string_maps_t_
 #define _di_f_utf_string_map_t_
 #define _di_f_utf_string_statics_t_
 #define _di_f_utf_string_static_t_
 #define _di_f_utf_string_t_
-#define _di_f_utf_string_triples_adjust_
 #define _di_f_utf_string_triples_append_
 #define _di_f_utf_string_triples_append_all_
-#define _di_f_utf_string_triples_decimate_by_
-#define _di_f_utf_string_triples_decrease_by_
-#define _di_f_utf_string_triples_increase_
-#define _di_f_utf_string_triples_increase_by_
-#define _di_f_utf_string_triples_resize_
-#define _di_f_utf_string_tripless_adjust_
+#define _di_f_utf_string_triples_delete_callback_
+#define _di_f_utf_string_triples_destroy_callback_
 #define _di_f_utf_string_tripless_append_
 #define _di_f_utf_string_tripless_append_all_
-#define _di_f_utf_string_tripless_decimate_by_
-#define _di_f_utf_string_tripless_decrease_by_
-#define _di_f_utf_string_tripless_increase_
-#define _di_f_utf_string_tripless_increase_by_
-#define _di_f_utf_string_tripless_resize_
+#define _di_f_utf_string_tripless_delete_callback_
+#define _di_f_utf_string_tripless_destroy_callback_
 #define _di_f_utf_string_tripless_t_
 #define _di_f_utf_string_triples_t_
 #define _di_f_utf_string_triple_t_
index c613f14ad1826d8dd79ba7596fe3d92e509b61f6..b64a80bc4c74ac3adbe6c731cfdae7e687667dae 100644 (file)
@@ -1,3 +1,6 @@
+#define _di_f_fss_payload_header_write_d_
+#define _di_f_fss_payload_header_write_internal_t_
+#define _di_f_fss_payload_header_write_state_t_
 #define _di_fl_fss_basic_content_read_
 #define _di_fl_fss_basic_content_write_
 #define _di_fl_fss_basic_list_content_read_
@@ -18,3 +21,5 @@
 #define _di_fl_fss_extended_list_object_write_
 #define _di_fl_fss_extended_object_read_
 #define _di_fl_fss_extended_object_write_
+#define _di_fl_fss_payload_header_map_
+#define _di_fl_fss_payload_header_write_
index 371f7fdd2f57e0c20ba520c8f38466d1d7d3a6f8..a9f68d08093aae81bdd4ec4899adc4cc2ad5822d 100644 (file)
@@ -1,20 +1,2 @@
 #define _di_fl_status_string_from_
-#define _di_f_status_access_s_
-#define _di_f_status_array_s_
-#define _di_f_status_available_s_
-#define _di_f_status_basic_s_
-#define _di_f_status_boolean_s_
-#define _di_f_status_buffer_s_
-#define _di_f_status_busy_s_
-#define _di_f_status_compare_s_
-#define _di_f_status_directory_s_
-#define _di_f_status_end_s_
 #define _di_f_status_file_s_
-#define _di_f_status_filesystem_s_
-#define _di_f_status_network_s_
-#define _di_f_status_number_s_
-#define _di_f_status_process_s_
-#define _di_f_status_return_s_
-#define _di_f_status_signal_s_
-#define _di_f_status_socket_s_
-#define _di_f_status_terminal_s_
index 55235d13854bd3cc8e53fc825dfde882b9254a31..68b0703df35bdcce045e3b7c389782bdec75ef78 100644 (file)
 #define _di_fll_program_parameter_filename_s_
 #define _di_fll_program_parameter_filenames_s_
 #define _di_fll_program_parameter_process_context_
+#define _di_fll_program_parameter_process_context_standard_
 #define _di_fll_program_parameter_process_empty_
 #define _di_fll_program_parameter_process_verbosity_
+#define _di_fll_program_parameter_process_verbosity_standard_
 #define _di_fll_program_parameter_s_
 #define _di_fll_program_print_copyright_
 #define _di_fll_program_print_error_missing_file_
index 0ffaf7b64055d2d2c0eaf986119651ad710e602f..1ddd942fb79974954f4e5194b6769d947c819b4b 100644 (file)
@@ -68,6 +68,7 @@ build_sources_library string/map.c string/maps.c string/mapss.c
 build_sources_library string/map_multi.c string/map_multis.c string/map_multiss.c
 build_sources_library string/quantity.c string/quantitys.c string/quantityss.c
 build_sources_library string/range.c string/ranges.c string/rangess.c
+build_sources_library string/range_double.c string/range_doubles.c string/range_doubless.c
 build_sources_library string/static.c string/statics.c string/staticss.c
 build_sources_library string/triple.c string/triples.c string/tripless.c
 build_sources_library time.c
@@ -117,6 +118,7 @@ build_sources_headers string/map.h string/maps.h string/mapss.h
 build_sources_headers string/map_multi.h string/map_multis.h string/map_multiss.h
 build_sources_headers string/quantity.h string/quantitys.h string/quantityss.h
 build_sources_headers string/range.h string/ranges.h string/rangess.h
+build_sources_headers string/range_double.h string/range_doubles.h string/range_doubless.h
 build_sources_headers string/static.h string/statics.h string/staticss.h
 build_sources_headers string/triple.h string/triples.h string/tripless.h
 build_sources_headers time.h
index 520d4ee6e7ccbdf6380fd9ee952311abf5f82ef8..54839ef1062dc22b67dda5b0efcd5e19814d406c 100644 (file)
@@ -68,6 +68,7 @@ build_sources_library level_0/string/map.c level_0/string/maps.c level_0/string/
 build_sources_library level_0/string/map_multi.c level_0/string/map_multis.c level_0/string/map_multiss.c
 build_sources_library level_0/string/quantity.c level_0/string/quantitys.c level_0/string/quantityss.c
 build_sources_library level_0/string/range.c level_0/string/ranges.c level_0/string/rangess.c
+build_sources_library level_0/string/range_double.c level_0/string/range_doubles.c level_0/string/range_doubless.c
 build_sources_library level_0/string/static.c level_0/string/statics.c level_0/string/staticss.c
 build_sources_library level_0/string/triple.c level_0/string/triples.c level_0/string/tripless.c
 build_sources_library level_0/time.c
@@ -138,6 +139,7 @@ build_sources_headers level_0/string/map.h level_0/string/maps.h level_0/string/
 build_sources_headers level_0/string/map_multi.h level_0/string/map_multis.h level_0/string/map_multiss.h
 build_sources_headers level_0/string/quantity.h level_0/string/quantitys.h level_0/string/quantityss.h
 build_sources_headers level_0/string/range.h level_0/string/ranges.h level_0/string/rangess.h
+build_sources_headers level_0/string/range_double.h level_0/string/range_doubles.h level_0/string/range_doubless.h
 build_sources_headers level_0/string/static.h level_0/string/statics.h level_0/string/staticss.h
 build_sources_headers level_0/string/triple.h level_0/string/triples.h level_0/string/tripless.h
 build_sources_headers level_0/time.h
index 8d20155aadf3d45d8065a99b4d7d02c9e56fe629..a779d202598f514bdaccd35e520e1107dfd53d6d 100644 (file)
 #define _di_f_fss_nestss_t_
 #define _di_f_fss_nests_t_
 #define _di_f_fss_nest_t_
+#define _di_f_fss_payload_comment_header_begin_s_
+#define _di_f_fss_payload_comment_header_end_s_
 #define _di_f_fss_payload_comment_header_s_
+#define _di_f_fss_payload_header_map_e_
+#define _di_f_fss_payload_object_end_s_
 #define _di_f_fss_payload_object_header_s_
+#define _di_f_fss_payload_object_id_s_
+#define _di_f_fss_payload_object_length_s_
+#define _di_f_fss_payload_object_name_s_
+#define _di_f_fss_payload_object_part_s_
 #define _di_f_fss_payload_object_payload_s_
 #define _di_f_fss_payload_object_signature_s_
+#define _di_f_fss_payload_object_size_s_
+#define _di_f_fss_payload_object_status_s_
+#define _di_f_fss_payload_object_total_s_
+#define _di_f_fss_payload_object_type_s_
 #define _di_f_fss_payload_s_
-#define _di_f_fss_payload_write_e_
 //#define _di_f_fss_placeholder_s_
 //#define _di_f_fss_quote_type_e_
 #define _di_f_fss_s_
 #define _di_fl_fss_extended_list_object_write_
 //#define _di_fl_fss_extended_object_read_
 #define _di_fl_fss_extended_object_write_
+#define _di_fl_fss_payload_header_map_
 #define _di_fl_fss_payload_header_write_
 //#define _di_fl_iki_read_
 //#define _di_f_limit_process_
 #define _di_f_string_quantityss_t_
 #define _di_f_string_quantitys_t_
 #define _di_f_string_quantity_t_
+#define _di_f_string_range_double_empty_c_
+#define _di_f_string_range_doubles_append_
+#define _di_f_string_range_doubles_append_all_
+#define _di_f_string_range_doubless_append_
+#define _di_f_string_range_doubless_append_all_
+#define _di_f_string_range_doubless_delete_callback_
+#define _di_f_string_range_doubless_destroy_callback_
+#define _di_f_string_range_doubless_t_
+#define _di_f_string_range_doubles_t_
+#define _di_f_string_range_double_t_
 #define _di_f_string_range_empty_c_
 #define _di_f_string_ranges_append_
 #define _di_f_string_ranges_append_all_
index 653b525124a02469dc1eae06f5d66f412852d8c6..4379a5340948876d6e66479a2441617904636950 100644 (file)
@@ -26,6 +26,9 @@
 #include <fll/level_0/string/range.h>
 #include <fll/level_0/string/ranges.h>
 #include <fll/level_0/string/rangess.h>
+#include <fll/level_0/string/range_double.h>
+#include <fll/level_0/string/range_doubles.h>
+#include <fll/level_0/string/range_doubless.h>
 #include <fll/level_0/string/static.h>
 #include <fll/level_0/string/statics.h>
 #include <fll/level_0/string/staticss.h>
diff --git a/level_0/f_string/c/string/range_double.c b/level_0/f_string/c/string/range_double.c
new file mode 100644 (file)
index 0000000..25125f4
--- /dev/null
@@ -0,0 +1,14 @@
+#include "../string.h"
+#include "../private-string.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_f_string_range_double_empty_c_
+  const f_string_range_double_t f_string_range_double_empty_c = { 1, 0 };
+#endif // _di_f_string_range_double_empty_c_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_0/f_string/c/string/range_double.h b/level_0/f_string/c/string/range_double.h
new file mode 100644 (file)
index 0000000..5a8247a
--- /dev/null
@@ -0,0 +1,65 @@
+/**
+ * FLL - Level 0
+ *
+ * Project: String
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Defines range string data.
+ *
+ * This is auto-included by string.h and should not need to be explicitly included.
+ */
+#ifndef _F_string_range_double_h
+#define _F_string_range_double_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * A structure designating two start and stop ranges for some string(s).
+ *
+ * In general, this project uses the start and stop position inclusively, meaning that a range of 0 to 1 would include positions 0 and position 1.
+ * Therefore, a range from 0 to 0 would be include position 0.
+ * Set start to some value larger than stop to designate that there is no range (such as start = 1, stop = 0).
+ *
+ * Properties:
+ *   - start_1: The first start position.
+ *   - stop_1:  The first stop position.
+ *   - start_2: The second start position.
+ *   - stop_2:  The second stop position.
+ */
+#ifndef _di_f_string_range_double_t_
+  typedef struct {
+    f_number_unsigned_t start_1;
+    f_number_unsigned_t stop_1;
+    f_number_unsigned_t start_2;
+    f_number_unsigned_t stop_2;
+  } f_string_range_double_t;
+
+  #define f_string_range_double_t_initialize { 1, 0, 1, 0 }
+
+  #define macro_f_string_range_double_t_initialize_1(start_1, stop_1, start_2, stop_2) { start_1, stop_1, start_2, stop_2 }
+  #define macro_f_string_range_double_t_initialize_2(length_1, length_2) { length_1 ? 0 : 1, length_1 ? length_1 - 1 : 0, length_2 ? 0 : 1, length_2 ? length_2 - 1 : 0 }
+
+  #define macro_f_string_range_double_t_clear(range_1, range_2) \
+    range_1.start = 1; \
+    range_1.stop = 0 \
+    range_2.start = 1; \
+    range_2.stop = 0;
+#endif // _di_f_string_range_double_t_
+
+/**
+ * Provide a static empty range.
+ *
+ * This is intended to represent an empty or disabled range.
+ */
+#ifndef _di_f_string_range_double_empty_c_
+  extern const f_string_range_double_t f_string_range_double_empty_c;
+#endif // _di_f_string_range_double_empty_c_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _F_string_range_double_h
diff --git a/level_0/f_string/c/string/range_doubles.c b/level_0/f_string/c/string/range_doubles.c
new file mode 100644 (file)
index 0000000..0726b59
--- /dev/null
@@ -0,0 +1,55 @@
+#include "../string.h"
+#include "../private-string.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_f_string_range_doubles_append_
+  f_status_t f_string_range_doubles_append(const f_string_range_double_t source, f_string_range_doubles_t * const destination) {
+    #ifndef _di_level_0_parameter_checking_
+      if (!destination) return F_status_set_error(F_parameter);
+    #endif // _di_level_0_parameter_checking_
+
+    {
+      const f_status_t status = f_memory_array_increase(F_memory_default_allocation_small_d, sizeof(f_string_range_double_t), (void **) &destination->array, &destination->used, &destination->size);
+      if (F_status_is_error(status)) return status;
+    }
+
+    destination->array[destination->used].start_1 = source.start_1;
+    destination->array[destination->used].stop_1 = source.stop_1;
+    destination->array[destination->used].start_2 = source.start_2;
+    destination->array[destination->used++].stop_2 = source.stop_2;
+
+    return F_okay;
+  }
+#endif // _di_f_string_range_doubles_append_
+
+#ifndef _di_f_string_range_doubles_append_all_
+  f_status_t f_string_range_doubles_append_all(const f_string_range_doubles_t source, f_string_range_doubles_t * const destination) {
+    #ifndef _di_level_0_parameter_checking_
+      if (!destination) return F_status_set_error(F_parameter);
+    #endif // _di_level_0_parameter_checking_
+
+    if (!source.used) return F_data_not;
+
+    {
+      const f_status_t status = f_memory_array_increase_by(source.used, sizeof(f_string_range_double_t), (void **) &destination->array, &destination->used, &destination->size);
+      if (F_status_is_error(status)) return status;
+    }
+
+    for (f_number_unsigned_t i = 0; i < source.used; ++i) {
+
+      destination->array[destination->used].start_1 = source.array[i].start_1;
+      destination->array[destination->used].stop_1 = source.array[i].stop_1;
+      destination->array[destination->used].start_2 = source.array[i].start_2;
+      destination->array[destination->used++].stop_2 = source.array[i].stop_2;
+    } // for
+
+    return F_okay;
+  }
+#endif // _di_f_string_range_doubles_append_all_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_0/f_string/c/string/range_doubles.h b/level_0/f_string/c/string/range_doubles.h
new file mode 100644 (file)
index 0000000..1011daf
--- /dev/null
@@ -0,0 +1,90 @@
+/**
+ * FLL - Level 0
+ *
+ * Project: String
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Defines range string data.
+ *
+ * This is auto-included by string.h and should not need to be explicitly included.
+ */
+#ifndef _F_string_range_doubles_h
+#define _F_string_range_doubles_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * An array of string ranges.
+ *
+ * Properties:
+ *   - array: The array of string ranges.
+ *   - size:  Total amount of allocated space.
+ *   - used:  Total number of allocated spaces used.
+ */
+#ifndef _di_f_string_range_doubles_t_
+  typedef struct {
+    f_string_range_double_t *array;
+
+    f_number_unsigned_t size;
+    f_number_unsigned_t used;
+  } f_string_range_doubles_t;
+
+  #define f_string_range_doubles_t_initialize { 0, 0, 0 }
+
+  #define macro_f_string_range_doubles_t_initialize_1(array, size, used) { array, size, used }
+  #define macro_f_string_range_doubles_t_initialize_2(array, length) { array, length, length }
+
+  #define macro_f_string_range_doubles_t_clear(ranges) \
+    ranges.array = 0; \
+    ranges.size = 0; \
+    ranges.used = 0;
+#endif // _di_f_string_range_doubles_t_
+
+/**
+ * Append the single source range onto the destination.
+ *
+ * @param source
+ *   The source range to append.
+ * @param destination
+ *   The destination ranges the source is appended onto.
+ *
+ * @return
+ *   F_okay on success.
+ *   F_data_not on success, but there is nothing to append (size == 0).
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_resize().
+ */
+#ifndef _di_f_string_range_doubles_append_
+  extern f_status_t f_string_range_doubles_append(const f_string_range_double_t source, f_string_range_doubles_t * const destination);
+#endif // _di_f_string_range_doubles_append_
+
+/**
+ * Append the source ranges onto the destination.
+ *
+ * @param source
+ *   The source ranges to append.
+ * @param destination
+ *   The destination ranges the source is appended onto.
+ *
+ * @return
+ *   F_okay on success.
+ *   F_data_not on success, but there is nothing to append (size == 0).
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_resize().
+ */
+#ifndef _di_f_string_range_doubles_append_all_
+  extern f_status_t f_string_range_doubles_append_all(const f_string_range_doubles_t source, f_string_range_doubles_t * const destination);
+#endif // _di_f_string_range_doubles_append_all_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _F_string_range_doubles_h
diff --git a/level_0/f_string/c/string/range_doubless.c b/level_0/f_string/c/string/range_doubless.c
new file mode 100644 (file)
index 0000000..8d2b4f2
--- /dev/null
@@ -0,0 +1,124 @@
+#include "../string.h"
+#include "../private-string.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_f_string_range_doubless_append_
+  f_status_t f_string_range_doubless_append(const f_string_range_doubles_t source, f_string_range_doubless_t * const destination) {
+    #ifndef _di_level_0_parameter_checking_
+      if (!destination) return F_status_set_error(F_parameter);
+    #endif // _di_level_0_parameter_checking_
+
+    if (!source.used) return F_data_not;
+
+    {
+      f_status_t status = f_memory_array_increase(F_memory_default_allocation_small_d, sizeof(f_string_range_doubles_t), (void **) &destination->array, &destination->used, &destination->size);
+      if (F_status_is_error(status)) return status;
+
+      f_string_range_doubles_t * const destination_inner = &destination->array[destination->used];
+      destination_inner->used = 0;
+
+      if (source.used) {
+        status = f_memory_array_increase_by(source.used, sizeof(f_string_range_double_t), (void **) &destination_inner->array, &destination_inner->used, &destination_inner->size);
+        if (F_status_is_error(status)) return status;
+
+        for (f_number_unsigned_t i = 0; i < source.used; ++i, ++destination_inner->used) {
+
+          destination_inner->array[destination_inner->used].start_1 = source.array[i].start_1;
+          destination_inner->array[destination_inner->used].stop_1 = source.array[i].stop_1;
+          destination_inner->array[destination_inner->used].start_2 = source.array[i].start_2;
+          destination_inner->array[destination_inner->used].stop_2 = source.array[i].stop_2;
+        } // for
+      }
+    }
+
+    ++destination->used;
+
+    return F_okay;
+  }
+#endif // _di_f_string_range_doubless_append_
+
+#ifndef _di_f_string_range_doubless_append_all_
+  f_status_t f_string_range_doubless_append_all(const f_string_range_doubless_t source, f_string_range_doubless_t * const destination) {
+    #ifndef _di_level_0_parameter_checking_
+      if (!destination) return F_status_set_error(F_parameter);
+    #endif // _di_level_0_parameter_checking_
+
+    if (!source.used) return F_data_not;
+
+    {
+      f_status_t status = f_memory_array_increase_by(source.used, sizeof(f_string_range_doubles_t), (void **) &destination->array, &destination->used, &destination->size);
+      if (F_status_is_error(status)) return status;
+
+      f_string_range_doubles_t * destination_inner = 0;
+      f_number_unsigned_t j = 0;
+
+      for (f_number_unsigned_t i = 0; i < source.used; ++i, ++destination->used) {
+
+        destination_inner = &destination->array[destination->used];
+        destination_inner->used = 0;
+
+        if (source.array[i].used) {
+          status = f_memory_array_increase_by(source.array[i].used, sizeof(f_string_range_double_t), (void **) &destination->array[destination->used].array, &destination->array[destination->used].used, &destination->array[destination->used].size);
+          if (F_status_is_error(status)) return status;
+
+          for (j = 0; j < source.array[i].used; ++j, ++destination_inner->used) {
+
+            destination_inner->array[destination_inner->used].start_1 = source.array[i].array[j].start_1;
+            destination_inner->array[destination_inner->used].stop_1 = source.array[i].array[j].stop_1;
+            destination_inner->array[destination_inner->used].start_2 = source.array[i].array[j].start_2;
+            destination_inner->array[destination_inner->used].stop_2 = source.array[i].array[j].stop_2;
+          } // for
+        }
+      } // for
+    }
+
+    return F_okay;
+  }
+#endif // _di_f_string_range_doubless_append_all_
+
+#ifndef _di_f_string_range_doubless_delete_callback_
+  f_status_t f_string_range_doubless_delete_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const void_array) {
+
+    {
+      f_string_range_doubles_t * const array = (f_string_range_doubles_t *) void_array;
+      f_status_t status = F_okay;
+
+      for (f_number_unsigned_t i = start; i < stop; ++i) {
+
+        if (array[i].size && array[i].array) {
+          status = f_memory_array_resize(0, sizeof(f_string_range_double_t), (void **) &array[i].array, &array[i].used, &array[i].size);
+          if (F_status_is_error(status)) return status;
+        }
+      } // for
+    }
+
+    return F_okay;
+  }
+#endif // _di_f_string_range_doubless_delete_callback_
+
+#ifndef _di_f_string_range_doubless_destroy_callback_
+  f_status_t f_string_range_doubless_destroy_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const void_array) {
+
+    {
+      f_string_range_doubles_t * const array = (f_string_range_doubles_t *) void_array;
+      f_status_t status = F_okay;
+
+      for (f_number_unsigned_t i = start; i < stop; ++i) {
+
+        if (array[i].size && array[i].array) {
+          status = f_memory_array_adjust(0, sizeof(f_string_range_double_t), (void **) &array[i].array, &array[i].used, &array[i].size);
+          if (F_status_is_error(status)) return status;
+        }
+      } // for
+    }
+
+    return F_okay;
+  }
+#endif // _di_f_string_range_doubless_destroy_callback_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_0/f_string/c/string/range_doubless.h b/level_0/f_string/c/string/range_doubless.h
new file mode 100644 (file)
index 0000000..b7619e2
--- /dev/null
@@ -0,0 +1,146 @@
+/**
+ * FLL - Level 0
+ *
+ * Project: String
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Defines range string data.
+ *
+ * This is auto-included by string.h and should not need to be explicitly included.
+ */
+#ifndef _F_string_range_doubless_h
+#define _F_string_range_doubless_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * This holds an array of f_string_range_doubles_t.
+ *
+ * Properties:
+ *   - array: The array of ranges arrays.
+ *   - size:  Total amount of allocated space.
+ *   - used:  Total number of allocated spaces used.
+ */
+#ifndef _di_f_string_range_doubless_t_
+  typedef struct {
+    f_string_range_doubles_t *array;
+
+    f_number_unsigned_t size;
+    f_number_unsigned_t used;
+  } f_string_range_doubless_t;
+
+  #define f_string_range_doubless_t_initialize { 0, 0, 0 }
+
+  #define macro_f_string_range_doubless_t_initialize_1(array, size, used) { array, size, used }
+  #define macro_f_string_range_doubless_t_initialize_2(array, length) { array, length, length }
+
+  #define macro_f_string_range_doubless_t_clear(rangess) \
+    rangess.array = 0; \
+    rangess.size = 0; \
+    rangess.used = 0;
+#endif // _di_f_string_range_doubless_t_
+
+/**
+ * Append the single source ranges onto the destination.
+ *
+ * @param source
+ *   The source ranges to append.
+ * @param destination
+ *   The destination rangess the source is appended onto.
+ *
+ * @return
+ *   F_okay on success.
+ *   F_data_not on success, but there is nothing to append (size == 0).
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_resize().
+ */
+#ifndef _di_f_string_range_doubless_append_
+  extern f_status_t f_string_range_doubless_append(const f_string_range_doubles_t source, f_string_range_doubless_t * const destination);
+#endif // _di_f_string_range_doubless_append_
+
+/**
+ * Append the source rangess onto the destination.
+ *
+ * @param source
+ *   The source rangess to append.
+ * @param destination
+ *   The destination rangess the source is appended onto.
+ *
+ * @return
+ *   F_okay on success.
+ *   F_data_not on success, but there is nothing to append (size == 0).
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_resize().
+ */
+#ifndef _di_f_string_range_doubless_append_all_
+  extern f_status_t f_string_range_doubless_append_all(const f_string_range_doubless_t source, f_string_range_doubless_t * const destination);
+#endif // _di_f_string_range_doubless_append_all_
+
+/**
+ * A callback intended to be passed to f_memory_arrayss_resize() for an f_string_range_doubless_t structure.
+ *
+ * This is only called when shrinking the array and generally should perform deallocations.
+ *
+ * This does not do parameter checking.
+ *
+ * @param start
+ *   The inclusive start position in the array to start deleting.
+ * @param stop
+ *   The exclusive stop position in the array to stop deleting.
+ * @param array
+ *   The array structure to delete all values of.
+ *   Must not be NULL.
+ *
+ * @return
+ *   F_okay on success.
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
+ */
+#ifndef _di_f_string_range_doubless_delete_callback_
+  extern f_status_t f_string_range_doubless_delete_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const array);
+#endif // _di_f_string_range_doubless_delete_callback_
+
+/**
+ * A callback intended to be passed to f_memory_arrayss_adjust() for an f_string_range_doubless_t structure.
+ *
+ * This is only called when shrinking the array and generally should perform deallocations.
+ *
+ * This does not do parameter checking.
+ *
+ * @param start
+ *   The inclusive start position in the array to start deleting.
+ * @param stop
+ *   The exclusive stop position in the array to stop deleting.
+ * @param array
+ *   The array structure to delete all values of.
+ *   Must not be NULL.
+ *
+ * @return
+ *   F_okay on success.
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *
+ * @see f_memory_array_adjust()
+ */
+#ifndef _di_f_string_range_doubless_destroy_callback_
+  extern f_status_t f_string_range_doubless_destroy_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const array);
+#endif // _di_f_string_range_doubless_destroy_callback_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _F_string_range_doubless_h
index e7c69c141b3fc7b0b0ace00cdf64bd2889b50b6a..15fca2952ad0866cf96f0080e4713c31ea51de7a 100644 (file)
@@ -39,6 +39,7 @@ build_sources_library string/map.c string/maps.c string/mapss.c
 build_sources_library string/map_multi.c string/map_multis.c string/map_multiss.c
 build_sources_library string/quantity.c string/quantitys.c string/quantityss.c
 build_sources_library string/range.c string/ranges.c string/rangess.c
+build_sources_library string/range_double.c string/range_doubles.c string/range_doubless.c
 build_sources_library string/static.c string/statics.c string/staticss.c
 build_sources_library string/triple.c string/triples.c string/tripless.c
 
@@ -48,6 +49,7 @@ build_sources_headers string/map.h string/maps.h string/mapss.h
 build_sources_headers string/map_multi.h string/map_multis.h string/map_multiss.h
 build_sources_headers string/quantity.h string/quantitys.h string/quantityss.h
 build_sources_headers string/range.h string/ranges.h string/rangess.h
+build_sources_headers string/range_double.h string/range_double.h string/range_doubless.h
 build_sources_headers string/static.h string/statics.h string/staticss.h
 build_sources_headers string/triple.h string/triples.h string/tripless.h
 
index 9f7f236bab4b0397e86c1d0ef5762efbd95842ba..0d50e9bf7bcb01c0750074ffbbb4780fb706cca8 100644 (file)
@@ -27,6 +27,7 @@ build_sources_library string/map.c string/maps.c string/mapss.c
 build_sources_library string/map_multi.c string/map_multis.c string/map_multiss.c
 build_sources_library string/quantity.c string/quantitys.c string/quantityss.c
 build_sources_library string/range.c string/ranges.c string/rangess.c
+build_sources_library string/range_double.c string/range_doubles.c string/range_doubless.c
 build_sources_library string/static.c string/statics.c string/staticss.c
 build_sources_library string/triple.c string/triples.c string/tripless.c
 build_sources_library ../../tests/unit/c/mock-string.c
@@ -37,6 +38,7 @@ build_sources_headers string/map.h string/maps.h string/mapss.h
 build_sources_headers string/map_multi.h string/map_multis.h string/map_multiss.h
 build_sources_headers string/quantity.h string/quantitys.h string/quantityss.h
 build_sources_headers string/range.h string/ranges.h string/rangess.h
+build_sources_headers string/range_double.h string/range_doubles.h string/range_doubless.h
 build_sources_headers string/static.h string/statics.h string/staticss.h
 build_sources_headers string/triple.h string/triples.h string/tripless.h
 
index 03af2d4560314c047b523ce39bea109f763214a0..907eb950b3230b09e05c0172e9f6124cbba26cb7 100644 (file)
@@ -52,6 +52,8 @@ build_sources_program test-string-quantitys_append.c test-string-quantitys_appen
 build_sources_program test-string-quantityss_delete_callback.c test-string-quantityss_destroy_callback.c
 build_sources_program test-string-ranges_append.c test-string-ranges_append_all.c test-string-rangess_append.c test-string-rangess_append_all.c
 build_sources_program test-string-rangess_delete_callback.c test-string-rangess_destroy_callback.c
+build_sources_program test-string-range_doubles_append.c test-string-range_doubles_append_all.c test-string-range_doubless_append.c test-string-range_doubless_append_all.c
+build_sources_program test-string-range_doubless_delete_callback.c test-string-range_doubless_destroy_callback.c
 build_sources_program test-string-seek_line.c test-string-seek_line_to.c test-string-seek_to.c
 build_sources_program test-string-triples_append.c test-string-triples_append_all.c test-string-tripless_append.c test-string-tripless_append_all.c
 build_sources_program test-string-triples_delete_callback.c test-string-triples_destroy_callback.c
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubles_append.c b/level_0/f_string/tests/unit/c/test-string-range_doubles_append.c
new file mode 100644 (file)
index 0000000..4182e73
--- /dev/null
@@ -0,0 +1,38 @@
+#include "test-string.h"
+#include "test-string-range_doubles_append.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void test__f_string_range_doubles_append__works(void **state) {
+
+  const f_string_range_double_t source = macro_f_string_range_double_t_initialize_1(1, 2);
+  f_string_range_doubles_t destination = f_string_range_doubles_t_initialize;
+
+  {
+    const f_status_t status = f_string_range_doubles_append(source, &destination);
+
+    assert_int_equal(status, F_okay);
+    assert_int_equal(destination.used, 1);
+    assert_int_equal(destination.array[0].start, source.start);
+    assert_int_equal(destination.array[0].stop, source.stop);
+  }
+
+  free((void *) destination.array);
+}
+
+void test__f_string_range_doubles_append__parameter_checking(void **state) {
+
+  const f_string_range_double_t data = f_string_range_double_t_initialize;
+
+  {
+    const f_status_t status = f_string_range_doubles_append(data, 0);
+
+    assert_int_equal(status, F_status_set_error(F_parameter));
+  }
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubles_append.h b/level_0/f_string/tests/unit/c/test-string-range_doubles_append.h
new file mode 100644 (file)
index 0000000..0068d8d
--- /dev/null
@@ -0,0 +1,27 @@
+/**
+ * FLL - Level 0
+ *
+ * Project: String
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Test the array types in the type project.
+ */
+#ifndef _TEST__F_string_range_doubles_append_h
+#define _TEST__F_string_range_doubles_append_h
+
+/**
+ * Test that the function works.
+ *
+ * @see f_string_range_doubles_append()
+ */
+extern void test__f_string_range_doubles_append__works(void **state);
+
+/**
+ * Test that the function correctly fails on invalid parameter.
+ *
+ * @see f_string_range_doubles_append()
+ */
+extern void test__f_string_range_doubles_append__parameter_checking(void **state);
+
+#endif // _TEST__F_string_range_doubles_append_h
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubles_append_all.c b/level_0/f_string/tests/unit/c/test-string-range_doubles_append_all.c
new file mode 100644 (file)
index 0000000..c35ed5b
--- /dev/null
@@ -0,0 +1,76 @@
+#include "test-string.h"
+#include "test-string-range_doubles_append_all.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void test__f_string_range_doubles_append_all__works(void **state) {
+
+  const int length_sources = 2;
+
+  f_string_range_double_t sources_array[] = {
+    macro_f_string_range_double_t_initialize_1(1, 2),
+    macro_f_string_range_double_t_initialize_1(3, 4),
+  };
+
+  const f_string_range_doubles_t source = macro_f_string_range_doubles_t_initialize_1(sources_array, 0, length_sources);
+  f_string_range_doubles_t destination = f_string_range_doubles_t_initialize;
+
+  {
+    const f_status_t status = f_string_range_doubles_append_all(source, &destination);
+
+    assert_int_equal(status, F_okay);
+    assert_int_equal(destination.used, source.used);
+    assert_int_equal(destination.size, source.used);
+
+    for (f_number_unsigned_t i = 0; i < length_sources; ++i) {
+
+      assert_int_equal(destination.array[i].start, source.array[i].start);
+      assert_int_equal(destination.array[i].stop, source.array[i].stop);
+    } // for
+  }
+
+  free((void *) destination.array);
+}
+
+void test__f_string_range_doubles_append_all__returns_data_not(void **state) {
+
+  const int length = 5;
+  f_string_range_doubles_t source = f_string_range_doubles_t_initialize;
+  f_string_range_doubles_t destination = f_string_range_doubles_t_initialize;
+
+  {
+    const f_status_t status = f_memory_array_resize(length, sizeof(f_string_range_double_t), (void **) &source.array, &source.used, &source.size);
+
+    assert_int_equal(status, F_okay);
+    assert_int_equal(source.used, 0);
+    assert_int_equal(source.size, length);
+  }
+
+  {
+    const f_status_t status = f_string_range_doubles_append_all(source, &destination);
+
+    assert_int_equal(status, F_data_not);
+    assert_int_equal(destination.used, 0);
+    assert_int_equal(destination.size, 0);
+    assert_null(destination.array);
+  }
+
+  free((void *) source.array);
+}
+
+void test__f_string_range_doubles_append_all__parameter_checking(void **state) {
+
+  const f_string_range_doubles_t data = f_string_range_doubles_t_initialize;
+
+  {
+    const f_status_t status = f_string_range_doubles_append_all(data, 0);
+
+    assert_int_equal(status, F_status_set_error(F_parameter));
+  }
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubles_append_all.h b/level_0/f_string/tests/unit/c/test-string-range_doubles_append_all.h
new file mode 100644 (file)
index 0000000..429d27a
--- /dev/null
@@ -0,0 +1,34 @@
+/**
+ * FLL - Level 0
+ *
+ * Project: String
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Test the array types in the type project.
+ */
+#ifndef _TEST__F_string_range_doubles_append_all_h
+#define _TEST__F_string_range_doubles_append_all_h
+
+/**
+ * Test that the function works.
+ *
+ * @see f_string_range_doubles_append_all()
+ */
+extern void test__f_string_range_doubles_append_all__works(void **state);
+
+/**
+ * Test that the function returns F_data_not when asked to copy an empty structure.
+ *
+ * @see f_string_range_doubles_append_all()
+ */
+extern void test__f_string_range_doubles_append_all__returns_data_not(void **state);
+
+/**
+ * Test that the function correctly fails on invalid parameter.
+ *
+ * @see f_string_range_doubles_append_all()
+ */
+extern void test__f_string_range_doubles_append_all__parameter_checking(void **state);
+
+#endif // _TEST__F_string_range_doubles_append_all_h
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubless_append.c b/level_0/f_string/tests/unit/c/test-string-range_doubless_append.c
new file mode 100644 (file)
index 0000000..4b4cdc5
--- /dev/null
@@ -0,0 +1,76 @@
+#include "test-string.h"
+#include "test-string-range_doubless_append.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void test__f_string_range_doubless_append__works(void **state) {
+
+  const int length_sources = 2;
+
+  f_string_range_double_t sources_array[] = {
+    macro_f_string_range_double_t_initialize_1(1, 2),
+    macro_f_string_range_double_t_initialize_1(3, 4),
+  };
+
+  const f_string_range_doubles_t source = macro_f_string_range_doubles_t_initialize_1(sources_array, 0, length_sources);
+  f_string_range_doubless_t destination = f_string_range_doubless_t_initialize;
+
+  {
+    const f_status_t status = f_string_range_doubless_append(source, &destination);
+
+    assert_int_equal(status, F_okay);
+    assert_int_equal(destination.array[0].used, length_sources);
+
+    for (f_number_unsigned_t i = 0; i < length_sources; ++i) {
+
+      assert_int_equal(destination.array[0].array[i].start, sources_array[i].start);
+      assert_int_equal(destination.array[0].array[i].stop, sources_array[i].stop);
+    } // for
+  }
+
+  free((void *) destination.array[0].array);
+  free((void *) destination.array);
+}
+
+void test__f_string_range_doubless_append__returns_data_not(void **state) {
+
+  const int length = 5;
+  f_string_range_doubles_t source = f_string_range_doubless_t_initialize;
+  f_string_range_doubless_t destination = f_string_range_doubless_t_initialize;
+
+  {
+    const f_status_t status = f_memory_arrays_resize(length, sizeof(f_string_range_doubles_t), (void **) &source.array, &source.used, &source.size, &f_string_range_doubless_delete_callback);
+
+    assert_int_equal(status, F_okay);
+    assert_int_equal(source.used, 0);
+    assert_int_equal(source.size, length);
+  }
+
+  {
+    const f_status_t status = f_string_range_doubless_append(source, &destination);
+
+    assert_int_equal(status, F_data_not);
+    assert_int_equal(destination.used, 0);
+    assert_int_equal(destination.size, 0);
+    assert_null(destination.array);
+  }
+
+  free((void *) source.array);
+}
+
+void test__f_string_range_doubless_append__parameter_checking(void **state) {
+
+  f_string_range_doubles_t data = f_string_range_doubles_t_initialize;
+
+  {
+    const f_status_t status = f_string_range_doubless_append(data, 0);
+
+    assert_int_equal(status, F_status_set_error(F_parameter));
+  }
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubless_append.h b/level_0/f_string/tests/unit/c/test-string-range_doubless_append.h
new file mode 100644 (file)
index 0000000..ace3d4a
--- /dev/null
@@ -0,0 +1,34 @@
+/**
+ * FLL - Level 0
+ *
+ * Project: String
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Test the array types in the type project.
+ */
+#ifndef _TEST__F_string_range_doubless_append_h
+#define _TEST__F_string_range_doubless_append_h
+
+/**
+ * Test that the function works.
+ *
+ * @see f_string_range_doubless_append()
+ */
+extern void test__f_string_range_doubless_append__works(void **state);
+
+/**
+ * Test that the function returns F_data_not when asked to copy an empty structure.
+ *
+ * @see f_string_range_doubless_append()
+ */
+extern void test__f_string_range_doubless_append__returns_data_not(void **state);
+
+/**
+ * Test that the function correctly fails on invalid parameter.
+ *
+ * @see f_string_range_doubless_append()
+ */
+extern void test__f_string_range_doubless_append__parameter_checking(void **state);
+
+#endif // _TEST__F_string_range_doubless_append_h
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubless_append_all.c b/level_0/f_string/tests/unit/c/test-string-range_doubless_append_all.c
new file mode 100644 (file)
index 0000000..286e452
--- /dev/null
@@ -0,0 +1,93 @@
+#include "test-string.h"
+#include "test-string-range_doubless_append_all.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void test__f_string_range_doubless_append_all__works(void **state) {
+
+  const int length_sources = 2;
+  const int length_sources_set = 2;
+
+  f_string_range_double_t sources_array1[] = {
+    macro_f_string_range_double_t_initialize_1(1, 2),
+    macro_f_string_range_double_t_initialize_1(3, 4),
+  };
+
+  f_string_range_double_t sources_array2[] = {
+    macro_f_string_range_double_t_initialize_1(5, 6),
+    macro_f_string_range_double_t_initialize_1(7, 8),
+  };
+
+  f_string_range_doubles_t sources_set_array[] = {
+    macro_f_string_range_doubles_t_initialize_1(sources_array1, 0, length_sources),
+    macro_f_string_range_doubles_t_initialize_1(sources_array2, 0, length_sources),
+  };
+
+  const f_string_range_doubless_t source = macro_f_string_range_doubless_t_initialize_1(sources_set_array, 0, length_sources_set);
+  f_string_range_doubless_t destination = f_string_range_doubless_t_initialize;
+
+  {
+    const f_status_t status = f_string_range_doubless_append_all(source, &destination);
+
+    assert_int_equal(status, F_okay);
+    assert_int_equal(destination.used, source.used);
+
+    for (f_number_unsigned_t j = 0; j < length_sources_set; ++j) {
+
+      for (f_number_unsigned_t i = 0; i < length_sources; ++i) {
+
+        assert_int_equal(destination.array[j].array[i].start, sources_set_array[j].array[i].start);
+        assert_int_equal(destination.array[j].array[i].stop, sources_set_array[j].array[i].stop);
+      } // for
+    } // for
+  }
+
+  for (f_number_unsigned_t i = 0; i < destination.used; ++i) {
+    free((void *) destination.array[i].array);
+  } // for
+
+  free((void *) destination.array);
+}
+
+void test__f_string_range_doubless_append_all__returns_data_not(void **state) {
+
+  const int length = 5;
+  f_string_range_doubless_t source = f_string_range_doubless_t_initialize;
+  f_string_range_doubless_t destination = f_string_range_doubless_t_initialize;
+
+  {
+    const f_status_t status = f_memory_arrays_resize(length, sizeof(f_string_range_doubles_t), (void **) &source.array, &source.used, &source.size, &f_string_range_doubless_delete_callback);
+
+    assert_int_equal(status, F_okay);
+    assert_int_equal(source.used, 0);
+    assert_int_equal(source.size, length);
+  }
+
+  {
+    const f_status_t status = f_string_range_doubless_append_all(source, &destination);
+
+    assert_int_equal(status, F_data_not);
+    assert_int_equal(destination.used, 0);
+    assert_int_equal(destination.size, 0);
+    assert_null(destination.array);
+  }
+
+  free((void *) source.array);
+}
+
+void test__f_string_range_doubless_append_all__parameter_checking(void **state) {
+
+  const f_string_range_doubless_t data = f_string_range_doubless_t_initialize;
+
+  {
+    const f_status_t status = f_string_range_doubless_append_all(data, 0);
+
+    assert_int_equal(status, F_status_set_error(F_parameter));
+  }
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubless_append_all.h b/level_0/f_string/tests/unit/c/test-string-range_doubless_append_all.h
new file mode 100644 (file)
index 0000000..1c3e583
--- /dev/null
@@ -0,0 +1,34 @@
+/**
+ * FLL - Level 0
+ *
+ * Project: String
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Test the array types in the type project.
+ */
+#ifndef _TEST__F_string_range_doubless_append_all_h
+#define _TEST__F_string_range_doubless_append_all_h
+
+/**
+ * Test that the function works.
+ *
+ * @see f_string_range_doubless_append_all()
+ */
+extern void test__f_string_range_doubless_append_all__works(void **state);
+
+/**
+ * Test that the function returns F_data_not when asked to copy an empty structure.
+ *
+ * @see f_string_range_doubless_append_all()
+ */
+extern void test__f_string_range_doubless_append_all__returns_data_not(void **state);
+
+/**
+ * Test that the function correctly fails on invalid parameter.
+ *
+ * @see f_string_range_doubless_append_all()
+ */
+extern void test__f_string_range_doubless_append_all__parameter_checking(void **state);
+
+#endif // _TEST__F_string_range_doubless_append_all_h
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubless_delete_callback.c b/level_0/f_string/tests/unit/c/test-string-range_doubless_delete_callback.c
new file mode 100644 (file)
index 0000000..efe6e80
--- /dev/null
@@ -0,0 +1,57 @@
+#include "test-string.h"
+#include "test-string-range_doubless_delete_callback.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void test__f_string_range_doubless_delete_callback__fails(void **state) {
+
+  mock_unwrap = 0;
+  mock_unwrap_f_memory = 0;
+
+  f_string_range_double_t data = f_string_range_double_t_initialize;
+  f_string_range_double_t data_array[] = { data };
+  f_string_range_doubles_t datas = { .array = data_array, .used = 1, .size = 1 };
+  f_string_range_doubles_t datas_array[] = { datas };
+
+  {
+    will_return(__wrap_f_memory_array_resize, true);
+    will_return(__wrap_f_memory_array_resize, F_status_set_error(F_failure));
+
+    const f_status_t status = f_string_range_doubless_delete_callback(0, 1, (void *) datas_array);
+
+    assert_int_equal(status, F_status_set_error(F_failure));
+  }
+}
+
+void test__f_string_range_doubless_delete_callback__works(void **state) {
+
+  mock_unwrap = 0;
+  mock_unwrap_f_memory = 1;
+
+  const f_number_unsigned_t length = 1;
+
+  f_string_range_doubless_t datass = f_string_range_doubless_t_initialize;
+
+  {
+    f_status_t status = f_memory_array_resize(length, sizeof(f_string_range_doubles_t), (void **) &datass.array, &datass.used, &datass.size);
+    assert_int_equal(status, F_okay);
+
+    status = f_memory_array_resize(1, sizeof(f_string_range_double_t), (void **) &datass.array[0].array, &datass.array[0].used, &datass.array[0].size);
+    assert_int_equal(status, F_okay);
+  }
+
+  {
+    const f_status_t status = f_string_range_doubless_delete_callback(0, length, (void *) datass.array);
+
+    assert_int_equal(status, F_okay);
+    assert_int_equal(datass.array[0].size, 0);
+  }
+
+  free((void *) datass.array);
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubless_delete_callback.h b/level_0/f_string/tests/unit/c/test-string-range_doubless_delete_callback.h
new file mode 100644 (file)
index 0000000..7f2a90c
--- /dev/null
@@ -0,0 +1,27 @@
+/**
+ * FLL - Level 0
+ *
+ * Project: String
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Test the array types in the type project.
+ */
+#ifndef _TEST__F_string__range_doubless_delete_callback
+#define _TEST__F_string__range_doubless_delete_callback
+
+/**
+ * Test that the function fails.
+ *
+ * @see f_string_range_doubless_delete_callback()
+ */
+extern void test__f_string_range_doubless_delete_callback__fails(void **state);
+
+/**
+ * Test that the function works.
+ *
+ * @see f_string_range_doubless_delete_callback()
+ */
+extern void test__f_string_range_doubless_delete_callback__works(void **state);
+
+#endif // _TEST__F_string__range_doubless_delete_callback
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubless_destroy_callback.c b/level_0/f_string/tests/unit/c/test-string-range_doubless_destroy_callback.c
new file mode 100644 (file)
index 0000000..1964d72
--- /dev/null
@@ -0,0 +1,57 @@
+#include "test-string.h"
+#include "test-string-range_doubless_destroy_callback.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void test__f_string_range_doubless_destroy_callback__fails(void **state) {
+
+  mock_unwrap = 0;
+  mock_unwrap_f_memory = 0;
+
+  f_string_range_double_t data = f_string_range_double_t_initialize;
+  f_string_range_double_t data_array[] = { data };
+  f_string_range_doubles_t datas = { .array = data_array, .used = 1, .size = 1 };
+  f_string_range_doubles_t datas_array[] = { datas };
+
+  {
+    will_return(__wrap_f_memory_array_adjust, true);
+    will_return(__wrap_f_memory_array_adjust, F_status_set_error(F_failure));
+
+    const f_status_t status = f_string_range_doubless_destroy_callback(0, 1, (void *) datas_array);
+
+    assert_int_equal(status, F_status_set_error(F_failure));
+  }
+}
+
+void test__f_string_range_doubless_destroy_callback__works(void **state) {
+
+  mock_unwrap = 0;
+  mock_unwrap_f_memory = 1;
+
+  const f_number_unsigned_t length = 1;
+
+  f_string_range_doubless_t datass = f_string_range_doubless_t_initialize;
+
+  {
+    f_status_t status = f_memory_array_adjust(length, sizeof(f_string_range_doubles_t), (void **) &datass.array, &datass.used, &datass.size);
+    assert_int_equal(status, F_okay);
+
+    status = f_memory_array_adjust(1, sizeof(f_string_range_double_t), (void **) &datass.array[0].array, &datass.array[0].used, &datass.array[0].size);
+    assert_int_equal(status, F_okay);
+  }
+
+  {
+    const f_status_t status = f_string_range_doubless_destroy_callback(0, length, (void *) datass.array);
+
+    assert_int_equal(status, F_okay);
+    assert_int_equal(datass.array[0].size, 0);
+  }
+
+  free((void *) datass.array);
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/level_0/f_string/tests/unit/c/test-string-range_doubless_destroy_callback.h b/level_0/f_string/tests/unit/c/test-string-range_doubless_destroy_callback.h
new file mode 100644 (file)
index 0000000..7e489ac
--- /dev/null
@@ -0,0 +1,27 @@
+/**
+ * FLL - Level 0
+ *
+ * Project: String
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Test the array types in the type project.
+ */
+#ifndef _TEST__F_string__range_doubless_destroy_callback
+#define _TEST__F_string__range_doubless_destroy_callback
+
+/**
+ * Test that the function fails.
+ *
+ * @see f_string_range_doubless_destroy_callback()
+ */
+extern void test__f_string_range_doubless_destroy_callback__fails(void **state);
+
+/**
+ * Test that the function works.
+ *
+ * @see f_string_range_doubless_destroy_callback()
+ */
+extern void test__f_string_range_doubless_destroy_callback__works(void **state);
+
+#endif // _TEST__F_string__range_doubless_destroy_callback