From 8f5854676725879488eaa1b378dc5d02e8169ae5 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Sun, 26 Mar 2023 21:11:20 -0500 Subject: [PATCH] Refactor: Redesign fl_string and fl_utf_string, relocating into f_compare, f_parse, and f_rip. The fl_string and fl_utf_string projects only depend on the core projects. They could easily be moved into the level_0 project directory. The problem is that they cannot be part of the f_string project due to depending on f_utf. The f_string project is before the f_utf. The solution is to break the fl_string into three projects: - f_compare - f_parse - f_rip It just so happens that the fl_utf_string is in the same situation as fl_string. Move fl_utf_string into these three projects as appropriate. This adds some initial unit tests to f_compare. I didn't have enough to to finish f_compare, let alone get to f_parse and f_rip. --- build/level_0/settings | 32 +- build/level_1/settings | 4 - build/monolithic/settings | 36 +- build/scripts/bootstrap-example.sh | 2 +- build/scripts/test.sh | 2 +- build/stand_alone/fake.config.h | 116 +- build/stand_alone/fake.settings | 4 +- level_0/f_compare/c/compare.c | 178 +++ level_0/f_compare/c/compare.h | 767 ++++++++++++ level_0/f_compare/c/compare/private-utf.c | 175 +++ level_0/f_compare/c/compare/private-utf.h | 89 ++ level_0/f_compare/c/compare/utf.c | 60 + level_0/f_compare/c/compare/utf.h | 180 +++ .../f_compare/c/private-compare.c | 137 +-- level_0/f_compare/c/private-compare.h | 172 +++ .../f_compare}/data/build/defines | 1 - .../f_compare}/data/build/dependencies | 0 level_0/f_compare/data/build/dependencies-tests | 3 + .../f_compare}/data/build/fakefile | 0 level_0/f_compare/data/build/settings | 58 + level_0/f_compare/data/build/settings-tests | 54 + level_0/f_compare/data/build/testfile | 55 + level_0/f_compare/tests/unit/c/test-compare-.c | 269 +++++ level_0/f_compare/tests/unit/c/test-compare-.h | 22 + .../f_compare/tests/unit/c/test-compare-dynamic.c | 269 +++++ .../f_compare/tests/unit/c/test-compare-dynamic.h | 22 + .../tests/unit/c/test-compare-dynamic_string.c | 269 +++++ .../tests/unit/c/test-compare-dynamic_string.h | 22 + level_0/f_compare/tests/unit/c/test-compare.c | 79 ++ level_0/f_compare/tests/unit/c/test-compare.h | 91 ++ level_0/f_parse/c/parse.c | 653 +++++++++++ level_0/f_parse/c/parse.h | 327 ++++++ level_0/f_parse/c/parse/utf.c | 317 +++++ level_0/f_parse/c/parse/utf.h | 231 ++++ level_0/f_parse/data/build/defines | 1 + level_0/f_parse/data/build/dependencies | 7 + level_0/f_parse/data/build/dependencies-tests | 3 + level_0/f_parse/data/build/fakefile | 11 + .../f_parse}/data/build/settings | 8 +- level_0/f_rip/c/private-rip.c | 119 ++ level_0/f_rip/c/private-rip.h | 58 + level_0/f_rip/c/rip.c | 146 +++ level_0/f_rip/c/rip.h | 241 ++++ level_0/f_rip/c/rip/private-utf.c | 76 ++ level_0/f_rip/c/rip/private-utf.h | 52 + level_0/f_rip/c/rip/utf.c | 90 ++ level_0/f_rip/c/rip/utf.h | 137 +++ level_0/f_rip/data/build/defines | 1 + level_0/f_rip/data/build/dependencies | 7 + level_0/f_rip/data/build/dependencies-tests | 3 + level_0/f_rip/data/build/fakefile | 11 + level_0/f_rip/data/build/settings | 58 + level_0/f_string/c/private-string.h | 1 + level_0/f_string/data/build/settings | 26 +- level_1/fl_string/c/private-string.h | 208 ---- level_1/fl_string/c/string.c | 1094 ----------------- level_1/fl_string/c/string.h | 1237 -------------------- level_1/fl_utf/c/private-utf.c | 241 ---- level_1/fl_utf/c/private-utf.h | 119 -- level_1/fl_utf/c/utf.c | 444 ------- level_1/fl_utf/c/utf.h | 526 --------- level_2/fll_execute/c/execute.h | 1 - level_2/fll_fss/c/fss.c | 28 +- level_2/fll_fss/c/fss.h | 45 +- level_2/fll_fss/c/fss/basic.h | 1 - level_2/fll_fss/c/fss/basic_list.h | 1 - level_2/fll_fss/c/fss/payload.c | 8 +- level_2/fll_fss/c/fss/payload.h | 2 +- level_2/fll_fss/data/build/dependencies | 3 +- level_2/fll_fss/data/build/settings | 2 +- .../fll_fss_status_string/c/fss_status_string.c | 24 +- .../fll_fss_status_string/c/fss_status_string.h | 5 +- .../fll_fss_status_string/data/build/dependencies | 3 +- level_2/fll_fss_status_string/data/build/settings | 2 +- level_2/fll_iki/c/iki.h | 1 - level_2/fll_program/c/program.c | 4 +- level_2/fll_program/c/program.h | 10 +- level_2/fll_program/data/build/dependencies | 2 +- level_2/fll_program/data/build/settings | 2 +- level_2/fll_status_string/c/status_string.c | 1212 +++++++++---------- level_2/fll_status_string/c/status_string.h | 5 +- level_2/fll_status_string/data/build/dependencies | 3 +- level_2/fll_status_string/data/build/settings | 2 +- .../fll_status_string/data/build/settings-tests | 2 +- level_3/byte_dump/c/byte_dump.h | 3 +- level_3/byte_dump/data/build/dependencies | 2 +- level_3/byte_dump/data/build/settings | 2 +- level_3/control/c/common.c | 32 +- level_3/control/c/control.h | 3 +- level_3/control/c/private-control.c | 30 +- level_3/control/data/build/dependencies | 4 +- level_3/control/data/build/settings | 2 +- level_3/controller/c/common.c | 132 +-- level_3/controller/c/controller.h | 3 +- .../controller/c/controller/private-controller.c | 6 +- .../controller/c/controller/private-controller.h | 8 +- level_3/controller/c/entry/private-entry.c | 136 +-- level_3/controller/c/entry/private-entry.h | 4 +- level_3/controller/c/process/private-process.c | 2 +- level_3/controller/c/rule/private-rule.c | 230 ++-- level_3/controller/c/rule/private-rule.h | 4 +- level_3/controller/data/build/dependencies | 4 +- level_3/controller/data/build/settings | 4 +- level_3/fake/c/main/build/load.c | 20 +- level_3/fake/c/main/common/print.c | 2 +- level_3/fake/c/main/common/print.h | 2 +- level_3/fake/c/main/fake.h | 3 +- level_3/fake/c/main/make.c | 2 +- level_3/fake/c/main/make.h | 4 +- level_3/fake/c/main/make/load_fakefile.c | 30 +- level_3/fake/c/main/make/operate.c | 34 +- level_3/fake/c/main/make/operate.h | 4 +- level_3/fake/c/main/make/operate_process_type.c | 68 +- level_3/fake/c/main/make/operate_validate_type.c | 58 +- level_3/fake/data/build/dependencies | 4 +- level_3/fake/data/build/settings | 4 +- level_3/firewall/c/firewall.c | 12 +- level_3/firewall/c/firewall.h | 3 +- level_3/firewall/c/private-firewall.c | 80 +- level_3/firewall/data/build/dependencies | 4 +- level_3/firewall/data/build/settings | 2 +- .../fss_basic_list_read/c/fss_basic_list_read.c | 6 +- .../fss_basic_list_read/c/fss_basic_list_read.h | 3 +- level_3/fss_basic_list_read/c/private-read.c | 6 +- level_3/fss_basic_list_read/c/private-read.h | 4 +- .../fss_basic_list_read/data/build/dependencies | 4 +- level_3/fss_basic_list_read/data/build/settings | 2 +- level_3/fss_basic_read/c/fss_basic_read.c | 6 +- level_3/fss_basic_read/c/fss_basic_read.h | 3 +- level_3/fss_basic_read/c/private-read.c | 8 +- level_3/fss_basic_read/c/private-read.h | 4 +- level_3/fss_basic_read/data/build/dependencies | 4 +- level_3/fss_basic_read/data/build/settings | 2 +- .../c/fss_embedded_list_read.c | 4 +- .../c/fss_embedded_list_read.h | 3 +- level_3/fss_embedded_list_read/c/private-read.c | 12 +- .../fss_embedded_list_read/data/build/dependencies | 4 +- level_3/fss_embedded_list_read/data/build/settings | 2 +- .../c/fss_extended_list_read.c | 6 +- .../c/fss_extended_list_read.h | 3 +- level_3/fss_extended_list_read/c/private-read.c | 6 +- level_3/fss_extended_list_read/c/private-read.h | 4 +- .../fss_extended_list_read/data/build/dependencies | 4 +- level_3/fss_extended_list_read/data/build/settings | 2 +- level_3/fss_extended_read/c/fss_extended_read.c | 6 +- level_3/fss_extended_read/c/fss_extended_read.h | 3 +- level_3/fss_extended_read/c/private-read.c | 8 +- level_3/fss_extended_read/c/private-read.h | 4 +- level_3/fss_extended_read/data/build/dependencies | 4 +- level_3/fss_extended_read/data/build/settings | 2 +- level_3/fss_identify/c/fss_identify.h | 3 +- level_3/fss_identify/c/private-identify.c | 4 +- level_3/fss_identify/c/private-identify.h | 4 +- level_3/fss_identify/data/build/dependencies | 4 +- level_3/fss_identify/data/build/settings | 2 +- level_3/fss_payload_read/c/fss_payload_read.c | 6 +- level_3/fss_payload_read/c/fss_payload_read.h | 3 +- level_3/fss_payload_read/c/private-read.c | 18 +- level_3/fss_payload_read/c/private-read.h | 4 +- level_3/fss_payload_read/data/build/dependencies | 4 +- level_3/fss_payload_read/data/build/settings | 2 +- level_3/fss_write/c/basic/fss_write.h | 3 +- level_3/fss_write/c/basic_list/fss_write.h | 3 +- level_3/fss_write/c/embedded_list/fss_write.h | 3 +- level_3/fss_write/c/extended/fss_write.h | 3 +- level_3/fss_write/c/extended_list/fss_write.h | 3 +- level_3/fss_write/c/main/fss_write.h | 3 +- level_3/fss_write/c/main/main.c | 36 +- level_3/fss_write/c/payload/fss_write.c | 4 +- level_3/fss_write/c/payload/fss_write.h | 3 +- level_3/fss_write/data/build/dependencies | 4 +- level_3/fss_write/data/build/settings | 2 +- level_3/fss_write/data/build/settings.basic | 2 +- level_3/fss_write/data/build/settings.basic_list | 2 +- .../fss_write/data/build/settings.embedded_list | 2 +- level_3/fss_write/data/build/settings.extended | 2 +- .../fss_write/data/build/settings.extended_list | 2 +- level_3/fss_write/data/build/settings.main | 2 +- level_3/fss_write/data/build/settings.payload | 2 +- level_3/iki_read/c/main/common.c | 10 +- level_3/iki_read/c/main/identify.c | 8 +- level_3/iki_read/c/main/iki_read.h | 3 +- level_3/iki_read/c/main/process.c | 6 +- level_3/iki_read/data/build/dependencies | 3 +- level_3/iki_read/data/build/settings | 2 +- level_3/iki_write/c/main/iki_write.h | 3 +- level_3/iki_write/data/build/dependencies | 2 +- level_3/iki_write/data/build/settings | 2 +- level_3/status_code/c/fss/status_code.h | 5 +- level_3/status_code/c/main/status_code.h | 5 +- level_3/status_code/data/build/dependencies | 4 +- level_3/status_code/data/build/dependencies.fss | 4 +- level_3/status_code/data/build/settings | 2 +- level_3/status_code/data/build/settings.fss | 2 +- level_3/status_code/data/build/settings.main | 2 +- level_3/utf8/c/main/utf8.h | 3 +- level_3/utf8/data/build/dependencies | 3 +- level_3/utf8/data/build/settings | 2 +- 198 files changed, 6909 insertions(+), 5362 deletions(-) create mode 100644 level_0/f_compare/c/compare.c create mode 100644 level_0/f_compare/c/compare.h create mode 100644 level_0/f_compare/c/compare/private-utf.c create mode 100644 level_0/f_compare/c/compare/private-utf.h create mode 100644 level_0/f_compare/c/compare/utf.c create mode 100644 level_0/f_compare/c/compare/utf.h rename level_1/fl_string/c/private-string.c => level_0/f_compare/c/private-compare.c (72%) create mode 100644 level_0/f_compare/c/private-compare.h rename {level_1/fl_string => level_0/f_compare}/data/build/defines (91%) rename {level_1/fl_string => level_0/f_compare}/data/build/dependencies (100%) create mode 100644 level_0/f_compare/data/build/dependencies-tests rename {level_1/fl_string => level_0/f_compare}/data/build/fakefile (100%) create mode 100644 level_0/f_compare/data/build/settings create mode 100644 level_0/f_compare/data/build/settings-tests create mode 100644 level_0/f_compare/data/build/testfile create mode 100644 level_0/f_compare/tests/unit/c/test-compare-.c create mode 100644 level_0/f_compare/tests/unit/c/test-compare-.h create mode 100644 level_0/f_compare/tests/unit/c/test-compare-dynamic.c create mode 100644 level_0/f_compare/tests/unit/c/test-compare-dynamic.h create mode 100644 level_0/f_compare/tests/unit/c/test-compare-dynamic_string.c create mode 100644 level_0/f_compare/tests/unit/c/test-compare-dynamic_string.h create mode 100644 level_0/f_compare/tests/unit/c/test-compare.c create mode 100644 level_0/f_compare/tests/unit/c/test-compare.h create mode 100644 level_0/f_parse/c/parse.c create mode 100644 level_0/f_parse/c/parse.h create mode 100644 level_0/f_parse/c/parse/utf.c create mode 100644 level_0/f_parse/c/parse/utf.h create mode 100644 level_0/f_parse/data/build/defines create mode 100644 level_0/f_parse/data/build/dependencies create mode 100644 level_0/f_parse/data/build/dependencies-tests create mode 100644 level_0/f_parse/data/build/fakefile rename {level_1/fl_string => level_0/f_parse}/data/build/settings (89%) create mode 100644 level_0/f_rip/c/private-rip.c create mode 100644 level_0/f_rip/c/private-rip.h create mode 100644 level_0/f_rip/c/rip.c create mode 100644 level_0/f_rip/c/rip.h create mode 100644 level_0/f_rip/c/rip/private-utf.c create mode 100644 level_0/f_rip/c/rip/private-utf.h create mode 100644 level_0/f_rip/c/rip/utf.c create mode 100644 level_0/f_rip/c/rip/utf.h create mode 100644 level_0/f_rip/data/build/defines create mode 100644 level_0/f_rip/data/build/dependencies create mode 100644 level_0/f_rip/data/build/dependencies-tests create mode 100644 level_0/f_rip/data/build/fakefile create mode 100644 level_0/f_rip/data/build/settings delete mode 100644 level_1/fl_string/c/private-string.h delete mode 100644 level_1/fl_string/c/string.c delete mode 100644 level_1/fl_string/c/string.h diff --git a/build/level_0/settings b/build/level_0/settings index e4a39e3..efc707d 100644 --- a/build/level_0/settings +++ b/build/level_0/settings @@ -22,6 +22,7 @@ build_libraries -lc -lcap build_sources_library account.c private-account.c account/accounts.c account/private-accounts.c build_sources_library capability.c build_sources_library color.c private-color.c color/common.c +build_sources_library compare.c compare/utf.c private-compare.c compare/private-utf.c build_sources_library console.c console/common.c private-console.c build_sources_library control_group.c control_group/common.c build_sources_library conversion.c private-conversion.c conversion/common.c @@ -33,15 +34,30 @@ build_sources_library fss.c private-fss.c fss/common.c fss/named.c fss/nest.c fs build_sources_library iki.c iki/common.c iki/data.c private-iki.c iki/private-data.c build_sources_library limit.c limit/set.c limit/value.c limit/private-set.c limit/private-value.c build_sources_library memory.c private-memory.c memory/structure.c +build_sources_library parse.c parse/utf.c build_sources_library path.c private-path.c path/common.c build_sources_library pipe.c build_sources_library print.c private-print.c print/common.c print/to.c print/private-to.c +build_sources_library rip.c rip/utf.c private-rip.c rip/private-utf.c build_sources_library serialize.c private-serialize.c serialize/common.c build_sources_library signal.c build_sources_library socket.c build_sources_library status_string.c -build_sources_library string.c private-string.c string/common.c string/private-dynamic.c string/private-dynamics.c string/private-dynamicss.c string/private-maps.c string/private-mapss.c string/private-map_multis.c string/private-map_multiss.c string/private-quantitys.c string/private-quantityss.c string/private-ranges.c string/private-rangess.c string/private-triples.c string/private-tripless.c -build_sources_library string/dynamic.c string/dynamics.c string/dynamicss.c string/map.c string/maps.c string/mapss.c string/map_multi.c string/map_multis.c string/map_multiss.c string/quantity.c string/quantitys.c string/quantityss.c string/range.c string/ranges.c string/rangess.c string/static.c string/statics.c string/staticss.c string/triple.c string/triples.c string/tripless.c +build_sources_library string.c +build_sources_library private-string.c string/common.c +build_sources_library string/private-dynamic.c string/private-dynamics.c string/private-dynamicss.c +build_sources_library string/private-maps.c string/private-mapss.c +build_sources_library string/private-map_multis.c string/private-map_multiss.c +build_sources_library string/private-quantitys.c string/private-quantityss.c +build_sources_library string/private-ranges.c string/private-rangess.c +build_sources_library string/private-triples.c string/private-tripless.c +build_sources_library string/dynamic.c string/dynamics.c string/dynamicss.c +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/static.c string/statics.c string/staticss.c +build_sources_library string/triple.c string/triples.c string/tripless.c build_sources_library type_array/array_length.c type_array/cell.c type_array/fll_id.c type_array/int8.c type_array/int16.c type_array/int32.c type_array/int64.c type_array/int128.c type_array/state.c type_array/status.c type_array/uint8.c type_array/uint16.c type_array/uint32.c type_array/uint64.c type_array/uint128.c build_sources_library type_array/private-array_length.c type_array/private-cell.c type_array/private-fll_id.c type_array/private-int8.c type_array/private-int16.c type_array/private-int32.c type_array/private-int64.c type_array/private-int128.c type_array/private-state.c type_array/private-status.c type_array/private-uint8.c type_array/private-uint16.c type_array/private-uint32.c type_array/private-uint64.c type_array/private-uint128.c build_sources_library utf.c private-utf.c private-utf_alphabetic.c private-utf_combining.c private-utf_control.c private-utf_digit.c private-utf_emoji.c private-utf_numeric.c private-utf_phonetic.c private-utf_private.c private-utf_punctuation.c private-utf_subscript.c private-utf_superscript.c private-utf_symbol.c private-utf_unassigned.c private-utf_valid.c private-utf_whitespace.c private-utf_wide.c private-utf_word.c private-utf_zero_width.c @@ -53,6 +69,7 @@ build_sources_library-level thread.c private-thread.c thread/attribute.c thread/ build_sources_headers account.h account/accounts.h account/common.h build_sources_headers capability.h capability/common.h build_sources_headers color.h color/common.h +build_sources_headers compare.h compare/utf.h build_sources_headers console.h console/common.h private-console.h build_sources_headers control_group.h control_group/common.h build_sources_headers conversion.h conversion/common.h @@ -64,15 +81,24 @@ build_sources_headers fss.h fss/comment.h fss/common.h fss/delimit.h fss/named.h build_sources_headers iki.h iki/common.h iki/data.h build_sources_headers limit.h limit/set.h limit/value.h build_sources_headers memory.h memory/structure.h memory/common.h +build_sources_headers parse.h parse/utf.h build_sources_headers path.h path/common.h build_sources_headers pipe.h build_sources_headers print.h print/to.h print/common.h +build_sources_headers rip.h rip/utf.h build_sources_headers serialize.h serialize/common.h build_sources_headers signal.h signal/common.h build_sources_headers socket.h socket/common.h build_sources_headers status.h build_sources_headers status_string.h -build_sources_headers string.h string/common.h string/dynamic.h string/dynamics.h string/dynamicss.h string/map.h string/maps.h string/mapss.h string/map_multi.h string/map_multis.h string/map_multiss.h string/quantity.h string/quantitys.h string/quantityss.h string/range.h string/ranges.h string/rangess.h string/static.h string/statics.h string/staticss.h string/triple.h string/triples.h string/tripless.h +build_sources_headers string.h string/common.h +build_sources_headers string/dynamic.h string/dynamics.h string/dynamicss.h +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/static.h string/statics.h string/staticss.h +build_sources_headers string/triple.h string/triples.h string/tripless.h build_sources_headers type.h type_file.h build_sources_headers type_array.h type_array/common.h build_sources_headers type_array/array_length.h type_array/cell.h type_array/fll_id.h type_array/int8.h type_array/int16.h type_array/int32.h type_array/int64.h type_array/int128.h type_array/state.h type_array/status.h type_array/uint8.h type_array/uint16.h type_array/uint32.h type_array/uint64.h type_array/uint128.h diff --git a/build/level_1/settings b/build/level_1/settings index b0d9654..12e61a3 100644 --- a/build/level_1/settings +++ b/build/level_1/settings @@ -30,8 +30,6 @@ build_sources_library iki.c build_sources_library path.c build_sources_library print.c private-print.c print/common.c build_sources_library signal.c -build_sources_library string.c private-string.c -build_sources_library utf.c private-utf.c build_sources_library utf_file.c private-utf_file.c build_sources_headers control_group.h @@ -44,8 +42,6 @@ build_sources_headers iki.h build_sources_headers path.h build_sources_headers print.h print/common.h build_sources_headers signal.h signal/common.h -build_sources_headers string.h -build_sources_headers utf.h build_sources_headers utf_file.h build_script yes diff --git a/build/monolithic/settings b/build/monolithic/settings index bf67e50..28c7663 100644 --- a/build/monolithic/settings +++ b/build/monolithic/settings @@ -22,6 +22,7 @@ build_libraries -lc -lcap build_sources_library level_0/account.c level_0/private-account.c level_0/account/accounts.c level_0/account/private-accounts.c build_sources_library level_0/capability.c build_sources_library level_0/color.c level_0/private-color.c level_0/color/common.c +build_sources_library level_0/compare.c level_0/compare/utf.c level_0/private-compare.c level_0/compare/private-utf.c build_sources_library level_0/console.c level_0/console/common.c level_0/private-console.c build_sources_library level_0/control_group.c level_0/control_group/common.c build_sources_library level_0/conversion.c level_0/private-conversion.c level_0/conversion/common.c @@ -33,15 +34,30 @@ build_sources_library level_0/fss.c level_0/private-fss.c level_0/fss/common.c l build_sources_library level_0/iki.c level_0/iki/common.c level_0/iki/data.c level_0/private-iki.c level_0/iki/private-data.c build_sources_library level_0/limit.c level_0/limit/set.c level_0/limit/value.c level_0/limit/private-set.c level_0/limit/private-value.c build_sources_library level_0/memory.c level_0/private-memory.c level_0/memory/structure.c +build_sources_library level_0/parse.c level_0/parse/utf.c build_sources_library level_0/path.c level_0/private-path.c level_0/path/common.c build_sources_library level_0/pipe.c build_sources_library level_0/print.c level_0/private-print.c level_0/print/common.c level_0/print/to.c level_0/print/private-to.c +build_sources_library level_0/rip.c level_0/rip/utf.c level_0/private-rip.c level_0/rip/private-utf.c build_sources_library level_0/serialize.c level_0/private-serialize.c level_0/serialize/common.c build_sources_library level_0/signal.c build_sources_library level_0/socket.c build_sources_library level_0/status_string.c -build_sources_library level_0/string.c level_0/private-string.c level_0/string/common.c level_0/string/private-dynamic.c level_0/string/private-dynamics.c level_0/string/private-dynamicss.c level_0/string/private-maps.c level_0/string/private-mapss.c level_0/string/private-map_multis.c level_0/string/private-map_multiss.c level_0/string/private-quantitys.c level_0/string/private-quantityss.c level_0/string/private-ranges.c level_0/string/private-rangess.c level_0/string/private-triples.c level_0/string/private-tripless.c -build_sources_library level_0/string/dynamic.c level_0/string/dynamics.c level_0/string/dynamicss.c level_0/string/map.c level_0/string/maps.c level_0/string/mapss.c level_0/string/map_multi.c level_0/string/map_multis.c level_0/string/map_multiss.c level_0/string/quantity.c level_0/string/quantitys.c level_0/string/quantityss.c level_0/string/range.c level_0/string/ranges.c level_0/string/rangess.c level_0/string/static.c level_0/string/statics.c level_0/string/staticss.c level_0/string/triple.c level_0/string/triples.c level_0/string/tripless.c +build_sources_library level_0/string.c +build_sources_library level_0/private-string.c level_0/string/common.c +build_sources_library level_0/string/private-dynamic.c level_0/string/private-dynamics.c level_0/string/private-dynamicss.c +build_sources_library level_0/string/private-maps.c level_0/string/private-mapss.c +build_sources_library level_0/string/private-map_multis.c level_0/string/private-map_multiss.c +build_sources_library level_0/string/private-quantitys.c level_0/string/private-quantityss.c +build_sources_library level_0/string/private-ranges.c level_0/string/private-rangess.c +build_sources_library level_0/string/private-triples.c level_0/string/private-tripless.c +build_sources_library level_0/string/dynamic.c level_0/string/dynamics.c level_0/string/dynamicss.c +build_sources_library level_0/string/map.c level_0/string/maps.c level_0/string/mapss.c +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/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/type_array/array_length.c level_0/type_array/cell.c level_0/type_array/fll_id.c level_0/type_array/int8.c level_0/type_array/int16.c level_0/type_array/int32.c level_0/type_array/int64.c level_0/type_array/int128.c level_0/type_array/state.c level_0/type_array/status.c level_0/type_array/uint8.c level_0/type_array/uint16.c level_0/type_array/uint32.c level_0/type_array/uint64.c level_0/type_array/uint128.c build_sources_library level_0/type_array/private-array_length.c level_0/type_array/private-cell.c level_0/type_array/private-fll_id.c level_0/type_array/private-int8.c level_0/type_array/private-int16.c level_0/type_array/private-int32.c level_0/type_array/private-int64.c level_0/type_array/private-int128.c level_0/type_array/private-state.c level_0/type_array/private-status.c level_0/type_array/private-uint8.c level_0/type_array/private-uint16.c level_0/type_array/private-uint32.c level_0/type_array/private-uint64.c level_0/type_array/private-uint128.c build_sources_library level_0/utf.c level_0/private-utf.c level_0/private-utf_alphabetic.c level_0/private-utf_combining.c level_0/private-utf_control.c level_0/private-utf_digit.c level_0/private-utf_emoji.c level_0/private-utf_numeric.c level_0/private-utf_phonetic.c level_0/private-utf_private.c level_0/private-utf_punctuation.c level_0/private-utf_subscript.c level_0/private-utf_superscript.c level_0/private-utf_symbol.c level_0/private-utf_unassigned.c level_0/private-utf_valid.c level_0/private-utf_whitespace.c level_0/private-utf_wide.c level_0/private-utf_word.c level_0/private-utf_zero_width.c @@ -57,8 +73,6 @@ build_sources_library level_1/iki.c build_sources_library level_1/path.c build_sources_library level_1/print.c level_1/private-print.c level_1/print/common.c build_sources_library level_1/signal.c -build_sources_library level_1/string.c level_1/private-string.c -build_sources_library level_1/utf.c level_1/private-utf.c build_sources_library level_1/utf_file.c level_1/private-utf_file.c build_sources_library level_2/control_group.c @@ -77,6 +91,7 @@ build_sources_library-monolithic level_0/thread.c level_0/private-thread.c level build_sources_headers level_0/account.h level_0/account/accounts.h level_0/account/common.h build_sources_headers level_0/capability.h level_0/capability/common.h build_sources_headers level_0/color.h level_0/color/common.h +build_sources_headers level_0/compare.h level_0/compare/utf.h build_sources_headers level_0/console.h level_0/console/common.h level_0/private-console.h build_sources_headers level_0/control_group.h level_0/control_group/common.h build_sources_headers level_0/conversion.h level_0/conversion/common.h @@ -88,15 +103,24 @@ build_sources_headers level_0/fss.h level_0/fss/comment.h level_0/fss/common.h l build_sources_headers level_0/iki.h level_0/iki/common.h level_0/iki/data.h build_sources_headers level_0/limit.h level_0/limit/set.h level_0/limit/value.h build_sources_headers level_0/memory.h level_0/memory/structure.h level_0/memory/common.h +build_sources_headers level_0/parse.h level_0/parse/utf.h build_sources_headers level_0/path.h level_0/path/common.h build_sources_headers level_0/pipe.h build_sources_headers level_0/print.h level_0/print/to.h level_0/print/common.h +build_sources_headers level_0/rip.h level_0/rip/utf.h build_sources_headers level_0/serialize.h level_0/serialize/common.h build_sources_headers level_0/signal.h level_0/signal/common.h build_sources_headers level_0/socket.h level_0/socket/common.h build_sources_headers level_0/status.h build_sources_headers level_0/status_string.h -build_sources_headers level_0/string.h level_0/string/common.h level_0/string/dynamic.h level_0/string/dynamics.h level_0/string/dynamicss.h level_0/string/map.h level_0/string/maps.h level_0/string/mapss.h level_0/string/map_multi.h level_0/string/map_multis.h level_0/string/map_multiss.h level_0/string/quantity.h level_0/string/quantitys.h level_0/string/quantityss.h level_0/string/range.h level_0/string/ranges.h level_0/string/rangess.h level_0/string/static.h level_0/string/statics.h level_0/string/staticss.h level_0/string/triple.h level_0/string/triples.h level_0/string/tripless.h +build_sources_headers level_0/string.h level_0/string/common.h +build_sources_headers level_0/string/dynamic.h level_0/string/dynamics.h level_0/string/dynamicss.h +build_sources_headers level_0/string/map.h level_0/string/maps.h level_0/string/mapss.h +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/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/type.h level_0/type_file.h build_sources_headers level_0/type_array.h level_0/type_array/common.h build_sources_headers level_0/type_array/array_length.h level_0/type_array/cell.h level_0/type_array/fll_id.h level_0/type_array/int8.h level_0/type_array/int16.h level_0/type_array/int32.h level_0/type_array/int64.h level_0/type_array/int128.h level_0/type_array/state.h level_0/type_array/status.h level_0/type_array/uint8.h level_0/type_array/uint16.h level_0/type_array/uint32.h level_0/type_array/uint64.h level_0/type_array/uint128.h @@ -112,8 +136,6 @@ build_sources_headers level_1/iki.h build_sources_headers level_1/path.h build_sources_headers level_1/print.h level_1/print/common.h build_sources_headers level_1/signal.h level_1/signal/common.h -build_sources_headers level_1/string.h -build_sources_headers level_1/utf.h build_sources_headers level_1/utf_file.h build_sources_headers level_2/control_group.h diff --git a/build/scripts/bootstrap-example.sh b/build/scripts/bootstrap-example.sh index 1de3fe1..65c8518 100644 --- a/build/scripts/bootstrap-example.sh +++ b/build/scripts/bootstrap-example.sh @@ -125,7 +125,7 @@ if [[ $1 == "individual" ]] ; then $shell_command build/scripts/package.sh $verbose $color rebuild -i if [[ $? -eq 0 ]] ; then - for i in f_type f_status f_memory f_type_array f_string f_utf f_account f_capability f_color f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_path f_pipe f_print f_status_string f_serialize f_signal f_socket f_thread fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print fl_signal fl_string fl_utf fl_utf_file fll_control_group fll_error fll_execute fll_file fll_fss fll_fss_status_string fll_iki fll_print fll_program fll_status_string ; do + for i in f_type f_status f_memory f_type_array f_string f_utf 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_status_string f_serialize f_signal f_socket f_thread fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print fl_signal fl_utf_file fll_control_group fll_error fll_execute fll_file fll_fss fll_fss_status_string fll_iki fll_print fll_program fll_status_string ; do echo && echo "Processing $i." && cd package/individual/$i-$version/ && diff --git a/build/scripts/test.sh b/build/scripts/test.sh index ae27b0b..b8ead6f 100644 --- a/build/scripts/test.sh +++ b/build/scripts/test.sh @@ -67,7 +67,7 @@ test_main() { local verbose= local verbose_common= - local projects="f_type f_status f_memory f_type_array f_string f_utf f_account f_capability f_color f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_path f_pipe f_print f_serialize f_signal f_socket f_status_string f_thread fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print fl_signal fl_string fl_utf fl_utf_file fll_control_group fll_error fll_execute fll_file fll_fss fll_fss_status_string fll_iki fll_print fll_program fll_status_string" + local projects="f_type f_status f_memory f_type_array f_string f_utf 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_serialize f_signal f_socket f_status_string f_thread fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print fl_signal fl_utf_file fll_control_group fll_error fll_execute fll_file fll_fss fll_fss_status_string fll_iki fll_print fll_program fll_status_string" local projects_no_tests="f_type" let failure=0 diff --git a/build/stand_alone/fake.config.h b/build/stand_alone/fake.config.h index 48e2c1b..cd1730a 100644 --- a/build/stand_alone/fake.config.h +++ b/build/stand_alone/fake.config.h @@ -3,8 +3,8 @@ // To get the list of all possible functions, use something like: "grep -horP '\b_di_f_\w*\b' level_0/f_color/". // // Example: echo > /tmp/all.txt -// for i in f_type f_status f_memory f_type_array f_string f_utf f_account f_capability f_color f_console f_control_group f_conversion f_directory f_environment f_execute f_file f_fss f_iki f_limit f_path f_pipe f_print f_signal f_thread ; do grep -horP '\b_di_f_\w*\b' level_0/$i/c >> /tmp/all.txt ; grep -horP '\b_di_macro_\w*\b' level_0/$i/c >> /tmp/all.txt ; done -// for i in fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print fl_string ; do grep -horP '\b_di_fl_\w*\b' level_1/$i/c >> /tmp/all.txt ; grep -horP '\b_di_macro_\w*\b' level_1/$i/c >> /tmp/all.txt ; done +// for i in f_type f_status f_memory f_type_array f_string f_utf 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 grep -horP '\b_di_f_\w*\b' level_0/$i/c >> /tmp/all.txt ; grep -horP '\b_di_macro_\w*\b' level_0/$i/c >> /tmp/all.txt ; done +// for i in fl_control_group fl_conversion fl_directory fl_environment fl_execute fl_fss fl_iki fl_path fl_print ; do grep -horP '\b_di_fl_\w*\b' level_1/$i/c >> /tmp/all.txt ; grep -horP '\b_di_macro_\w*\b' level_1/$i/c >> /tmp/all.txt ; done // for i in fll_error fll_execute fll_file fll_fss fll_print fll_program ; do grep -horP '\b_di_fll_\w*\b' level_2/$i/c >> /tmp/all.txt ; grep -horP '\b_di_macro_\w*\b' level_2/$i/c >> /tmp/all.txt ; done // sort /tmp/all.txt | uniq | sed -e 's|^_|#define &|g' > /tmp/sorted.txt @@ -186,6 +186,37 @@ //#define _di_f_color_terminal_s_ //#define _di_f_color_terminal_value_linux_s_ +#define _di_f_compare_ +//#define _di_f_compare_dynamic_ +#define _di_f_compare_dynamic_except_ +#define _di_f_compare_dynamic_except_string_ +#define _di_f_compare_dynamic_except_trim_ +#define _di_f_compare_dynamic_except_trim_string_ +//#define _di_f_compare_dynamic_partial_ +//#define _di_f_compare_dynamic_partial_dynamic_ +#define _di_f_compare_dynamic_partial_except_ +#define _di_f_compare_dynamic_partial_except_dynamic_ +#define _di_f_compare_dynamic_partial_except_string_ +#define _di_f_compare_dynamic_partial_except_trim_ +#define _di_f_compare_dynamic_partial_except_trim_dynamic_ +#define _di_f_compare_dynamic_partial_except_trim_string_ +//#define _di_f_compare_dynamic_partial_string_ +#define _di_f_compare_dynamic_partial_trim_ +#define _di_f_compare_dynamic_partial_trim_dynamic_ +//#define _di_f_compare_dynamic_partial_trim_string_ +#define _di_f_compare_dynamic_string_ +//#define _di_f_compare_dynamic_trim_ +#define _di_f_compare_dynamic_trim_string_ +#define _di_f_compare_except_ +#define _di_f_compare_except_trim_ +#define _di_f_compare_trim_ +#define _di_f_compare_utf_ +#define _di_f_compare_utf_dynamic_ +#define _di_f_compare_utf_dynamic_partial_ +#define _di_f_compare_utf_dynamic_partial_trim_ +#define _di_f_compare_utf_dynamic_trim_ +#define _di_f_compare_utf_trim_ + //#define _di_f_console_arguments_t_ #define _di_f_console_environment_process_ //#define _di_f_console_flag_e_ @@ -262,11 +293,11 @@ //#define _di_f_conversion_character_to_hexidecimal_ //#define _di_f_conversion_character_to_octal_ //#define _di_f_conversion_d_ -#define _di_f_conversion_data_base_2_c_ -#define _di_f_conversion_data_base_8_c_ //#define _di_f_conversion_data_base_10_c_ #define _di_f_conversion_data_base_12_c_ #define _di_f_conversion_data_base_16_c_ +#define _di_f_conversion_data_base_2_c_ +#define _di_f_conversion_data_base_8_c_ //#define _di_f_conversion_data_c_ //#define _di_f_conversion_data_flag_d_ //#define _di_f_conversion_data_t_ @@ -325,6 +356,7 @@ #define _di_f_environment_secure_is_ //#define _di_f_environment_set_ #define _di_f_environment_unset_ + //#define _di_f_execute_e_ #define _di_f_execute_result_t_ //#define _di_f_execute_scheduler_t_ @@ -781,6 +813,7 @@ #define _di_f_int8_t_ //#define _di_fl_control_group_apply_ + //#define _di_fl_conversion_data_base_10_c_ #define _di_fl_conversion_data_base_12_c_ #define _di_fl_conversion_data_base_16_c_ @@ -833,12 +866,10 @@ #define _di_fl_fss_basic_list_object_write_ #define _di_fl_fss_basic_object_read_ #define _di_fl_fss_basic_object_write_ - #define _di_fl_fss_embedded_list_content_read_ #define _di_fl_fss_embedded_list_content_write_ #define _di_fl_fss_embedded_list_object_read_ #define _di_fl_fss_embedded_list_object_write_ - //#define _di_fl_fss_extended_content_read_ #define _di_fl_fss_extended_content_write_ #define _di_fl_fss_extended_list_content_read_ @@ -1115,46 +1146,6 @@ #define _di_fl_print_trim_safely_ //#define _di_fl_print_warning_s_ -#define _di_fl_string_compare_ -#define _di_fl_string_compare_except_ -#define _di_fl_string_compare_except_trim_ -#define _di_fl_string_compare_trim_ -//#define _di_fl_string_dynamic_compare_ -#define _di_fl_string_dynamic_compare_except_ -#define _di_fl_string_dynamic_compare_except_string_ -#define _di_fl_string_dynamic_compare_except_trim_ -#define _di_fl_string_dynamic_compare_except_trim_string_ -#define _di_fl_string_dynamic_compare_string_ -//#define _di_fl_string_dynamic_compare_trim_ -#define _di_fl_string_dynamic_compare_trim_string_ -//#define _di_fl_string_dynamic_partial_compare_ -//#define _di_fl_string_dynamic_partial_compare_dynamic_ -#define _di_fl_string_dynamic_partial_compare_except_ -#define _di_fl_string_dynamic_partial_compare_except_dynamic_ -#define _di_fl_string_dynamic_partial_compare_except_string_ -#define _di_fl_string_dynamic_partial_compare_except_trim_ -#define _di_fl_string_dynamic_partial_compare_except_trim_dynamic_ -#define _di_fl_string_dynamic_partial_compare_except_trim_string_ -//#define _di_fl_string_dynamic_partial_compare_string_ -#define _di_fl_string_dynamic_partial_compare_trim_ -#define _di_fl_string_dynamic_partial_compare_trim_dynamic_ -//#define _di_fl_string_dynamic_partial_compare_trim_string_ -#define _di_fl_string_dynamic_partial_fll_identify_ -#define _di_fl_string_dynamic_partial_rip_ -#define _di_fl_string_dynamic_partial_rip_nulless_ -//#define _di_fl_string_dynamic_rip_ -#define _di_fl_string_dynamic_rip_nulless_ -#define _di_fl_string_dynamic_seek_line_to_utf_character_ -#define _di_fl_string_dynamic_seek_line_until_graph_ -#define _di_fl_string_dynamic_seek_line_until_graph_non_ -#define _di_fl_string_dynamic_seek_to_utf_character_ -#define _di_fl_string_rip_ -#define _di_fl_string_rip_nulless_ -#define _di_fl_string_seek_line_to_utf_character_ -#define _di_fl_string_seek_line_until_graph_ -#define _di_fl_string_seek_line_until_graph_non_ -#define _di_fl_string_seek_to_utf_character_ - #define _di_f_memory_adjust_ //#define _di_f_memory_default_d_ //#define _di_f_memory_delete_ @@ -1171,9 +1162,29 @@ //#define _di_f_mode_t_ +#define _di_f_parse_dynamic_partial_fll_identify_ +#define _di_f_parse_dynamic_seek_line_to_utf_character_ +#define _di_f_parse_dynamic_seek_line_until_graph_ +#define _di_f_parse_dynamic_seek_line_until_graph_non_ +#define _di_f_parse_dynamic_seek_to_utf_character_ +#define _di_f_parse_seek_line_to_utf_character_ +#define _di_f_parse_seek_line_until_graph_ +#define _di_f_parse_seek_line_until_graph_non_ +#define _di_f_parse_seek_to_utf_character_ +#define _di_f_parse_utf_dynamic_seek_line_to_char_ +#define _di_f_parse_utf_dynamic_seek_line_until_graph_ +#define _di_f_parse_utf_dynamic_seek_line_until_graph_non_ +#define _di_f_parse_utf_dynamic_seek_to_char_ +#define _di_f_parse_utf_seek_line_to_char_ +#define _di_f_parse_utf_seek_line_until_graph_ +#define _di_f_parse_utf_seek_line_until_graph_non_ +#define _di_f_parse_utf_seek_to_char_ +#define _di_f_parse_utf_seek_to_character_ + //#define _di_f_path_change_ //#define _di_f_path_change_at_ //#define _di_f_path_current_ +//#define _di_f_path_d_ //#define _di_f_path_environment_s_ //#define _di_f_path_extension_separator_s_ #define _di_f_path_home_s_ @@ -1239,6 +1250,7 @@ #define _di_f_path_user_settings_s_ #define _di_f_path_user_shared_s_ #define _di_f_path_user_temporary_s_ + #define _di_f_pipe_error_exists_ //#define _di_f_pipe_input_exists_ #define _di_f_pipe_output_exists_ @@ -1389,6 +1401,17 @@ #define _di_f_print_to_terminated_ //#define _di_f_print_write_max_d_ +#define _di_f_rip_ +//#define _di_f_rip_dynamic_ +#define _di_f_rip_dynamic_nulless_ +#define _di_f_rip_dynamic_partial_ +#define _di_f_rip_dynamic_partial_nulless_ +#define _di_f_rip_nulless_ +#define _di_f_rip_utf_ +#define _di_f_rip_utf_dynamic_ +#define _di_f_rip_utf_dynamic_nulless_ +#define _di_f_rip_utf_nulless_ + #define _di_f_signal_action_ //#define _di_f_signal_close_ //#define _di_f_signal_how_t_ @@ -2099,6 +2122,7 @@ #define _di_f_utf_space_separator_line_s_ #define _di_f_utf_space_separator_paragraph_s_ #define _di_f_utf_space_thin_s_ + #define _di_f_utf_string_append_ #define _di_f_utf_string_append_assure_ #define _di_f_utf_string_append_assure_nulless_ diff --git a/build/stand_alone/fake.settings b/build/stand_alone/fake.settings index f2c975a..8c000aa 100644 --- a/build/stand_alone/fake.settings +++ b/build/stand_alone/fake.settings @@ -26,6 +26,7 @@ build_libraries -lc -lcap build_sources_program fll/level_0/account.c fll/level_0/private-account.c fll/level_0/account/accounts.c fll/level_0/account/private-accounts.c build_sources_program fll/level_0/capability.c build_sources_program fll/level_0/color.c fll/level_0/private-color.c fll/level_0/color/common.c +build_sources_program fll/level_0/compare.c fll/level_0/compare/utf.c fll/level_0/private-compare.c fll/level_0/compare/private-utf.c build_sources_program fll/level_0/console.c fll/level_0/console/common.c fll/level_0/private-console.c build_sources_program fll/level_0/control_group.c fll/level_0/control_group/common.c build_sources_program fll/level_0/conversion.c fll/level_0/private-conversion.c fll/level_0/conversion/common.c @@ -37,9 +38,11 @@ build_sources_program fll/level_0/fss.c fll/level_0/private-fss.c fll/level_0/fs build_sources_program fll/level_0/iki.c fll/level_0/private-iki.c fll/level_0/iki/common.c fll/level_0/iki/private-data.c fll/level_0/iki/data.c build_sources_program fll/level_0/limit.c fll/level_0/limit/set.c fll/level_0/limit/value.c fll/level_0/limit/private-set.c fll/level_0/limit/private-value.c build_sources_program fll/level_0/memory.c fll/level_0/private-memory.c fll/level_0/memory/structure.c +build_sources_program fll/level_0/parse.c fll/level_0/parse/utf.c build_sources_program fll/level_0/path.c fll/level_0/private-path.c fll/level_0/path/common.c build_sources_program fll/level_0/pipe.c build_sources_program fll/level_0/print.c fll/level_0/private-print.c fll/level_0/print/common.c fll/level_0/print/to.c fll/level_0/print/private-to.c +build_sources_program fll/level_0/rip.c fll/level_0/rip/utf.c fll/level_0/private-rip.c fll/level_0/rip/private-utf.c build_sources_program fll/level_0/signal.c build_sources_program fll/level_0/string.c fll/level_0/private-string.c fll/level_0/string/common.c fll/level_0/string/private-dynamic.c fll/level_0/string/private-dynamics.c fll/level_0/string/private-dynamicss.c fll/level_0/string/private-maps.c fll/level_0/string/private-mapss.c fll/level_0/string/private-map_multis.c fll/level_0/string/private-map_multiss.c fll/level_0/string/private-quantitys.c fll/level_0/string/private-quantityss.c fll/level_0/string/private-ranges.c fll/level_0/string/private-rangess.c fll/level_0/string/private-triples.c fll/level_0/string/private-tripless.c build_sources_program fll/level_0/string/dynamic.c fll/level_0/string/dynamics.c fll/level_0/string/dynamicss.c fll/level_0/string/map.c fll/level_0/string/maps.c fll/level_0/string/mapss.c fll/level_0/string/map_multi.c fll/level_0/string/map_multis.c fll/level_0/string/map_multiss.c fll/level_0/string/quantity.c fll/level_0/string/quantitys.c fll/level_0/string/quantityss.c fll/level_0/string/range.c fll/level_0/string/ranges.c fll/level_0/string/rangess.c fll/level_0/string/static.c fll/level_0/string/statics.c fll/level_0/string/staticss.c fll/level_0/string/triple.c fll/level_0/string/triples.c fll/level_0/string/tripless.c @@ -58,7 +61,6 @@ build_sources_program fll/level_1/private-fss.c fll/level_1/fss/basic.c fll/leve build_sources_program fll/level_1/iki.c build_sources_program fll/level_1/path.c build_sources_program fll/level_1/print.c fll/level_1/private-print.c fll/level_1/print/common.c -build_sources_program fll/level_1/string.c fll/level_1/private-string.c build_sources_program fll/level_2/error.c fll/level_2/private-error.c fll/level_2/error/common.c build_sources_program fll/level_2/execute.c fll/level_2/private-execute.c diff --git a/level_0/f_compare/c/compare.c b/level_0/f_compare/c/compare.c new file mode 100644 index 0000000..5791605 --- /dev/null +++ b/level_0/f_compare/c/compare.c @@ -0,0 +1,178 @@ +#include "compare.h" +#include "private-compare.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _di_f_compare_ + f_status_t f_compare(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2) { + + return private_f_compare(string1, string2, 0, 0, length1, length2); + } +#endif // _di_f_compare_ + +#ifndef _di_f_compare_except_ + f_status_t f_compare_except(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except(string1, string2, 0, 0, length1, length2, except1, except2); + } +#endif // _di_f_compare_except_ + +#ifndef _di_f_compare_except_trim_ + f_status_t f_compare_except_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except_trim(string1, string2, 0, 0, length1, length2, except1, except2); + } +#endif // _di_f_compare_except_trim_ + +#ifndef _di_f_compare_trim_ + f_status_t f_compare_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2) { + + return private_f_compare_trim(string1, string2, 0, 0, length1, length2); + } +#endif // _di_f_compare_trim_ + +#ifndef _di_f_compare_dynamic_ + f_status_t f_compare_dynamic(const f_string_static_t string1, const f_string_static_t string2) { + + return private_f_compare(string1.string, string2.string, 0, 0, string1.used, string2.used); + } +#endif // _di_f_compare_dynamic_ + +#ifndef _di_f_compare_dynamic_except_ + f_status_t f_compare_dynamic_except(const f_string_static_t string1, const f_string_static_t string2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except(string1.string, string2.string, 0, 0, string1.used, string2.used, except1, except2); + } +#endif // _di_f_compare_dynamic_except_ + +#ifndef _di_f_compare_dynamic_except_string_ + f_status_t f_compare_dynamic_except_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except(string1, string2.string, 0, 0, length1, string2.used, except1, except2); + } +#endif // _di_f_compare_dynamic_except_string_ + +#ifndef _di_f_compare_dynamic_except_trim_ + f_status_t f_compare_dynamic_except_trim(const f_string_static_t string1, const f_string_static_t string2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except_trim(string1.string, string2.string, 0, 0, string1.used, string2.used, except1, except2); + } +#endif // _di_f_compare_dynamic_except_trim_ + +#ifndef _di_f_compare_dynamic_except_trim_string_ + f_status_t f_compare_dynamic_except_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except_trim(string1, string2.string, 0, 0, length1, string2.used, except1, except2); + } +#endif // _di_f_compare_dynamic_except_trim_string_ + +#ifndef _di_f_compare_dynamic_string_ + f_status_t f_compare_dynamic_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1) { + + return private_f_compare(string1, string2.string, 0, 0, length1, string2.used); + } +#endif // _di_f_compare_dynamic_string_ + +#ifndef _di_f_compare_dynamic_trim_ + f_status_t f_compare_dynamic_trim(const f_string_static_t string1, const f_string_static_t string2) { + + return private_f_compare_trim(string1.string, string2.string, 0, 0, string1.used, string2.used); + } +#endif // _di_f_compare_dynamic_trim_ + +#ifndef _di_f_compare_dynamic_trim_string_ + f_status_t f_compare_dynamic_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1) { + + return private_f_compare_trim(string1, string2.string, 0, 0, length1, string2.used); + } +#endif // _di_f_compare_dynamic_trim_string_ + +#ifndef _di_f_compare_dynamic_partial_ + f_status_t f_compare_dynamic_partial(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2) { + + return private_f_compare(string1.string, string2.string, range1.start, range2.start, string1.used <= range1.stop ? string1.used : range1.stop + 1, string2.used <= range2.stop ? string2.used : range2.stop + 1); + } +#endif // _di_f_compare_dynamic_partial_ + +#ifndef _di_f_compare_dynamic_partial_dynamic_ + f_status_t f_compare_dynamic_partial_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2) { + + return private_f_compare(string1.string, string2.string, 0, range2.start, string1.used, string2.used <= range2.stop ? string2.used : range2.stop + 1); + } +#endif // _di_f_compare_dynamic_partial_dynamic_ + +#ifndef _di_f_compare_dynamic_partial_string_ + f_status_t f_compare_dynamic_partial_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2) { + + return private_f_compare(string1, string2.string, 0, range2.start, length1, string2.used < range2.stop ? string2.used : range2.stop + 1); + } +#endif // _di_f_compare_dynamic_partial_string_ + +#ifndef _di_f_compare_dynamic_partial_except_ + f_status_t f_compare_dynamic_partial_except(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except(string1.string, string2.string, range1.start, range2.start, string1.used < range1.stop ? string1.used : range1.stop + 1, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); + } +#endif // _di_f_compare_dynamic_partial_except_ + +#ifndef _di_f_compare_dynamic_partial_except_dynamic_ + f_status_t f_compare_dynamic_partial_except_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except(string1.string, string2.string, 0, range2.start, string1.used, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); + } +#endif // _di_f_compare_dynamic_partial_except_dynamic_ + +#ifndef _di_f_compare_dynamic_partial_except_string_ + f_status_t f_compare_dynamic_partial_except_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except(string1, string2.string, 0, range2.start, length1, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); + } +#endif // _di_f_compare_dynamic_partial_except_string_ + +#ifndef _di_f_compare_dynamic_partial_except_trim_ + f_status_t f_compare_dynamic_partial_except_trim(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except_trim(string1.string, string2.string, range1.start, range2.start, string1.used <= range1.stop ? string1.used : range1.stop + 1, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); + } +#endif // _di_f_compare_dynamic_partial_except_trim_ + +#ifndef _di_f_compare_dynamic_partial_except_trim_dynamic_ + f_status_t f_compare_dynamic_partial_except_trim_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except_trim(string1.string, string2.string, 0, range2.start, string1.used, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); + } +#endif // _di_f_compare_dynamic_partial_except_trim_dynamic_ + +#ifndef _di_f_compare_dynamic_partial_except_trim_string_ + f_status_t f_compare_dynamic_partial_except_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { + + return private_f_compare_except_trim(string1, string2.string, 0, range2.start, length1, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); + } +#endif // _di_f_compare_dynamic_partial_except_trim_string_ + +#ifndef _di_f_compare_dynamic_partial_trim_ + f_status_t f_compare_dynamic_partial_trim(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2) { + + return private_f_compare_trim(string1.string, string2.string, range1.start, range2.start, string1.used <= range1.stop ? string1.used : range1.stop + 1, string2.used <= range2.stop ? string2.used : range2.stop + 1); + } +#endif // _di_f_compare_dynamic_partial_trim_ + +#ifndef _di_f_compare_dynamic_partial_trim_dynamic_ + f_status_t f_compare_dynamic_partial_trim_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2) { + + return private_f_compare_trim(string1.string, string2.string, 0, range2.start, string1.used, string2.used <= range2.stop ? string2.used : range2.stop + 1); + } +#endif // _di_f_compare_dynamic_partial_trim_dynamic_ + +#ifndef _di_f_compare_dynamic_partial_trim_string_ + f_status_t f_compare_dynamic_partial_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2) { + + return private_f_compare_trim(string1, string2.string, 0, range2.start, length1, string2.used <= range2.stop ? string2.used : range2.stop + 1); + } +#endif // _di_f_compare_dynamic_partial_trim_string_ + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_compare/c/compare.h b/level_0/f_compare/c/compare.h new file mode 100644 index 0000000..fc1ed83 --- /dev/null +++ b/level_0/f_compare/c/compare.h @@ -0,0 +1,767 @@ +/** + * FLL - Level 0 + * + * Project: Compare + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Provides basic string comparison capabilities. + */ +#ifndef _F_compare_h +#define _F_compare_h + +// Libc includes. +#include + +// FLL-0 includes. +#include +#include +#include +#include + +// FLL-0 compare includes. +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Compare two strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * Length of string1. + * @param length2 + * Length of string2. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_ + extern f_status_t f_compare(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2); +#endif // _di_f_compare_ + +/** + * Compare two strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * Length of string1. + * @param length2 + * Length of string2. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_except_ + extern f_status_t f_compare_except(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_except_ + +/** + * Compare two strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * Length of string1. + * @param length2 + * Length of string2. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_except_trim_ + extern f_status_t f_compare_except_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_except_trim_ + +/** + * Compare two strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * Length of string1. + * @param length2 + * Length of string2. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_trim_ + extern f_status_t f_compare_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2); +#endif // _di_f_compare_trim_ + +/** + * Compare two strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_dynamic_ + extern f_status_t f_compare_dynamic(const f_string_static_t string1, const f_string_static_t string2); +#endif // _di_f_compare_dynamic_ + +/** + * Compare two strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_dynamic_except_ + extern f_status_t f_compare_dynamic_except(const f_string_static_t string1, const f_string_static_t string2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_except_ + +/** + * Compare two strings, similar to strncmp(). + * + * This operates with the first string being a traditional string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * The length of string1. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_except_string_ + extern f_status_t f_compare_dynamic_except_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_except_string_ + +/** + * Compare two strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_except_trim_ + extern f_status_t f_compare_dynamic_except_trim(const f_string_static_t string1, const f_string_static_t string2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_except_trim_ + +/** + * Compare two strings, similar to strncmp(). + * + * This operates with the first string being a traditional string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * The length of string1. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_except_trim_string_ + extern f_status_t f_compare_dynamic_except_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_except_trim_string_ + +/** + * Compare two strings, similar to strncmp(). + * + * This operates with the first string being a traditional string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * The length of string1. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_string_ + extern f_status_t f_compare_dynamic_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1); +#endif // _di_f_compare_dynamic_string_ + +/** + * Compare two strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_trim_ + extern f_status_t f_compare_dynamic_trim(const f_string_static_t string1, const f_string_static_t string2); +#endif // _di_f_compare_dynamic_trim_ + +/** + * Compare two strings, similar to strncmp(). + * + * This operates with the first string being a traditional string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * The length of string1. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_trim_string_ + extern f_status_t f_compare_dynamic_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1); +#endif // _di_f_compare_dynamic_trim_string_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given ranges. + * + * This does not stop on NULL. + * NULL characters are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param range1 + * A range within the string1 to restrict the comparison to. + * @param range2 + * A range within the string2 to restrict the comparison to. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_dynamic_partial_ + extern f_status_t f_compare_dynamic_partial(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2); +#endif // _di_f_compare_dynamic_partial_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param range2 + * A range within the string2 to restrict the comparison to. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_dynamic_partial_dynamic_ + extern f_status_t f_compare_dynamic_partial_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2); +#endif // _di_f_compare_dynamic_partial_dynamic_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given ranges. + * + * This does not stop on NULL. + * NULL characters are ignored. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param range1 + * A range within the string1 to restrict the comparison to. + * @param range2 + * A range within the string2 to restrict the comparison to. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_dynamic_partial_except_ + extern f_status_t f_compare_dynamic_partial_except(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_partial_except_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param range2 + * A range within the string2 to restrict the comparison to. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_dynamic_partial_except_dynamic_ + extern f_status_t f_compare_dynamic_partial_except_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_partial_except_dynamic_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. + * + * This operates with the first string being a traditional string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * The length of string1. + * @param range2 + * A range within the string2 to restrict the comparison to. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_dynamic_partial_except_string_ + extern f_status_t f_compare_dynamic_partial_except_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_partial_except_string_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given ranges. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param range1 + * A range within the string1 to restrict the comparison to. + * @param range2 + * A range within the string2 to restrict the comparison to. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_partial_except_trim_ + extern f_status_t f_compare_dynamic_partial_except_trim(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_partial_except_trim_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param range2 + * A range within the string2 to restrict the comparison to. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_partial_except_trim_dynamic_ + extern f_status_t f_compare_dynamic_partial_except_trim_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_partial_except_trim_dynamic_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. + * + * This operates with the first string being a traditional string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * All 1-byte characters in except1 and except2 are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * The length of string1. + * @param range2 + * A range within the string2 to restrict the comparison to. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_partial_except_trim_string_ + extern f_status_t f_compare_dynamic_partial_except_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); +#endif // _di_f_compare_dynamic_partial_except_trim_string_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. + * + * This operates with the first string being a traditional string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * The length of string1. + * @param range2 + * A range within the string2 to restrict the comparison to. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_dynamic_partial_string_ + extern f_status_t f_compare_dynamic_partial_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2); +#endif // _di_f_compare_dynamic_partial_string_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param range2 + * A range within the string2 to restrict the comparison to. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_partial_trim_dynamic_ + extern f_status_t f_compare_dynamic_partial_trim_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2); +#endif // _di_f_compare_dynamic_partial_trim_dynamic_ + +/** + * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. + * + * This operates with the first string being a traditional string. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * The length of string1. + * @param range2 + * A range within the string2 to restrict the comparison to. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_compare_dynamic_partial_trim_string_ + extern f_status_t f_compare_dynamic_partial_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2); +#endif // _di_f_compare_dynamic_partial_trim_string_ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _F_compare_h diff --git a/level_0/f_compare/c/compare/private-utf.c b/level_0/f_compare/c/compare/private-utf.c new file mode 100644 index 0000000..3cd67b0 --- /dev/null +++ b/level_0/f_compare/c/compare/private-utf.c @@ -0,0 +1,175 @@ +#include "../compare.h" +#include "private-utf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(_di_f_compare_utf_) || !defined(_di_f_compare_utf_dynamic_) || !defined(_di_f_compare_utf_dynamic_partial_) + f_status_t private_f_compare_utf(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) { + + f_array_length_t i1 = offset1; + f_array_length_t i2 = offset2; + + for (; i1 < stop1 && i2 < stop2; ++i1, ++i2) { + + // Skip past NULL in string1. + while (i1 < stop1 && !string1[i1]) ++i1; + if (i1 == stop1) break; + + // Skip past NULL in string2. + while (i2 < stop2 && !string2[i2]) ++i2; + if (i2 == stop2) break; + + if (string1[i1] != string2[i2]) return F_equal_to_not; + } // for + + // Only return F_equal_to if all remaining characters are NULL. + for (; i1 < stop1; ++i1) { + if (string1[i1] != 0) return F_equal_to_not; + } // for + + for (; i2 < stop2; ++i2) { + if (string2[i2] != 0) return F_equal_to_not; + } // for + + return F_equal_to; + } +#endif // !defined(_di_f_compare_utf_) || !defined(_di_f_compare_utf_dynamic_) || !defined(_di_f_compare_utf_dynamic_partial_) + +#if !defined(_di_f_compare_utf_trim_) || !defined(_di_f_compare_utf_dynamic_trim_) || !defined(_di_f_compare_utf_dynamic_partial_trim_) + f_status_t private_f_compare_utf_trim(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) { + + f_array_length_t i1 = offset1; + f_array_length_t i2 = offset2; + + f_status_t status = F_none; + + // Skip past leading whitespace in string1. + for (; i1 < stop1; ++i1) { + + // Skip past NULL in string1. + while (i1 < stop1 && !string1[i1]) ++i1; + if (i1 == stop1) break; + + status = f_utf_character_is_whitespace(string1[i1], F_false); + + if (F_status_is_error(status)) { + + // Ignore possibly invalid UTF-8 codes. + if (F_status_set_fine(status) != F_maybe) { + return status; + } + } + + if (status == F_false) break; + } // for + + // Skip past leading whitespace in string2. + for (; i2 < stop2; i2++) { + + // Skip past NULL in string2. + while (i2 < stop2 && !string2[i2]) ++i2; + if (i2 == stop2) break; + + status = f_utf_character_is_whitespace(string2[i2], F_false); + + if (F_status_is_error(status)) { + + // Ignore possibly invalid UTF-8 codes. + if (F_status_set_fine(status) != F_maybe) { + return status; + } + } + + if (status == F_false) break; + } // for + + f_array_length_t last1 = i1; + f_array_length_t last2 = i2; + + { + // The size1 and size2 are to represent to total number of characters after trim. + f_array_length_t size1 = 0; + f_array_length_t size2 = 0; + f_array_length_t j = 0; + + // Determine where the last non-whitespace is in string1. + for (j = i1; j < stop1; ++j) { + + // Skip past NULL in string1. + while (j < stop1 && !string1[j]) ++j; + if (j == stop1) break; + + status = f_utf_character_is_whitespace(string1[j], F_false); + + if (F_status_is_error(status)) { + // ignore possibly invalid UTF-8 codes. + if (F_status_set_fine(status) != F_maybe) { + return status; + } + } + + if (status == F_false) { + last1 = j; + ++size1; + } + } // for + + // Determine where the last non-whitespace is in string2. + for (j = i2; j < stop2; ++j) { + + // Skip past NULL in string2. + while (j < stop2 && !string2[j]) ++j; + if (j == stop2) break; + + status = f_utf_character_is_whitespace(string2[j], F_false); + + if (F_status_is_error(status)) { + + // Ignore possibly invalid UTF-8 codes. + if (F_status_set_fine(status) != F_maybe) { + return status; + } + } + + if (status == F_false) { + last2 = j; + ++size2; + } + } // for + + if (size1 != size2) { + return F_equal_to_not; + } + } + + for (; i1 < last1 && i2 < last2; ++i1, ++i2) { + + // Skip past NULL in string1. + while (i1 < last1 && !string1[i1]) ++i1; + if (i1 == last1) break; + + // Skip past NULL in string2. + while (i2 < last2 && !string2[i2]) ++i2; + if (i2 == last2) break; + + if (string1[i1] != string2[i2]) return F_equal_to_not; + } // for + + // Only return F_equal_to if all remaining characters are NULL. + for (; i1 < last1; ++i1) { + if (string1[i1] != 0) return F_equal_to_not; + } // for + + for (; i2 < last2; ++i2) { + if (string2[i2] != 0) return F_equal_to_not; + } // for + + return F_equal_to; + } +#endif // !defined(_di_f_compare_utf_trim_) || !defined(_di_f_compare_utf_dynamic_trim_) || !defined(_di_f_compare_utf_dynamic_partial_trim_) + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_compare/c/compare/private-utf.h b/level_0/f_compare/c/compare/private-utf.h new file mode 100644 index 0000000..cd2f0b1 --- /dev/null +++ b/level_0/f_compare/c/compare/private-utf.h @@ -0,0 +1,89 @@ +/** + * FLL - Level 0 + * + * Project: Compare + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * These are provided for internal reduction in redundant code. + * These should not be exposed/used outside of this project. + */ +#ifndef _PRIVATE_F_compare_utf_h +#define _PRIVATE_F_compare_utf_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Private implementation of fl_utf_compare(). + * + * Intended to be shared to each of the different implementation variations. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param offset1 + * Offset of string1 to start at. + * @param offset2 + * Offset of string2 to start at. + * @param stop1 + * Exclusive stop position for string1. + * @param stop2 + * Exclusive stop position for string2. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * @see f_compare_utf() + * @see f_compare_utf_dynamic() + * @see f_compare_utf_dynamic_partial() + */ +#if !defined(_di_f_compare_utf_) || !defined(_di_f_compare_utf_dynamic_) || !defined(_di_f_compare_utf_dynamic_partial_) + extern f_status_t private_f_compare_utf(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) F_attribute_visibility_internal_d; +#endif // !defined(_di_f_compare_utf_) || !defined(_di_f_compare_utf_dynamic_) || !defined(_di_f_compare_utf_dynamic_partial_) + +/** + * Private implementation of f_compare_utf_trim(). + * + * Intended to be shared to each of the different implementation variations. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param offset1 + * Offset of string1 to start at. + * @param offset2 + * Offset of string2 to start at. + * @param stop1 + * Exclusive stop position for string1. + * @param stop2 + * Exclusive stop position for string2. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Errors (with error bit) from: f_utf_character_is_whitespace() + * + * @see f_utf_character_is_whitespace() + * @see f_compare_utf_trim() + * @see f_compare_utf_dynamic_trim() + * @see f_compare_utf_dynamic_partial_trim() + */ +#if !defined(_di_f_compare_utf_trim_) || !defined(_di_f_compare_utf_dynamic_trim_) || !defined(_di_f_compare_utf_dynamic_partial_trim_) + extern f_status_t private_f_compare_utf_trim(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) F_attribute_visibility_internal_d; +#endif // !defined(_di_f_compare_utf_trim_) || !defined(_di_f_compare_utf_dynamic_trim_) || !defined(_di_f_compare_utf_dynamic_partial_trim_) + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _PRIVATE_F_compare_utf_h diff --git a/level_0/f_compare/c/compare/utf.c b/level_0/f_compare/c/compare/utf.c new file mode 100644 index 0000000..b4ff316 --- /dev/null +++ b/level_0/f_compare/c/compare/utf.c @@ -0,0 +1,60 @@ +#include "../compare.h" +#include "private-utf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _di_f_compare_utf_ + f_status_t f_compare_utf(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t length1, const f_array_length_t length2) { + + return private_f_compare_utf(string1, string2, 0, 0, length1, length2); + } +#endif // _di_f_compare_utf_ + +#ifndef _di_f_compare_utf_dynamic_ + f_status_t f_compare_utf_dynamic(const f_utf_string_static_t string1, const f_utf_string_static_t string2) { + + return private_f_compare_utf(string1.string, string2.string, 0, 0, string1.used, string2.used); + } +#endif // _di_f_compare_utf_dynamic_ + +#ifndef _di_f_compare_utf_dynamic_trim_ + f_status_t f_compare_utf_dynamic_trim(const f_utf_string_static_t string1, const f_utf_string_static_t string2) { + + return private_f_compare_utf_trim(string1.string, string2.string, 0, 0, string1.used, string2.used); + } +#endif // _di_f_compare_utf_dynamic_trim_ + +#ifndef _di_f_compare_utf_dynamic_partial_ + f_status_t f_compare_utf_dynamic_partial(const f_utf_string_static_t string1, const f_utf_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2) { + #ifndef _di_level_0_parameter_checking_ + if (string1.used <= range1.stop) return F_status_set_error(F_parameter); + if (string2.used <= range2.stop) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + return private_f_compare_utf(string1.string, string2.string, range1.start, range2.start, range1.stop + 1, range2.stop + 1); + } +#endif // _di_f_compare_utf_dynamic_partial_ + +#ifndef _di_f_compare_utf_dynamic_partial_trim_ + f_status_t f_compare_utf_dynamic_partial_trim(const f_utf_string_static_t string1, const f_utf_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2) { + #ifndef _di_level_0_parameter_checking_ + if (string1.used <= range1.stop) return F_status_set_error(F_parameter); + if (string2.used <= range2.stop) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + return private_f_compare_utf_trim(string1.string, string2.string, range1.start, range2.start, range1.stop + 1, range2.stop + 1); + } +#endif // _di_f_compare_utf_dynamic_partial_trim_ + +#ifndef _di_f_compare_utf_trim_ + f_status_t f_compare_utf_trim(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t length1, const f_array_length_t length2) { + + return private_f_compare_utf_trim(string1, string2, 0, 0, length1, length2); + } +#endif // _di_f_compare_utf_trim_ + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_compare/c/compare/utf.h b/level_0/f_compare/c/compare/utf.h new file mode 100644 index 0000000..ffec18a --- /dev/null +++ b/level_0/f_compare/c/compare/utf.h @@ -0,0 +1,180 @@ +/** + * FLL - Level 0 + * + * Project: Compare + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Provides basic UTF-8 string comparison capabilities. + */ +#ifndef _F_compare_utf_h +#define _F_compare_utf_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Compare two UTF-8 strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * Length of string1. + * @param length2 + * Length of string2. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_utf_ + extern f_status_t f_compare_utf(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t length1, const f_array_length_t length2); +#endif // _di_f_compare_utf_ + +/** + * Compare two UTF-8 strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + */ +#ifndef _di_f_compare_utf_dynamic_ + extern f_status_t f_compare_utf_dynamic(const f_utf_string_static_t string1, const f_utf_string_static_t string2); +#endif // _di_f_compare_utf_dynamic_ + +/** + * Compare two UTF-8 strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + * + * Errors (with error bit) from: f_utf_character_is_whitespace(). + * + * @see f_utf_character_is_whitespace() + */ +#ifndef _di_f_compare_utf_dynamic_trim_ + extern f_status_t f_compare_utf_dynamic_trim(const f_utf_string_static_t string1, const f_utf_string_static_t string2); +#endif // _di_f_compare_utf_dynamic_trim_ + +/** + * Compare two UTF-8 strings, similar to strncmp(), but restricted to the given ranges. + * + * This does not stop on NULL. + * NULL characters are ignored. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param range1 + * A range within the string1 to restrict the comparison to. + * @param range2 + * A range within the string2 to restrict the comparison to. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_f_compare_utf_dynamic_partial_ + extern f_status_t f_compare_utf_dynamic_partial(const f_utf_string_static_t string1, const f_utf_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2); +#endif // _di_f_compare_utf_dynamic_partial_ + +/** + * Compare two UTF-8 strings, similar to strncmp(), but restricted to the given ranges. + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param range1 + * A range within the string1 to restrict the comparison to. + * @param range2 + * A range within the string2 to restrict the comparison to. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Errors (with error bit) from: f_utf_character_is_whitespace(). + * + * @see f_utf_character_is_whitespace() + */ +#ifndef _di_f_compare_utf_dynamic_partial_trim_ + extern f_status_t f_compare_utf_dynamic_partial_trim(const f_utf_string_static_t string1, const f_utf_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2); +#endif // _di_f_compare_utf_dynamic_partial_trim_ + +/** + * Compare two UTF-8 strings, similar to strncmp(). + * + * This does not stop on NULL. + * NULL characters are ignored. + * Ignores leading and trailing whitespace. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param length1 + * Length of string1. + * @param length2 + * Length of string2. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Errors (with error bit) from: f_utf_character_is_whitespace(). + * + * @see f_utf_character_is_whitespace() + */ +#ifndef _di_f_compare_utf_trim_ + extern f_status_t f_compare_utf_trim(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t length1, const f_array_length_t length2); +#endif // _di_f_compare_utf_trim_ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _F_compare_utf_h diff --git a/level_1/fl_string/c/private-string.c b/level_0/f_compare/c/private-compare.c similarity index 72% rename from level_1/fl_string/c/private-string.c rename to level_0/f_compare/c/private-compare.c index 3d1315d..a3e9626 100644 --- a/level_1/fl_string/c/private-string.c +++ b/level_0/f_compare/c/private-compare.c @@ -1,12 +1,12 @@ -#include "string.h" -#include "private-string.h" +#include "compare.h" +#include "private-compare.h" #ifdef __cplusplus extern "C" { #endif -#if !defined(_di_fl_string_compare_) || !defined(_di_fl_string_dynamic_compare_) || !defined(_di_fl_string_dynamic_compare_string_) || !defined(_di_fl_string_dynamic_partial_compare_) || !defined(_di_fl_string_dynamic_partial_compare_dynamic_) - f_status_t private_fl_string_compare(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) { +#if !defined(_di_f_compare_) || !defined(_di_f_compare_dynamic_) || !defined(_di_f_compare_dynamic_string_) || !defined(_di_f_compare_dynamic_partial_) || !defined(_di_f_compare_dynamic_partial_dynamic_) + f_status_t private_f_compare(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) { f_array_length_t i1 = offset1; f_array_length_t i2 = offset2; @@ -35,10 +35,10 @@ extern "C" { return F_equal_to; } -#endif // !defined(_di_fl_string_compare_) || !defined(_di_fl_string_dynamic_compare_) || !defined(_di_fl_string_dynamic_compare_string_) || !defined(_di_fl_string_dynamic_partial_compare_) || !defined(_di_fl_string_dynamic_partial_compare_dynamic_) +#endif // !defined(_di_f_compare_) || !defined(_di_f_compare_dynamic_) || !defined(_di_f_compare_dynamic_string_) || !defined(_di_f_compare_dynamic_partial_) || !defined(_di_f_compare_dynamic_partial_dynamic_) -#if !defined(_di_fl_string_compare_except_) || !defined(_di_fl_string_dynamic_compare_except_) || !defined(_di_fl_string_dynamic_partial_compare_except_) - f_status_t private_fl_string_compare_except(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2, const f_array_lengths_t except1, const f_array_lengths_t except2) { +#if !defined(_di_f_compare_except_) || !defined(_di_f_compare_dynamic_except_) || !defined(_di_f_compare_dynamic_partial_except_) + f_status_t private_f_compare_except(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2, const f_array_lengths_t except1, const f_array_lengths_t except2) { f_array_length_t i1 = offset1; f_array_length_t i2 = offset2; @@ -105,10 +105,10 @@ extern "C" { return F_equal_to; } -#endif // !defined(_di_fl_string_compare_except_) || !defined(_di_fl_string_dynamic_compare_except_) || !defined(_di_fl_string_dynamic_partial_compare_except_) +#endif // !defined(_di_f_compare_except_) || !defined(_di_f_compare_dynamic_except_) || !defined(_di_f_compare_dynamic_partial_except_) -#if !defined(_di_fl_string_compare_except_trim_) || !defined(_di_fl_string_dynamic_compare_except_trim_) || !defined(_di_fl_string_dynamic_partial_compare_except_trim_) - f_status_t private_fl_string_compare_except_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2, const f_array_lengths_t except1, const f_array_lengths_t except2) { +#if !defined(_di_f_compare_except_trim_) || !defined(_di_f_compare_dynamic_except_trim_) || !defined(_di_f_compare_dynamic_partial_except_trim_) + f_status_t private_f_compare_except_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2, const f_array_lengths_t except1, const f_array_lengths_t except2) { f_array_length_t i1 = offset1; f_array_length_t i2 = offset2; @@ -390,10 +390,10 @@ extern "C" { return F_equal_to; } -#endif // !defined(_di_fl_string_compare_except_trim_) || !defined(_di_fl_string_dynamic_compare_except_trim_) || !defined(_di_fl_string_dynamic_partial_compare_except_trim_) +#endif // !defined(_di_f_compare_except_trim_) || !defined(_di_f_compare_dynamic_except_trim_) || !defined(_di_f_compare_dynamic_partial_except_trim_) -#if !defined(_di_fl_string_compare_trim_) || !defined(_di_fl_string_dynamic_compare_trim_) || !defined(_di_fl_string_dynamic_partial_compare_trim_) - f_status_t private_fl_string_compare_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) { +#if !defined(_di_f_compare_trim_) || !defined(_di_f_compare_dynamic_trim_) || !defined(_di_f_compare_dynamic_partial_trim_) + f_status_t private_f_compare_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) { f_array_length_t i1 = offset1; f_array_length_t i2 = offset2; @@ -603,116 +603,7 @@ extern "C" { return F_equal_to; } -#endif // !defined(_di_fl_string_compare_trim_) || !defined(_di_fl_string_dynamic_compare_trim_) || !defined(_di_fl_string_dynamic_partial_compare_trim_) - -#if !defined(_di_fl_string_dynamic_partial_rip_) || !defined(_di_fl_string_dynamic_partial_rip_nulless_) || !defined(_di_fl_string_dynamic_rip_) || !defined(_di_fl_string_rip_) || !defined(_di_fl_string_rip_nulless_) - f_status_t private_fl_string_rip_find_range(const f_string_t string, f_array_length_t * const start, f_array_length_t * const stop) { - - const f_array_length_t stop_original = *stop; - f_array_length_t previous = 0; - f_status_t status = F_none; - - // Skip past leading whitespace. - for (; *start <= *stop; *start += macro_f_utf_byte_width(string[*start])) { - - // Skip past NULL. - while (*start < *stop && !string[*start]) ++(*start); - if (*start > *stop) break; - - status = f_utf_is_whitespace(string + *start, (*stop - *start) + 1, F_false); - - if (F_status_is_error(status)) { - if (F_status_set_fine(status) == F_parameter) return status; - - break; - } - - if (status == F_false) break; - - status = f_utf_is_combining(string + *start, (*stop - *start) + 1); - - if (F_status_is_error(status)) { - if (F_status_set_fine(status) == F_parameter) return status; - - break; - } - - // This is a combining character, so the previous character is no longer considered a space. - if (status == F_true) { - *start = previous; - - break; - } - - previous = *start; - } // for - - // Use previous as boolean here to designate that a combining is found in a previous character. - for (previous = F_false; *stop > *start; --(*stop)) { - - // Skip past NULL. - while (*stop > *start && !string[*stop]) --(*stop); - - if (!string[*stop]) continue; - if (*stop == *start) break; - - // Go left until either width is 0 (ASCII, or > 1) to determine the character. - for (;;) { - - if (macro_f_utf_byte_width_is(string[*stop]) == 1) { - --(*stop); - - if (*stop == *start) break; - } - else { - break; - } - } // for - - if (*stop == *start) break; - - status = f_utf_is_whitespace(string + *stop, (stop_original - *stop) + 1, F_false); - - if (F_status_is_error(status)) { - if (F_status_set_fine(status) == F_parameter) return status; - - break; - } - - if (status == F_false) break; - if (status == F_true && previous == F_true) break; - - previous = F_false; - - status = f_utf_is_combining(string + *stop, (stop_original - *stop) + 1); - - if (F_status_is_error(status)) { - if (F_status_set_fine(status) == F_parameter) return status; - - break; - } - - // This is a combining character, so the next character is no longer considered a space. - if (status == F_true) { - previous = F_true; - } - } // for - - if (*stop == *start) { - status = f_utf_is_whitespace(string + *stop, (stop_original - *stop) + 1, F_false); - - if (F_status_is_error(status)) { - if (F_status_set_fine(status) == F_parameter) return status; - } - - if (status == F_true) { - return F_data_not; - } - } - - return F_none; - } -#endif // !defined(_di_fl_string_dynamic_partial_rip_) || !defined(_di_fl_string_dynamic_partial_rip_nulless_) || !defined(_di_fl_string_dynamic_rip_) || !defined(_di_fl_string_rip_) || !defined(_di_fl_string_rip_nulless_) +#endif // !defined(_di_f_compare_trim_) || !defined(_di_f_compare_dynamic_trim_) || !defined(_di_f_compare_dynamic_partial_trim_) #ifdef __cplusplus } // extern "C" diff --git a/level_0/f_compare/c/private-compare.h b/level_0/f_compare/c/private-compare.h new file mode 100644 index 0000000..fa189fa --- /dev/null +++ b/level_0/f_compare/c/private-compare.h @@ -0,0 +1,172 @@ +/** + * FLL - Level 0 + * + * Project: Compare + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * These are provided for internal reduction in redundant code. + * These should not be exposed/used outside of this project. + */ +#ifndef _PRIVATE_F_compare_h +#define _PRIVATE_F_compare_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Private implementation of f_compare(). + * + * Intended to be shared to each of the different implementation variations. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param offset1 + * Offset of string1 to start at. + * @param offset2 + * Offset of string2 to start at. + * @param stop1 + * Exclusive stop position for string1. + * @param stop2 + * Exclusive stop position for string2. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * @see f_compare() + * @see f_compare_dynamic() + * @see f_compare_dynamic_string() + * @see f_compare_dynamic_partial() + * @see f_compare_dynamic_partial_dynamic() + */ +#if !defined(_di_f_compare_) || !defined(_di_f_compare_dynamic_) || !defined(_di_f_compare_dynamic_string_) || !defined(_di_f_compare_dynamic_partial_) || !defined(_di_f_compare_dynamic_partial_dynamic_) + extern f_status_t private_f_compare(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) F_attribute_visibility_internal_d; +#endif // !defined(_di_f_compare_) || !defined(_di_f_compare_dynamic_) || !defined(_di_f_compare_dynamic_string_) || !defined(_di_f_compare_dynamic_partial_) || !defined(_di_f_compare_dynamic_partial_dynamic_) + +/** + * Private implementation of f_compare_except(). + * + * Intended to be shared to each of the different implementation variations. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param offset1 + * Offset of string1 to start at. + * @param offset2 + * Offset of string2 to start at. + * @param stop1 + * Exclusive stop position for string1. + * @param stop2 + * Exclusive stop position for string2. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * @see f_compare_except() + * @see f_compare_dynamic_except() + * @see f_compare_dynamic_partial_except() + */ +#if !defined(_di_f_compare_except_) || !defined(_di_f_compare_dynamic_except_) || !defined(_di_f_compare_dynamic_partial_except_) + extern f_status_t private_f_compare_except(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2, const f_array_lengths_t except1, const f_array_lengths_t except2) F_attribute_visibility_internal_d; +#endif // !defined(_di_f_compare_except_) || !defined(_di_f_compare_dynamic_except_) || !defined(_di_f_compare_dynamic_partial_except_) + +/** + * Private implementation of f_compare_except_trim(). + * + * Intended to be shared to each of the different implementation variations. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param offset1 + * Offset of string1 to start at. + * @param offset2 + * Offset of string2 to start at. + * @param stop1 + * Exclusive stop position for string1. + * @param stop2 + * Exclusive stop position for string2. + * @param except1 + * A set of locations within string1 to ignore. + * This assumes/requires that the locations be in linear order. + * @param except2 + * A set of locations within string2 to ignore. + * This assumes/requires that the locations be in linear order. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_utf_not (with error bit) if a character is not valid UTF-8. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + * + * @see f_compare_except_trim() + * @see f_compare_dynamic_except_trim() + * @see f_compare_dynamic_partial_except_trim() + */ +#if !defined(_di_f_compare_except_trim_) || !defined(_di_f_compare_dynamic_except_trim_) || !defined(_di_f_compare_dynamic_partial_except_trim_) + extern f_status_t private_f_compare_except_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2, const f_array_lengths_t except1, const f_array_lengths_t except2) F_attribute_visibility_internal_d; +#endif // !defined(_di_f_compare_except_trim_) || !defined(_di_f_compare_dynamic_except_trim_) || !defined(_di_f_compare_dynamic_partial_except_trim_) + +/** + * Private implementation of f_compare_trim(). + * + * Intended to be shared to each of the different implementation variations. + * + * @param string1 + * String to compare. + * @param string2 + * String to compare. + * @param offset1 + * Offset of string1 to start at. + * @param offset2 + * Offset of string2 to start at. + * @param stop1 + * Exclusive stop position for string1. + * @param stop2 + * Exclusive stop position for string2. + * + * @return + * F_equal_to when both strings equal. + * F_equal_to_not when both strings do not equal. + * + * F_utf_not (with error bit) if a character is not valid UTF-8. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + * + * @see f_compare_trim() + * @see f_compare_dynamic_trim() + * @see f_compare_dynamic_partial_trim() + */ +#if !defined(_di_f_compare_trim_) || !defined(_di_f_compare_dynamic_trim_) || !defined(_di_f_compare_dynamic_partial_trim_) + extern f_status_t private_f_compare_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) F_attribute_visibility_internal_d; +#endif // !defined(_di_f_compare_trim_) || !defined(_di_f_compare_dynamic_trim_) || !defined(_di_f_compare_dynamic_partial_trim_) + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _PRIVATE_F_compare_h diff --git a/level_1/fl_string/data/build/defines b/level_0/f_compare/data/build/defines similarity index 91% rename from level_1/fl_string/data/build/defines rename to level_0/f_compare/data/build/defines index c665317..4f13080 100644 --- a/level_1/fl_string/data/build/defines +++ b/level_0/f_compare/data/build/defines @@ -1,2 +1 @@ # fss-0000 - diff --git a/level_1/fl_string/data/build/dependencies b/level_0/f_compare/data/build/dependencies similarity index 100% rename from level_1/fl_string/data/build/dependencies rename to level_0/f_compare/data/build/dependencies diff --git a/level_0/f_compare/data/build/dependencies-tests b/level_0/f_compare/data/build/dependencies-tests new file mode 100644 index 0000000..dea3179 --- /dev/null +++ b/level_0/f_compare/data/build/dependencies-tests @@ -0,0 +1,3 @@ +# fss-0001 + +cmocka 1.* diff --git a/level_1/fl_string/data/build/fakefile b/level_0/f_compare/data/build/fakefile similarity index 100% rename from level_1/fl_string/data/build/fakefile rename to level_0/f_compare/data/build/fakefile diff --git a/level_0/f_compare/data/build/settings b/level_0/f_compare/data/build/settings new file mode 100644 index 0000000..f8e2e04 --- /dev/null +++ b/level_0/f_compare/data/build/settings @@ -0,0 +1,58 @@ +# fss-0001 + +build_name f_compare + +version_major 0 +version_minor 7 +version_micro 0 +version_file micro +version_target minor + +modes individual clang test coverage +modes_default individual + +build_compiler gcc +build_compiler-clang clang +build_indexer ar +build_indexer_arguments rcs +build_language c + +build_libraries -lc +build_libraries-individual -lf_memory -lf_string -lf_utf + +build_sources_library compare.c compare/utf.c private-compare.c compare/private-utf.c + +build_sources_headers compare.h compare/utf.h + +build_script yes +build_shared yes +build_static no + +path_headers fll/level_0 +path_library_script script +path_library_shared shared +path_library_static static +path_object_script script +path_object_shared shared +path_object_static static +path_program_script script +path_program_shared shared +path_program_static static + +has_path_standard yes +preserve_path_headers yes + +search_exclusive yes +search_shared yes +search_static yes + +environment PATH LD_LIBRARY_PATH + +flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses +flags-clang -Wno-logical-op-parentheses +flags-test -O0 -fstack-protector -Wall +flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/ + +flags_library -fPIC +flags_object -fPIC +flags_program -fPIE diff --git a/level_0/f_compare/data/build/settings-tests b/level_0/f_compare/data/build/settings-tests new file mode 100644 index 0000000..acf4512 --- /dev/null +++ b/level_0/f_compare/data/build/settings-tests @@ -0,0 +1,54 @@ +# fss-0001 +# +# Builds a program that is links to the generated library and is executed to perform tests. +# +# Memory leaks in the test program can be checked for by running valgrind with this executable. +# + +build_name test-f_compare + +version_major 0 +version_minor 7 +version_micro 0 +version_file major +version_target major + +modes individual clang test coverage +modes_default individual test + +build_compiler gcc +build_compiler-clang clang +build_indexer ar +build_indexer_arguments rcs +build_language c + +build_libraries -lc -lcmocka +build_libraries-individual -lf_memory -lf_string -lf_utf -lf_compare + +build_sources_program test-compare-.c test-compare-dynamic.c test-compare-dynamic_string.c +build_sources_program test-compare.c + +build_script no +build_shared yes +build_static no + +path_headers tests/unit/c +path_sources tests/unit/c + +has_path_standard no +preserve_path_headers yes + +search_exclusive yes +search_shared yes +search_static yes + +defines -Ibuild/includes +defines_static -Lbuild/libraries/static +defines_shared -Lbuild/libraries/shared + +flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses +flags-clang -Wno-logical-op-parentheses +flags-test -fstack-protector -Wall +flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/ + +flags_program -fPIE diff --git a/level_0/f_compare/data/build/testfile b/level_0/f_compare/data/build/testfile new file mode 100644 index 0000000..c228fed --- /dev/null +++ b/level_0/f_compare/data/build/testfile @@ -0,0 +1,55 @@ +# fss-0005 iki-0002 + +settings: + load_build yes + fail exit + + environment PATH LD_LIBRARY_PATH + environment CMOCKA_XML_FILE CMOCKA_MESSAGE_OUTPUT CMOCKA_TEST_ABORT + + # Cmcka is not fully thread-safe, set this to "1" to have cmocka call abort() on a test failure. + #CMOCKA_TEST_ABORT 1 + + # One of: STDOUT, SUBUNIT, TAP, or XML. + #define CMOCKA_MESSAGE_OUTPUT STDOUT + + # When in "XML" output mode, output to this file rather than stdout. + #define CMOCKA_XML_FILE ./out.xml + +main: + build settings individual test + build settings-tests individual test + + operate ld_library_path + + if exist build/programs/shared/test-f_compare + shell build/programs/shared/test-f_compare + + if exist build/programs/static/test-f_compare + shell build/programs/static/test-f_compare + + if not exist build/programs/shared/test-f_compare + and not exist build/programs/static/test-f_compare + operate not_created + +not_created: + print + print 'context:"error"Failed to test due to being unable to find either a shared or static test binary to perform tests. context:"reset"' + + exit failure + +ld_library_path: + if define LD_LIBRARY_PATH + and parameter work + define LD_LIBRARY_PATH 'build/libraries/shared:parameter:"work:value"libraries/shared:define:"LD_LIBRARY_PATH"' + + else + if define LD_LIBRARY_PATH + define LD_LIBRARY_PATH 'build/libraries/shared:define:"LD_LIBRARY_PATH"' + + else + if parameter work + define LD_LIBRARY_PATH 'build/libraries/shared:parameter:"work:value"libraries/shared' + + else + define LD_LIBRARY_PATH build/libraries/shared diff --git a/level_0/f_compare/tests/unit/c/test-compare-.c b/level_0/f_compare/tests/unit/c/test-compare-.c new file mode 100644 index 0000000..64bc01e --- /dev/null +++ b/level_0/f_compare/tests/unit/c/test-compare-.c @@ -0,0 +1,269 @@ +#include "test-compare.h" +#include "test-compare-.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void test__f_compare___works(void **state) { + + const f_string_static_t string_1s[] = { + + // 1. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + + // 2. + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + + // 3. + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + + // 4. + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + + // 5. + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + + // 6. + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + + // 7. + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + + // 8. + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + }; + + const f_string_static_t string_2s[] = { + + // 1. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 2. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 3. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 4. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 5. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 6. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 7. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 8. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + }; + + const f_status_t expects[] = { + + // 1. + F_equal_to, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 2. + F_equal_to, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 3. + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 4. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to, + + // 5. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 6. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + + // 7. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to, + + // 8. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to, + }; + + for (uint8_t i = 0; i < 64; ++i) { + + const f_status_t status = f_compare(string_1s[i].string, string_2s[i].string, string_1s[i].used, string_2s[i].used); + + assert_int_equal(status, expects[i]); + } // for +} + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_compare/tests/unit/c/test-compare-.h b/level_0/f_compare/tests/unit/c/test-compare-.h new file mode 100644 index 0000000..e4169df --- /dev/null +++ b/level_0/f_compare/tests/unit/c/test-compare-.h @@ -0,0 +1,22 @@ +/** + * FLL - Level 0 + * + * Project: Control Group + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Test the compare project. + */ +#ifndef _TEST__F_compare__h +#define _TEST__F_compare__h + +// f_compare_() only returns memory failures. + +/** + * Test that function works. + * + * @see f_compare() + */ +extern void test__f_compare___works(void **state); + +#endif // _TEST__F_compare__h diff --git a/level_0/f_compare/tests/unit/c/test-compare-dynamic.c b/level_0/f_compare/tests/unit/c/test-compare-dynamic.c new file mode 100644 index 0000000..8fc2da0 --- /dev/null +++ b/level_0/f_compare/tests/unit/c/test-compare-dynamic.c @@ -0,0 +1,269 @@ +#include "test-compare.h" +#include "test-compare-dynamic.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void test__f_compare_dynamic__works(void **state) { + + const f_string_static_t string_1s[] = { + + // 1. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + + // 2. + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + + // 3. + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + + // 4. + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + + // 5. + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + + // 6. + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + + // 7. + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + + // 8. + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + }; + + const f_string_static_t string_2s[] = { + + // 1. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 2. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 3. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 4. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 5. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 6. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 7. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 8. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + }; + + const f_status_t expects[] = { + + // 1. + F_equal_to, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 2. + F_equal_to, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 3. + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 4. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to, + + // 5. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 6. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + + // 7. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to, + + // 8. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to, + }; + + for (uint8_t i = 0; i < 64; ++i) { + + const f_status_t status = f_compare_dynamic(string_1s[i], string_2s[i]); + + assert_int_equal(status, expects[i]); + } // for +} + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_compare/tests/unit/c/test-compare-dynamic.h b/level_0/f_compare/tests/unit/c/test-compare-dynamic.h new file mode 100644 index 0000000..58bd223 --- /dev/null +++ b/level_0/f_compare/tests/unit/c/test-compare-dynamic.h @@ -0,0 +1,22 @@ +/** + * FLL - Level 0 + * + * Project: Control Group + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Test the compare project. + */ +#ifndef _TEST__F_compare_dynamic_h +#define _TEST__F_compare_dynamic_h + +// f_compare_() only returns memory failures. + +/** + * Test that function works. + * + * @see f_compare() + */ +extern void test__f_compare_dynamic__works(void **state); + +#endif // _TEST__F_compare_dynamic_h diff --git a/level_0/f_compare/tests/unit/c/test-compare-dynamic_string.c b/level_0/f_compare/tests/unit/c/test-compare-dynamic_string.c new file mode 100644 index 0000000..0639602 --- /dev/null +++ b/level_0/f_compare/tests/unit/c/test-compare-dynamic_string.c @@ -0,0 +1,269 @@ +#include "test-compare.h" +#include "test-compare-dynamic_string.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void test__f_compare_dynamic_string__works(void **state) { + + const f_string_static_t string_1s[] = { + + // 1. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize(0, 0, 0), + + // 2. + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + + // 3. + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("1", 0, 1), + + // 4. + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("one", 0, 3), + + // 5. + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + + // 6. + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + + // 7. + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + + // 8. + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + }; + + const f_string_static_t string_2s[] = { + + // 1. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 2. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 3. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 4. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 5. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 6. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 7. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + + // 8. + macro_f_string_static_t_initialize(0, 0, 0), + macro_f_string_static_t_initialize("", 0, 0), + macro_f_string_static_t_initialize("1", 0, 1), + macro_f_string_static_t_initialize("one", 0, 3), + macro_f_string_static_t_initialize("One", 0, 3), + macro_f_string_static_t_initialize("\0ne", 0, 3), + macro_f_string_static_t_initialize("o\0ne", 0, 4), + macro_f_string_static_t_initialize("one\0", 0, 4), + }; + + const f_status_t expects[] = { + + // 1. + F_equal_to, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 2. + F_equal_to, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 3. + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 4. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to, + + // 5. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + + // 6. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + + // 7. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to, + + // 8. + F_equal_to_not, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to_not, + F_equal_to_not, + F_equal_to, + F_equal_to, + }; + + for (uint8_t i = 0; i < 64; ++i) { + + const f_status_t status = f_compare_dynamic_string(string_1s[i].string, string_2s[i], string_1s[i].used); + + assert_int_equal(status, expects[i]); + } // for +} + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_compare/tests/unit/c/test-compare-dynamic_string.h b/level_0/f_compare/tests/unit/c/test-compare-dynamic_string.h new file mode 100644 index 0000000..f711961 --- /dev/null +++ b/level_0/f_compare/tests/unit/c/test-compare-dynamic_string.h @@ -0,0 +1,22 @@ +/** + * FLL - Level 0 + * + * Project: Control Group + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Test the compare project. + */ +#ifndef _TEST__F_compare_dynamic_string_h +#define _TEST__F_compare_dynamic_string_h + +// f_compare_() only returns memory failures. + +/** + * Test that function works. + * + * @see f_compare() + */ +extern void test__f_compare_dynamic_string__works(void **state); + +#endif // _TEST__F_compare_dynamic_string_h diff --git a/level_0/f_compare/tests/unit/c/test-compare.c b/level_0/f_compare/tests/unit/c/test-compare.c new file mode 100644 index 0000000..631d440 --- /dev/null +++ b/level_0/f_compare/tests/unit/c/test-compare.c @@ -0,0 +1,79 @@ +#include "test-compare.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int setup(void **state) { + + return 0; +} + +int setdown(void **state) { + + errno = 0; + + return 0; +} + +int main(void) { + + const struct CMUnitTest tests[] = { + + cmocka_unit_test(test__f_compare___works), + cmocka_unit_test(test__f_compare_dynamic__works), + //cmocka_unit_test(test__f_compare_dynamic_partial__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_dynamic__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_except__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_dynamic__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_string__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_trim__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_trim_dynamic__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_trim_string__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_string__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_trim_dynamic__works), + //cmocka_unit_test(test__f_compare_dynamic_partial_trim_string__works), + cmocka_unit_test(test__f_compare_dynamic_string__works), + //cmocka_unit_test(test__f_compare_dynamic_trim__works), + //cmocka_unit_test(test__f_compare_dynamic_trim_string__works), + //cmocka_unit_test(test__f_compare_dynamic_except__works), + //cmocka_unit_test(test__f_compare_dynamic_except_string__works), + //cmocka_unit_test(test__f_compare_dynamic_except_trim__works), + //cmocka_unit_test(test__f_compare_except__works), + //cmocka_unit_test(test__f_compare_except_trim__works), + //cmocka_unit_test(test__f_compare_except_trim_string__works), + //cmocka_unit_test(test__f_compare_trim__works), + + #ifndef _di_level_0_parameter_checking_ + // f_compare() doesn't use parameter checking. + // f_compare_dynamic() doesn't use parameter checking. + //cmocka_unit_test(test__f_compare_dynamic__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial_dynamic__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial_except__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_dynamic__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_string__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_trim__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_trim_dynamic__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial_except_trim_string__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial_string__parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_partial_trim_dynamic__parameter_checking), + // f_compare_dynamic_string() doesn't use parameter checking. + // f_compare_dynamic_trim() doesn't use parameter checking. + // f_compare_dynamic_trim_string() doesn't use parameter checking. + //cmocka_unit_test(test__f_compare_dynamic_except___parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_except_string___parameter_checking), + //cmocka_unit_test(test__f_compare_dynamic_except_trim___parameter_checking), + //cmocka_unit_test(test__f_compare_except___parameter_checking), + //cmocka_unit_test(test__f_compare_except_trim___parameter_checking), + //cmocka_unit_test(test__f_compare_except_trim_string___parameter_checking), + //cmocka_unit_test(test__f_compare_trim___parameter_checking), + #endif // _di_level_0_parameter_checking_ + }; + + return cmocka_run_group_tests(tests, setup, setdown); +} + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_compare/tests/unit/c/test-compare.h b/level_0/f_compare/tests/unit/c/test-compare.h new file mode 100644 index 0000000..596a7f4 --- /dev/null +++ b/level_0/f_compare/tests/unit/c/test-compare.h @@ -0,0 +1,91 @@ +/** + * FLL - Level 0 + * + * Project: Compare + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Test the compare project. + */ +#ifndef _TEST__F_compare_h +#define _TEST__F_compare_h + +// Libc includes. +#include +#include +#include +#include + +// cmocka includes. +#include + +// FLL-0 includes. +#include + +// Test includes. +#include "test-compare-.h" +#include "test-compare-dynamic.h" +//#include "test-compare-dynamic_partial.h" +//#include "test-compare-dynamic_partial_dynamic.h" +//#include "test-compare-dynamic_partial_except.h" +//#include "test-compare-dynamic_partial_except_dynamic.h" +//#include "test-compare-dynamic_partial_except_string.h" +//#include "test-compare-dynamic_partial_except_trim.h" +//#include "test-compare-dynamic_partial_except_trim_dynamic.h" +//#include "test-compare-dynamic_partial_except_trim_string.h" +//#include "test-compare-dynamic_partial_string.h" +//#include "test-compare-dynamic_partial_trim_dynamic.h" +//#include "test-compare-dynamic_partial_trim_string.h" +#include "test-compare-dynamic_string.h" +//#include "test-compare-dynamic_trim.h" +//#include "test-compare-dynamic_trim_string.h" +//#include "test-compare-dynamic_except.h" +//#include "test-compare-dynamic_except_string.h" +//#include "test-compare-dynamic_except_trim.h" +//#include "test-compare-except.h" +//#include "test-compare-except_trim.h" +//#include "test-compare-except_trim_string.h" +//#include "test-compare-trim.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Perform any setup operations. + * + * @param state + * The test state. + * + * @return + * The status of this function, where 0 means success. + */ +extern int setup(void **state); + +/** + * Peform any setdown operations. + * + * @param state + * The test state. + * + * @return + * The status of this function, where 0 means success. + */ +extern int setdown(void **state); + +/** + * Run all tests. + * + * @return + * The final result of the tests. + * + * @see cmocka_run_group_tests() + * @see cmocka_unit_test() + */ +extern int main(void); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _TEST__F_compare_h diff --git a/level_0/f_parse/c/parse.c b/level_0/f_parse/c/parse.c new file mode 100644 index 0000000..237efb1 --- /dev/null +++ b/level_0/f_parse/c/parse.c @@ -0,0 +1,653 @@ +#include "parse.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _di_f_parse_dynamic_seek_line_to_utf_character_ + f_status_t f_parse_dynamic_seek_line_to_utf_character(const f_string_static_t buffer, const f_utf_char_t seek_to_this, f_string_range_t * const range) { + #ifndef _di_level_0_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + if (!buffer.used) return F_data_not; + if (range->start > range->stop) return F_data_not_stop; + + const unsigned short seek_width = macro_f_utf_char_t_width(seek_to_this); + + f_status_t status = F_none; + + unsigned short width = 0; + f_array_length_t width_max = 0; + + while (range->start <= range->stop) { + + width_max = (range->stop - range->start) + 1; + width = macro_f_utf_byte_width_is(buffer.string[range->start]); + + if (!width) { + width = 1; + + if (buffer.string[range->start] == f_string_eol_s.string[0]) return F_none_eol; + if (seek_width == width && buffer.string[range->start] == seek_to_this) return F_none; + } + // Do not operate on UTF-8 fragments that are not the first byte of the character. + else if (width == 1) { + return F_status_set_error(F_complete_not_utf); + } + else { + if (range->start + width > range->stop) return F_status_set_error(F_complete_not_utf_stop); + + if (width == seek_width) { + f_utf_char_t character = 0; + + status = f_utf_char_to_character(buffer.string + range->start, width_max, &character); + if (F_status_is_error(status)) return status; + if (character == seek_to_this) return F_none; + } + } + + range->start += width; + + if (range->start >= range->stop) return F_none_stop; + } // while + + return F_none_eos; + } +#endif // _di_f_parse_dynamic_seek_line_to_utf_character_ + +#ifndef _di_f_parse_dynamic_seek_line_until_graph_ + f_status_t f_parse_dynamic_seek_line_until_graph(const f_string_static_t buffer, const uint8_t placeholder, f_string_range_t * const range) { + #ifndef _di_level_0_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + if (!buffer.used) return F_data_not; + if (range->start > range->stop) return F_data_not_stop; + + f_status_t status = F_none; + unsigned short width = 0; + + f_array_length_t width_max = (range->stop - range->start) + 1; + + while (buffer.string[range->start] == placeholder || (status = f_utf_is_graph(buffer.string + range->start, width_max)) == F_false) { + + if (F_status_is_error(status)) return status; + if (buffer.string[range->start] == f_string_eol_s.string[0]) return F_none_eol; + + width = macro_f_utf_byte_width_is(buffer.string[range->start]); + + if (!width) { + width = 1; + } + else if (width == 1) { + + // Do not operate on UTF-8 fragments that are not the first byte of the character. + return F_status_set_error(F_complete_not_utf); + } + else { + if (range->start + width > range->stop) return F_status_set_error(F_complete_not_utf_stop); + } + + range->start += width; + + if (range->start > range->stop) return F_none_stop; + + width_max = (range->stop - range->start) + 1; + } // while + + if (F_status_is_error(status)) return status; + + return F_none; + } +#endif // _di_f_parse_dynamic_seek_line_until_graph_ + +#ifndef _di_f_parse_dynamic_seek_line_until_graph_non_ + f_status_t f_parse_dynamic_seek_line_until_graph_non(const f_string_static_t buffer, const uint8_t placeholder, f_string_range_t * const range) { + #ifndef _di_level_0_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + if (!buffer.used) return F_data_not; + if (range->start > range->stop) return F_data_not_stop; + + f_status_t status = F_none; + unsigned short width = 0; + + f_array_length_t width_max = (range->stop - range->start) + 1; + + while (buffer.string[range->start] == placeholder || (status = f_utf_is_whitespace(buffer.string + range->start, width_max, F_false)) == F_false) { + + if (F_status_is_error(status)) return status; + if (buffer.string[range->start] == f_string_eol_s.string[0]) return F_none_eol; + + width = macro_f_utf_byte_width_is(buffer.string[range->start]); + + if (!width) { + width = 1; + } + else if (width == 1) { + + // Do not operate on UTF-8 fragments that are not the first byte of the character. + return F_status_set_error(F_complete_not_utf); + } + else { + if (range->start + width > range->stop) return F_status_set_error(F_complete_not_utf_stop); + } + + range->start += width; + + if (range->start > range->stop) return F_none_stop; + + width_max = (range->stop - range->start) + 1; + } // while + + if (F_status_is_error(status)) return status; + + return F_none; + } +#endif // _di_f_parse_dynamic_seek_line_until_graph_non_ + +#ifndef _di_f_parse_dynamic_seek_to_utf_character_ + f_status_t f_parse_dynamic_seek_to_utf_character(const f_string_static_t buffer, const f_utf_char_t seek_to_this, f_string_range_t * const range) { + #ifndef _di_level_0_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + if (!buffer.used) return F_data_not; + + if (range->start > range->stop) return F_data_not_stop; + + const unsigned short seek_width = macro_f_utf_char_t_width(seek_to_this); + + f_status_t status = F_none; + + unsigned short width = 0; + + f_array_length_t width_max = 0; + + while (range->start <= range->stop) { + + width_max = (range->stop - range->start) + 1; + width = macro_f_utf_byte_width_is(buffer.string[range->start]); + + if (!width) { + width = 1; + + if (seek_width == width) { + if (buffer.string[range->start] == seek_to_this) return F_none; + } + } + // Do not operate on UTF-8 fragments that are not the first byte of the character. + else if (width == 1) { + return F_status_set_error(F_complete_not_utf); + } + else { + if (range->start + width > range->stop) { + return F_status_set_error(F_complete_not_utf_stop); + } + + if (width == seek_width) { + f_utf_char_t character = 0; + + status = f_utf_char_to_character(buffer.string + range->start, width_max, &character); + if (F_status_is_error(status)) return status; + if (character == seek_to_this) return F_none; + } + } + + range->start += width; + + if (range->start >= range->stop) return F_none_stop; + } // while + + return F_none_eos; + } +#endif // _di_f_parse_dynamic_seek_to_utf_character_ + +#ifndef _di_f_parse_dynamic_partial_fll_identify_ + f_status_t f_parse_dynamic_partial_fll_identify(const f_string_static_t buffer, f_string_range_t * const range, f_fll_id_t * const id) { + #ifndef _di_level_0_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + if (id) { + id->type = 0; + id->used = 0; + } + + // Skip past all leading NULLs. + for (; range->start <= range->stop; ++range->start) { + if (buffer.string[range->start]) break; + } // for + + if (range->start > range->stop) { + return F_data_not; + } + + // The FLL Identifier is always at least 6 characters ("X-0000"). + if (range->stop - range->start < 5) { + + // Increment until stop, while taking into consideration UTF-8 character widths. + for (; range->start <= range->stop; ) { + + if (buffer.string[range->start] == f_string_eol_s.string[0]) { + ++range->start; + + break; + } + + range->start += macro_f_utf_byte_width(buffer.string[range->start]); + } // for + + return F_found_not; + } + + f_status_t status = F_none; + + for (; range->start <= range->stop; ) { + + status = f_utf_is_whitespace(buffer.string + range->start, (range->stop - range->start) + 1, F_false); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_maybe) return F_status_set_error(F_complete_not_utf); + + return status; + } + + if (status == F_false) { + if (!buffer.string[range->start]) { + ++range->start; + + continue; + } + + break; + } + + if (buffer.string[range->start] == f_string_eol_s.string[0]) { + ++range->start; + + return F_found_not; + } + + range->start += macro_f_utf_byte_width(buffer.string[range->start]); + } // for + + if (range->start > range->stop) { + return F_found_not; + } + + if (range->stop - range->start < 5) { + + // Increment until stop, while taking into consideration UTF-8 character widths. + for (; range->start <= range->stop; ) { + + if (buffer.string[range->start] == f_string_eol_s.string[0]) { + ++range->start; + + break; + } + + range->start += macro_f_utf_byte_width(buffer.string[range->start]); + } // for + + return F_found_not; + } + + f_array_length_t i = range->start; + + for (; range->start <= range->stop; ) { + + status = f_utf_is_word(buffer.string + range->start, (range->stop - range->start) + 1, F_true); + if (F_status_is_error(status)) return status; + + if (status == F_false) { + if (!buffer.string[range->start]) { + ++range->start; + + continue; + } + + break; + } + + range->start += macro_f_utf_byte_width(buffer.string[range->start]); + } // for + + if (range->start > range->stop || buffer.string[range->start] != f_string_ascii_minus_s.string[0]) { + + // Increment until stop, while taking into consideration UTF-8 character widths. + for (; range->start <= range->stop; ) { + + if (buffer.string[range->start] == f_string_eol_s.string[0]) { + ++range->start; + + break; + } + + range->start += macro_f_utf_byte_width(buffer.string[range->start]); + } // for + + return F_found_not; + } + + { + f_array_length_t j = 0; + f_char_t number[5] = { 0, 0, 0, 0, 0 }; + + for (++range->start; range->start <= range->stop && j < 4; ++range->start, ++j) { + + // The hexidecimal representing the number may only be ASCII. + if (macro_f_utf_byte_width_is(buffer.string[range->start])) { + + // Increment until stop, while taking into consideration UTF-8 character widths. + for (; range->start <= range->stop; ) { + + if (buffer.string[range->start] == f_string_eol_s.string[0]) { + ++range->start; + + break; + } + + range->start += macro_f_utf_byte_width(buffer.string[range->start]); + } // for + + if (id) { + id->type = 0; + } + + return F_found_not; + } + + if (isxdigit(buffer.string[range->start])) { + number[j] = buffer.string[range->start]; + } + else { + if (!buffer.string[range->start]) continue; + + break; + } + } // for + + if (j == 4) { + if (id) { + id->type = strtol(number, 0, 16); + } + } + else { + + // Increment until stop, while taking into consideration UTF-8 character widths. + for (; range->start <= range->stop; ) { + + if (buffer.string[range->start] == f_string_eol_s.string[0]) { + ++range->start; + + break; + } + + range->start += macro_f_utf_byte_width(buffer.string[range->start]); + } // for + + if (id) { + id->type = 0; + } + + return F_found_not; + } + } + + // Skip past all NULLs. + for (; range->start <= range->stop; ++range->start) { + if (buffer.string[range->start]) break; + } // for + + // The end of line, whitespace, or range stop point are the only valid stop points. + if (range->start <= range->stop) { + status = f_utf_is_whitespace(buffer.string + range->start, (range->stop - range->start) + 1, F_false); + + if (F_status_is_error(status)) { + if (id) { + id->type = 0; + } + + return status; + } + + if (status == F_false) { + + // Increment until stop, while taking into consideration UTF-8 character widths. + for (; range->start <= range->stop; ) { + + if (buffer.string[range->start] == f_string_eol_s.string[0]) { + ++range->start; + + break; + } + + range->start += macro_f_utf_byte_width(buffer.string[range->start]); + } // for + + if (id) { + id->type = 0; + } + + return F_found_not; + } + } + + if (buffer.string[range->start] == f_string_eol_s.string[0]) { + ++range->start; + } + + if (id) { + for (f_array_length_t j = i, i = 0; j <= range->stop; ++j) { + + if (!buffer.string[j]) continue; + if (buffer.string[j] == f_string_ascii_minus_s.string[0]) break; + + id->name[i++] = buffer.string[j]; + } // for + + id->used = i + 1; + + if (id->used < 64) { + id->name[id->used] = 0; + } + } + + return F_found; + } +#endif // _di_f_parse_dynamic_partial_fll_identify_ + +#ifndef _di_f_parse_seek_line_to_utf_character_ + f_status_t f_parse_seek_line_to_utf_character(const f_string_t string, const f_utf_char_t seek_to, f_string_range_t * const range) { + #ifndef _di_level_0_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + if (range->start > range->stop) { + return F_data_not_stop; + } + + const unsigned short seek_width = macro_f_utf_char_t_width(seek_to); + + f_status_t status = F_none; + + unsigned short width = 0; + f_array_length_t width_max = (range->stop - range->start) + 1; + + for (; range->start <= range->stop; range->start += width) { + + width_max = (range->stop - range->start) + 1; + + width = macro_f_utf_byte_width_is(string[range->start]); + + if (!width) { + width = 1; + + if (string[range->start] == f_string_eol_s.string[0]) return F_none_eol; + if (seek_width == width && string[range->start] == seek_to) return F_none; + } + // Do not operate on UTF-8 fragments that are not the first byte of the character. + else if (width == 1) { + return F_status_set_error(F_complete_not_utf); + } + else { + if (range->start + width > range->stop) return F_status_set_error(F_complete_not_utf_eos); + + if (width == seek_width) { + f_utf_char_t character = 0; + + status = f_utf_char_to_character(string + range->start, width_max, &character); + if (F_status_is_error(status)) return status; + if (character == seek_to) return F_none; + } + } + } // for + + return F_none_stop; + } +#endif // _di_f_parse_seek_line_to_utf_character_ + +#ifndef _di_f_parse_seek_line_until_graph_ + f_status_t f_parse_seek_line_until_graph(const f_string_t string, const uint8_t placeholder, f_string_range_t * const range) { + #ifndef _di_level_0_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + if (range->start > range->stop) return F_data_not_stop; + + f_status_t status = F_none; + unsigned short width = 0; + + f_array_length_t width_max = (range->stop - range->start) + 1; + + while (string[range->start] == placeholder || (status = f_utf_is_graph(string + range->start, width_max)) == F_false) { + + if (F_status_is_error(status)) return status; + if (string[range->start] == f_string_eol_s.string[0]) return F_none_eol; + + width = macro_f_utf_byte_width_is(string[range->start]); + + if (!width) { + width = 1; + } + else if (width == 1) { + + // Do not operate on UTF-8 fragments that are not the first byte of the character. + return F_status_set_error(F_complete_not_utf); + } + else { + if (range->start + width > range->stop) return F_status_set_error(F_complete_not_utf_stop); + } + + range->start += width; + + if (range->start > range->stop) return F_none_stop; + + width_max = (range->stop - range->start) + 1; + } // while + + if (F_status_is_error(status)) return status; + + return F_none; + } +#endif // _di_f_parse_seek_line_until_graph_ + +#ifndef _di_f_parse_seek_line_until_graph_non_ + f_status_t f_parse_seek_line_until_graph_non(const f_string_t string, const uint8_t placeholder, f_string_range_t * const range) { + #ifndef _di_level_0_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + if (range->start > range->stop) return F_data_not_stop; + + f_status_t status = F_none; + unsigned short width = 0; + + f_array_length_t width_max = (range->stop - range->start) + 1; + + while (string[range->start] == placeholder || (status = f_utf_is_whitespace(string + range->start, width_max, F_false)) == F_false) { + + if (F_status_is_error(status)) return status; + + if (string[range->start] == f_string_eol_s.string[0]) return F_none_eol; + + width = macro_f_utf_byte_width_is(string[range->start]); + + if (!width) { + width = 1; + } + else if (width == 1) { + + // Do not operate on UTF-8 fragments that are not the first byte of the character. + return F_status_set_error(F_complete_not_utf); + } + else { + if (range->start + width > range->stop) return F_status_set_error(F_complete_not_utf_stop); + } + + range->start += width; + + if (range->start > range->stop) return F_none_stop; + + width_max = (range->stop - range->start) + 1; + } // while + + if (F_status_is_error(status)) return status; + + return F_none; + } +#endif // _di_f_parse_seek_line_until_graph_non_ + +#ifndef _di_f_parse_seek_to_utf_character_ + f_status_t f_parse_seek_to_utf_character(const f_string_t string, const f_utf_char_t seek_to, f_string_range_t * const range) { + #ifndef _di_level_0_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_0_parameter_checking_ + + if (range->start > range->stop) return F_data_not_stop; + + const unsigned short seek_width = macro_f_utf_char_t_width(seek_to); + + f_status_t status = F_none; + + unsigned short width = 0; + f_array_length_t width_max = 0; + + for (; range->start <= range->stop; range->start += width) { + + width_max = (range->stop - range->start) + 1; + + width = macro_f_utf_byte_width_is(string[range->start]); + + if (!width) { + width = 1; + + if (seek_width == width && string[range->start] == seek_to) return F_none; + } + // Do not operate on UTF-8 fragments that are not the first byte of the character. + else if (width == 1) { + return F_status_set_error(F_complete_not_utf); + } + else { + if (range->start + width > range->stop) return F_status_set_error(F_complete_not_utf_stop); + + if (width == seek_width) { + f_utf_char_t character = 0; + + status = f_utf_char_to_character(string + range->start, width_max, &character); + if (F_status_is_error(status)) return status; + if (character == seek_to) return F_none; + } + } + } // for + + return F_none_stop; + } +#endif // _di_f_parse_seek_to_utf_character_ + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_parse/c/parse.h b/level_0/f_parse/c/parse.h new file mode 100644 index 0000000..2ecd78a --- /dev/null +++ b/level_0/f_parse/c/parse.h @@ -0,0 +1,327 @@ +/** + * FLL - Level 0 + * + * Project: Parse + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Provides basic string parse capabilities. + */ +#ifndef _F_parse_h +#define _F_parse_h + +// Libc includes. +#include + +// FLL-0 includes. +#include +#include +#include +#include + +// FLL-0 compare includes. +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Seek the buffer location forward until the character (up to 4-byte wide) or EOL is reached. + * + * @param buffer + * The string to traverse. + * @param seek_to_this + * A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_none_stop on success, but stopped at end of range. + * F_data_not on success, but there was no string data to seek. + * F_data_not_stop on success, but the range.start > range.stop. + * + * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. + * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_not (with error bit) if character is an invalid UTF-8 character. + * + * Errors (with error bit) from: f_utf_char_to_character(). + * + * @see f_utf_char_to_character() + */ +#ifndef _di_f_parse_dynamic_seek_line_to_utf_character_ + extern f_status_t f_parse_dynamic_seek_line_to_utf_character(const f_string_static_t buffer, const f_utf_char_t seek_to_this, f_string_range_t * const range); +#endif // _di_f_parse_dynamic_seek_line_to_utf_character_ + +/** + * Increment buffer location until a graph character (including UTF-8) or an EOL is matched. + * + * @param buffer + * The string to traverse. + * @param placeholder + * A single-width character representing a placeholder to ignore (may be NULL). + * @param range + * A range within the buffer representing the start and stop locations. + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_none_stop on success, but stopped at end of range. + * F_data_not on success, but there was no string data to seek. + * F_data_not_stop on success, but the range.start > range.stop. + * + * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. + * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. + * F_memory_not (with error bit) on out of memory. + * F_parameter (with error bit) if a parameter is invalid. + * + * Errors (with error bit) from: f_utf_is_graph(). + * + * @see f_utf_is_graph() + */ +#ifndef _di_f_parse_dynamic_seek_line_until_graph_ + extern f_status_t f_parse_dynamic_seek_line_until_graph(const f_string_static_t buffer, const uint8_t placeholder, f_string_range_t * const range); +#endif // _di_f_parse_dynamic_seek_line_until_graph_ + +/** + * Increment buffer location until a non-graph character (including UTF-8) or an EOL is matched. + * + * @param buffer + * The string to traverse. + * @param placeholder + * A single-width character representing a placeholder to ignore (may be NULL). + * @param range + * A range within the buffer representing the start and stop locations. + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_none_stop on success, but stopped at end of range. + * F_data_not on success, but there was no string data to seek. + * F_data_not_stop on success, but the range.start > range.stop. + * + * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. + * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. + * F_memory_not (with error bit) on out of memory. + * F_parameter (with error bit) if a parameter is invalid. + * + * Errors (with error bit) from: f_utf_is_graph(). + * + * @see f_utf_is_graph() + */ +#ifndef _di_f_parse_dynamic_seek_line_until_graph_non_ + extern f_status_t f_parse_dynamic_seek_line_until_graph_non(const f_string_static_t buffer, const uint8_t placeholder, f_string_range_t * const range); +#endif // _di_f_parse_dynamic_seek_line_until_graph_non_ + +/** + * Seek the buffer location forward until the UTF-8 character (up to 4-byte wide) is reached. + * + * @param buffer + * The string to traverse. + * @param seek_to_this + * A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * + * @return + * F_none on success. + * F_none_stop on success, but stopped at end of range. + * F_data_not on success, but there was no string data to seek. + * F_data_not_stop on success, but the range.start > range.stop. + * + * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. + * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_not (with error bit) if character is an invalid UTF-8 character. + * + * Errors (with error bit) from: f_utf_char_to_character(). + * + * @see f_utf_char_to_character() + */ +#ifndef _di_f_parse_dynamic_seek_to_utf_character_ + extern f_status_t f_parse_dynamic_seek_to_utf_character(const f_string_static_t buffer, const f_utf_char_t seek_to_this, f_string_range_t * const range); +#endif // _di_f_parse_dynamic_seek_to_utf_character_ + +/** + * Identify whether or not the given string represents a single valid FLL Identifier and possibly save the FLL Identifier. + * + * This will always change the FLL Identifier used and type codes, if a FLL Identifier is provided. + * + * Whitespace may be before and after the FLL Identifier and will be ignored. + * NULLs will be ignored. + * Anything else will result in treating the character as a possible FLL Identifier. + * + * A valid FLL Identifier must terminate on either whitespace, EOL, or the stop point (length). + * + * The id.name might not be NULL terminated. + * An id.name using all 64-bytes will not be NULL terminated. + * + * If a newline ("\n") is encountered, range->start will be set to 1 byte after the newline. + * + * @param buffer + * The string to process. + * @param range + * A range within the buffer representing the start and stop locations. + * The caller must ensure that the stop point does not exceed the buffer size. + * + * The range->start will be updated by this function. + * On error, the range->start may represent the last position looked at. + * On success, the range->start should be after the last valid position (for example for "fss-1234", the ast valid position would be the byte after the "4"). + * Be aware that if a UTF-8 character exists at the end of the string but extends beyond the range stop, the stop position may be after the UTF-8 byte and not 1 byte after the stop point. + * @param id + * (optional) The FLL Identifier found. + * Set to NULL to not use. + * + * @return + * F_data_not if length is 0. + * F_found if the buffer does represent a valid FLL Identifier. + * F_found_not if the buffer does not represent a valid FLL Identifier. + * + * F_complete_not_utf (with error bit) if a character is an incomplete UTF-8 fragment. + * F_maybe (with error bit) if a character could be a whitespace but width is not long enough. (This is only returned for an otherwise valid FLL Identifier.) + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_not (with error bit) if character is an invalid UTF-8 character. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * F_parameter (with error bit) from: f_utf_is_word(). + * + * @see isxdigit() + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + * @see f_utf_is_word() + */ +#ifndef _di_f_parse_dynamic_partial_fll_identify_ + extern f_status_t f_parse_dynamic_partial_fll_identify(const f_string_static_t buffer, f_string_range_t * const range, f_fll_id_t * const id); +#endif // _di_f_parse_dynamic_partial_fll_identify_ + +/** + * Seek the string location forward until the character (up to 4-byte wide) or EOL is reached. + * + * @param string + * The string to traverse. + * @param seek_to + * A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_data_not_stop if range.start > range.stop. + * + * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. + * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_not (with error bit) if character is an invalid UTF-8 character. + * + * Errors (with error bit) from: f_utf_char_to_character(). + * + * @see f_utf_char_to_character() + */ +#ifndef _di_f_parse_seek_line_to_utf_character_ + extern f_status_t f_parse_seek_line_to_utf_character(const f_string_t string, const f_utf_char_t seek_to, f_string_range_t * const range); +#endif // _di_f_parse_seek_line_to_utf_character_ + +/** + * Increment string location until a graph character (including UTF-8) or an EOL is matched. + * + * @param string + * The string to traverse. + * @param placeholder + * A single-width character representing a placeholder to ignore (may be NULL). + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_data_not_stop if range.start > range.stop. + * + * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. + * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. + * F_memory_not (with error bit) on out of memory. + * F_parameter (with error bit) if a parameter is invalid. + * + * Errors (with error bit) from: f_utf_is_graph(). + * + * @see f_utf_is_graph() + */ +#ifndef _di_f_parse_seek_line_until_graph_ + extern f_status_t f_parse_seek_line_until_graph(const f_string_t string, const uint8_t placeholder, f_string_range_t * const range); +#endif // _di_f_parse_seek_line_until_graph_ + +/** + * Increment string location until a non-graph character (including UTF-8) or an EOL is matched. + * + * @param string + * The string to traverse. + * @param placeholder + * A single-width character representing a placeholder to ignore (may be NULL). + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_none_stop on success, but stopped stop location. + * F_data_not_stop if range.start > range.stop. + * + * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. + * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. + * F_memory_not (with error bit) on out of memory. + * F_parameter (with error bit) if a parameter is invalid. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_parse_seek_line_until_graph_non_ + extern f_status_t f_parse_seek_line_until_graph_non(const f_string_t string, const uint8_t placeholder, f_string_range_t * const range); +#endif // _di_f_parse_seek_line_until_graph_non_ + +/** + * Seek the string location forward until the UTF-8 character (up to 4-byte wide) is reached. + * + * @param string + * The string to traverse. + * @param seek_to + * A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * + * @return + * F_none on success. + * F_none_stop on success, but stopped stop location. + * F_data_not_stop if range.start > range.stop. + * + * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. + * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_not (with error bit) if character is an invalid UTF-8 character. + * + * Errors (with error bit) from: f_utf_char_to_character(). + * + * @see f_utf_char_to_character() + */ +#ifndef _di_f_parse_seek_to_utf_character_ + extern f_status_t f_parse_seek_to_utf_character(const f_string_t string, const f_utf_char_t seek_to, f_string_range_t * const range); +#endif // _di_f_parse_seek_to_utf_character_ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _F_parse_h diff --git a/level_0/f_parse/c/parse/utf.c b/level_0/f_parse/c/parse/utf.c new file mode 100644 index 0000000..f28b8dd --- /dev/null +++ b/level_0/f_parse/c/parse/utf.c @@ -0,0 +1,317 @@ +#include "../parse.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _di_f_parse_utf_dynamic_seek_line_to_char_ + f_status_t f_parse_utf_dynamic_seek_line_to_char(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_char_t seek_to_this) { + #ifndef _di_level_1_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + if (buffer.used <= range->start) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (!buffer.used) return F_data_not; + if (range->start > range->stop) return F_data_not_stop; + + f_utf_char_t seek_to_character = seek_to_this << 24; + + if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + while (buffer.string[range->start] != seek_to_character) { + + if (buffer.string[range->start++] == f_utf_char_eol_s) { + return F_none_eol; + } + + if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + if (range->start >= buffer.used) { + return F_none_eos; + } + + if (range->start > range->stop) { + return F_none_stop; + } + } // while + + return F_none; + } +#endif // _di_f_parse_utf_dynamic_seek_line_to_char_ + +#ifndef _di_f_parse_utf_dynamic_seek_line_until_graph_ + f_status_t f_parse_utf_dynamic_seek_line_until_graph(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_utf_char_t placeholder) { + #ifndef _di_level_1_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + if (buffer.used <= range->start) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (!buffer.used) return F_data_not; + if (range->start > range->stop) return F_data_not_stop; + + f_status_t status = F_none; + + if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + while (buffer.string[range->start] == placeholder || (status = f_utf_character_is_graph(buffer.string[range->start])) == F_false) { + + if (F_status_is_error(status)) { + return status; + } + + if (buffer.string[range->start++] == f_utf_char_eol_s) { + return F_none_eol; + } + + if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + if (range->start >= buffer.used) { + return F_none_eos; + } + + if (range->start > range->stop) { + return F_none_stop; + } + } // while + + if (F_status_is_error(status)) { + return status; + } + + return F_none; + } +#endif // _di_f_parse_utf_dynamic_seek_line_until_graph_ + +#ifndef _di_f_parse_utf_dynamic_seek_line_until_graph_non_ + f_status_t f_parse_utf_dynamic_seek_line_until_graph_non(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_utf_char_t placeholder) { + #ifndef _di_level_1_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + if (buffer.used <= range->start) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (!buffer.used) return F_data_not; + if (range->start > range->stop) return F_data_not_stop; + + f_status_t status = F_none; + + if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + while (buffer.string[range->start] == placeholder || (status = f_utf_character_is_whitespace(buffer.string[range->start], F_false)) == F_false) { + + if (F_status_is_error(status)) return status; + if (buffer.string[range->start] == f_utf_char_eol_s) return F_none_eol; + + ++range->start; + + if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + if (range->start >= buffer.used) return F_none_eos; + if (range->start > range->stop) return F_none_stop; + } // while + + if (F_status_is_error(status)) return status; + + return F_none; + } +#endif // _di_f_parse_utf_dynamic_seek_line_until_graph_non_ + +#ifndef _di_f_parse_utf_dynamic_seek_to_char_ + f_status_t f_parse_utf_dynamic_seek_to_char(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_char_t seek_to_this) { + #ifndef _di_level_1_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + if (buffer.used <= range->start) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (!buffer.used) return F_data_not; + if (range->start > range->stop) return F_data_not_stop; + + f_utf_char_t seek_to_character = seek_to_this << 24; + + if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + while (buffer.string[range->start] != seek_to_character) { + + ++range->start; + + if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + if (range->start >= buffer.used) { + return F_none_eos; + } + + if (range->start > range->stop) { + return F_none_stop; + } + } // while + + return F_none; + } +#endif // _di_f_parse_utf_dynamic_seek_to_char_ + +#ifndef _di_f_parse_utf_seek_line_to_char_ + f_status_t f_parse_utf_seek_line_to_char(const f_utf_string_t string, f_string_range_t * const range, const f_char_t seek_to_this) { + #ifndef _di_level_1_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (range->start > range->stop) { + return F_data_not_stop; + } + + f_utf_char_t seek_to_character = seek_to_this << 24; + + for (; range->start <= range->stop; ++range->start) { + + if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + if (string[range->start] == f_utf_char_eol_s) { + return F_none_eol; + } + + if (string[range->start] == seek_to_character) { + return F_none; + } + } // for + + return F_none_stop; + } +#endif // _di_f_parse_utf_seek_line_to_char_ + +#ifndef _di_f_parse_utf_seek_line_until_graph_ + f_status_t f_parse_utf_seek_line_until_graph(const f_utf_string_t string, f_string_range_t * const range, const f_utf_char_t placeholder) { + #ifndef _di_level_1_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (range->start > range->stop) { + return F_data_not_stop; + } + + f_status_t status = F_none; + + if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + while (string[range->start] == placeholder || (status = f_utf_character_is_graph(string[range->start])) == F_false) { + + if (F_status_is_error(status)) { + return status; + } + + if (string[range->start++] == f_utf_char_eol_s) { + return F_none_eol; + } + + if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + if (range->start > range->stop) { + return F_none_stop; + } + } // while + + if (F_status_is_error(status)) { + return status; + } + + return F_none; + } +#endif // _di_f_parse_utf_seek_line_until_graph_ + +#ifndef _di_f_parse_utf_seek_line_until_graph_non_ + f_status_t f_parse_utf_seek_line_until_graph_non(const f_utf_string_t string, f_string_range_t * const range, const f_utf_char_t placeholder) { + #ifndef _di_level_1_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (range->start > range->stop) { + return F_data_not_stop; + } + + f_status_t status = F_none; + + if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + while (string[range->start] == placeholder || (status = f_utf_character_is_graph(string[range->start])) == F_true) { + + if (F_status_is_error(status)) { + return status; + } + + if (string[range->start++] == f_utf_char_eol_s) { + return F_none_eol; + } + + if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + if (range->start > range->stop) { + return F_none_stop; + } + } // while + + if (F_status_is_error(status)) { + return status; + } + + return F_none; + } +#endif // _di_f_parse_utf_seek_line_until_graph_non_ + +#ifndef _di_f_parse_utf_seek_to_char_ + f_status_t f_parse_utf_seek_to_char(const f_utf_string_t string, f_string_range_t * const range, const f_char_t seek_to_this) { + #ifndef _di_level_1_parameter_checking_ + if (!range) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (range->start > range->stop) { + return F_data_not_stop; + } + + const f_utf_char_t seek_to_character = seek_to_this << 24; + + if (macro_f_utf_char_t_width_is(string[0]) == 1) { + return F_status_set_error(F_utf_fragment); + } + + while (range->start <= range->stop) { + + if (string[range->start++] == seek_to_character) { + return F_none; + } + + if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { + return F_status_set_error(F_utf_fragment); + } + } // while + + return F_none_stop; + } +#endif // _di_fl_utf_string_seek_to_utf_character_ + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_parse/c/parse/utf.h b/level_0/f_parse/c/parse/utf.h new file mode 100644 index 0000000..c8b7840 --- /dev/null +++ b/level_0/f_parse/c/parse/utf.h @@ -0,0 +1,231 @@ +/** + * FLL - Level 0 + * + * Project: Parse + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Provides basic UTF-8 string parse capabilities. + */ +#ifndef _F_parse_utf_h +#define _F_parse_utf_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Seek the buffer location forward until the (1-byte wide) character or EOL is reached. + * + * @param buffer + * The buffer to traverse. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * @param seek_to_this + * A single-width character. + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_none_eos on success, but stopped at end of buffer. + * F_data_not if buffer length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + */ +#ifndef _di_f_parse_utf_dynamic_seek_line_to_char_ + extern f_status_t f_parse_utf_dynamic_seek_line_to_char(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_char_t seek_to_this); +#endif // _di_f_parse_utf_dynamic_seek_line_to_char_ + +/** + * Increment buffer location until a graph character or an EOL is matched. + * + * @param buffer + * The buffer to traverse. + * @param range + * A range within the buffer representing the start and stop locations. + * @param placeholder + * A UTF-8 character representing a placeholder to ignore (may be NULL). + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_none_eos on success, but stopped at end of buffer. + * F_data_not if buffer length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + * + * Errors (with error bit) from: f_utf_character_is_graph(). + * + * @see f_utf_character_is_graph() + */ +#ifndef _di_f_parse_utf_dynamic_seek_line_until_graph_ + extern f_status_t f_parse_utf_dynamic_seek_line_until_graph(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_utf_char_t placeholder); +#endif // _di_f_parse_utf_dynamic_seek_line_until_graph_ + +/** + * Increment buffer location until a non-graph character or an EOL is matched. + * + * @param buffer + * The buffer to traverse. + * @param range + * A range within the buffer representing the start and stop locations. + * @param placeholder + * A single-width character representing a placeholder to ignore (may be NULL). + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_none_eos on success, but stopped at end of buffer. + * F_none_stop on success, but stopped stop location. + * F_data_not if buffer length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + * + * Errors (with error bit) from: f_utf_character_is_graph(). + * + * @see f_utf_character_is_graph() + */ +#ifndef _di_f_parse_utf_dynamic_seek_line_until_graph_non_ + extern f_status_t f_parse_utf_dynamic_seek_line_until_graph_non(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_utf_char_t placeholder); +#endif // _di_f_parse_utf_dynamic_seek_line_until_graph_non_ + +/** + * Seek the buffer location forward until the UTF-8 character (1-byte wide) is reached. + * + * @param buffer + * The buffer to traverse. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * @param seek_to_this + * A single-width non-UTF-8 character. + * + * @return + * F_none on success. + * F_none_eos on success, but stopped at end of buffer. + * F_none_stop on success, but stopped stop location. + * F_data_not if buffer length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + */ +#ifndef _di_f_parse_utf_dynamic_seek_to_char_ + extern f_status_t f_parse_utf_dynamic_seek_to_char(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_char_t seek_to_this); +#endif // _di_f_parse_utf_dynamic_seek_to_char_ + +/** + * Seek the string location forward until the 1-byte wide character or EOL is reached. + * + * @param string + * The string to traverse. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * @param seek_to_this + * A single-width character. + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_none_eos on success, but stopped at end of buffer. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + */ +#ifndef _di_f_parse_utf_seek_line_to_char_ + extern f_status_t f_parse_utf_seek_line_to_char(const f_utf_string_t string, f_string_range_t * const range, const f_char_t seek_to_this); +#endif // _di_f_parse_utf_seek_line_to_char_ + +/** + * Increment string location until a UTF-8 graph character or an EOL is matched. + * + * @param string + * The string to traverse. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * @param placeholder + * A UTF-8 character representing a placeholder to ignore (may be NULL). + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + * + * Errors (with error bit) from: f_utf_character_is_graph(). + * + * @see f_utf_character_is_graph() + */ +#ifndef _di_f_parse_utf_seek_line_until_graph_ + extern f_status_t f_parse_utf_seek_line_until_graph(const f_utf_string_t string, f_string_range_t * const range, const f_utf_char_t placeholder); +#endif // _di_f_parse_utf_seek_line_until_graph_ + +/** + * Increment string location until a non-graph UTF-8 character or an EOL is matched. + * + * @param string + * The string to traverse. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * @param placeholder + * A UTF-8 character representing a placeholder to ignore (may be NULL). + * + * @return + * F_none on success. + * F_none_eol on success, but stopped at EOL. + * F_none_stop on success, but stopped stop location. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + * + * Errors (with error bit) from: f_utf_character_is_graph(). + * + * @see f_utf_character_is_graph() + */ +#ifndef _di_f_parse_utf_seek_line_until_graph_non_ + extern f_status_t f_parse_utf_seek_line_until_graph_non(const f_utf_string_t string, f_string_range_t * const range, const f_utf_char_t placeholder); +#endif // _di_f_parse_utf_seek_line_until_graph_non_ + +/** + * Seek the string location forward until the UTF-8 character (up to 4-byte wide) is reached. + * + * @param string + * The string to traverse. + * @param range + * A range within the buffer representing the start and stop locations. + * The start location will be incremented by seek. + * @param seek_to_this + * A single-width non-UTF-8 character. + * + * @return + * F_none on success. + * F_none_eos on success, but stopped at end of buffer. + * F_none_stop on success, but stopped stop location. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + */ +#ifndef _di_f_parse_utf_seek_to_character_ + extern f_status_t f_parse_utf_seek_to_char(const f_utf_string_t string, f_string_range_t * const range, const f_char_t seek_to_this); +#endif // _di_fl_utf_string__seek_to_character_ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _F_parse_utf_h diff --git a/level_0/f_parse/data/build/defines b/level_0/f_parse/data/build/defines new file mode 100644 index 0000000..4f13080 --- /dev/null +++ b/level_0/f_parse/data/build/defines @@ -0,0 +1 @@ +# fss-0000 diff --git a/level_0/f_parse/data/build/dependencies b/level_0/f_parse/data/build/dependencies new file mode 100644 index 0000000..deb9037 --- /dev/null +++ b/level_0/f_parse/data/build/dependencies @@ -0,0 +1,7 @@ +# fss-0000 + +f_type +f_status +f_memory +f_string +f_utf diff --git a/level_0/f_parse/data/build/dependencies-tests b/level_0/f_parse/data/build/dependencies-tests new file mode 100644 index 0000000..dea3179 --- /dev/null +++ b/level_0/f_parse/data/build/dependencies-tests @@ -0,0 +1,3 @@ +# fss-0001 + +cmocka 1.* diff --git a/level_0/f_parse/data/build/fakefile b/level_0/f_parse/data/build/fakefile new file mode 100644 index 0000000..5328059 --- /dev/null +++ b/level_0/f_parse/data/build/fakefile @@ -0,0 +1,11 @@ +# fss-0005 iki-0002 + +settings: + fail exit + modes individual level monolithic clang test + + environment PATH LD_LIBRARY_PATH + +main: + + build diff --git a/level_1/fl_string/data/build/settings b/level_0/f_parse/data/build/settings similarity index 89% rename from level_1/fl_string/data/build/settings rename to level_0/f_parse/data/build/settings index 75fc000..2709b82 100644 --- a/level_1/fl_string/data/build/settings +++ b/level_0/f_parse/data/build/settings @@ -1,6 +1,6 @@ # fss-0001 -build_name fl_string +build_name f_parse version_major 0 version_minor 7 @@ -20,15 +20,15 @@ build_language c build_libraries -lc build_libraries-individual -lf_memory -lf_string -lf_utf -build_sources_library string.c private-string.c +build_sources_library parse.c parse/utf.c -build_sources_headers string.h +build_sources_headers parse.h parse/utf.h build_script yes build_shared yes build_static no -path_headers fll/level_1 +path_headers fll/level_0 path_library_script script path_library_shared shared path_library_static static diff --git a/level_0/f_rip/c/private-rip.c b/level_0/f_rip/c/private-rip.c new file mode 100644 index 0000000..b3c0e1f --- /dev/null +++ b/level_0/f_rip/c/private-rip.c @@ -0,0 +1,119 @@ +#include "rip.h" +#include "private-rip.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(_di_f_rip_dynamic_partial_) || !defined(_di_f_rip_dynamic_partial_nulless_) || !defined(_di_f_rip_dynamic_) || !defined(_di_f_rip_) || !defined(_di_f_rip_nulless_) + f_status_t private_f_rip_find_range(const f_string_t string, f_array_length_t * const start, f_array_length_t * const stop) { + + const f_array_length_t stop_original = *stop; + f_array_length_t previous = 0; + f_status_t status = F_none; + + // Skip past leading whitespace. + for (; *start <= *stop; *start += macro_f_utf_byte_width(string[*start])) { + + // Skip past NULL. + while (*start < *stop && !string[*start]) ++(*start); + if (*start > *stop) break; + + status = f_utf_is_whitespace(string + *start, (*stop - *start) + 1, F_false); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_parameter) return status; + + break; + } + + if (status == F_false) break; + + status = f_utf_is_combining(string + *start, (*stop - *start) + 1); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_parameter) return status; + + break; + } + + // This is a combining character, so the previous character is no longer considered a space. + if (status == F_true) { + *start = previous; + + break; + } + + previous = *start; + } // for + + // Use previous as boolean here to designate that a combining is found in a previous character. + for (previous = F_false; *stop > *start; --(*stop)) { + + // Skip past NULL. + while (*stop > *start && !string[*stop]) --(*stop); + + if (!string[*stop]) continue; + if (*stop == *start) break; + + // Go left until either width is 0 (ASCII, or > 1) to determine the character. + for (;;) { + + if (macro_f_utf_byte_width_is(string[*stop]) == 1) { + --(*stop); + + if (*stop == *start) break; + } + else { + break; + } + } // for + + if (*stop == *start) break; + + status = f_utf_is_whitespace(string + *stop, (stop_original - *stop) + 1, F_false); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_parameter) return status; + + break; + } + + if (status == F_false) break; + if (status == F_true && previous == F_true) break; + + previous = F_false; + + status = f_utf_is_combining(string + *stop, (stop_original - *stop) + 1); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_parameter) return status; + + break; + } + + // This is a combining character, so the next character is no longer considered a space. + if (status == F_true) { + previous = F_true; + } + } // for + + if (*stop == *start) { + status = f_utf_is_whitespace(string + *stop, (stop_original - *stop) + 1, F_false); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_parameter) return status; + } + + if (status == F_true) { + return F_data_not; + } + } + + return F_none; + } +#endif // !defined(_di_f_rip_dynamic_partial_) || !defined(_di_f_rip_dynamic_partial_nulless_) || !defined(_di_f_rip_dynamic_) || !defined(_di_f_rip_) || !defined(_di_f_rip_nulless_) + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_rip/c/private-rip.h b/level_0/f_rip/c/private-rip.h new file mode 100644 index 0000000..e19d3cb --- /dev/null +++ b/level_0/f_rip/c/private-rip.h @@ -0,0 +1,58 @@ +/** + * FLL - Level 0 + * + * Project: Rip + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * These are provided for internal reduction in redundant code. + * These should not be exposed/used outside of this project. + */ +#ifndef _PRIVATE_F_rip_h +#define _PRIVATE_F_rip_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Private implementation of f_rip(), but only the part for finding the start/stop range. + * + * Intended to be shared to each of the different implementation variations. + * + * @param string + * The string to rip from. + * @param start + * Inclusive start point of string to rip. + * Will be updated to reflect the new start range. + * @param stop + * Inclusive stop point of string to rip. + * Will be updated to reflect the new stop range. + * + * @return + * F_none on success. + * F_data_not on success but only white space found. + * + * F_utf_not (with error bit) if a character is not valid UTF-8. + * + * F_parameter (with error bit) from: f_utf_is_combining(). + * F_parameter (with error bit) from: f_utf_is_whitespace(). + * + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + * + * @see f_rip_dynamic_partial() + * @see f_rip_dynamic_partial_nulless() + * @see f_rip_dynamic() + * @see f_rip() + * @see f_rip_nulless() + */ +#if !defined(_di_f_rip_dynamic_partial_) || !defined(_di_f_rip_dynamic_partial_nulless_) || !defined(_di_f_rip_dynamic_) || !defined(_di_f_rip_) || !defined(_di_f_rip_nulless_) + extern f_status_t private_f_rip_find_range(const f_string_t string, f_array_length_t * const start, f_array_length_t * const stop) F_attribute_visibility_internal_d; +#endif // !defined(_di_f_rip_dynamic_partial_) || !defined(_di_f_rip_dynamic_partial_nulless_) || !defined(_di_f_rip_dynamic_) || !defined(_di_f_rip_) || !defined(_di_f_rip_nulless_) + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _PRIVATE_F_rip_h diff --git a/level_0/f_rip/c/rip.c b/level_0/f_rip/c/rip.c new file mode 100644 index 0000000..6ea24cb --- /dev/null +++ b/level_0/f_rip/c/rip.c @@ -0,0 +1,146 @@ +#include "rip.h" +#include "private-rip.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _di_f_rip_ + f_status_t f_rip(const f_string_t source, const f_array_length_t length, f_string_dynamic_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 (!length) return F_data_not_eos; + + f_array_length_t begin = 0; + f_array_length_t end = length - 1; + + { + const f_status_t status = private_f_rip_find_range(source, &begin, &end); + if (F_status_is_error(status)) return status; + if (status == F_data_not) return status; + } + + return f_string_append(source + begin, (end - begin) + 1, destination); + } +#endif // _di_f_rip_ + +#ifndef _di_f_rip_dynamic_ + f_status_t f_rip_dynamic(const f_string_static_t source, f_string_dynamic_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_eos; + + f_array_length_t begin = 0; + f_array_length_t end = source.used - 1; + + { + const f_status_t status = private_f_rip_find_range(source.string, &begin, &end); + if (F_status_is_error(status)) return status; + if (status == F_data_not) return status; + } + + if (begin > end) return F_data_not_stop; + + return f_string_append(source.string + begin, (end - begin) + 1, destination); + } +#endif // _di_f_rip_dynamic_ + +#ifndef _di_f_rip_dynamic_nulless_ + f_status_t f_rip_dynamic_nulless(const f_string_static_t source, f_string_dynamic_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_eos; + + f_array_length_t begin = 0; + f_array_length_t end = source.used - 1; + + { + const f_status_t status = private_f_rip_find_range(source.string, &begin, &end); + if (F_status_is_error(status)) return status; + if (status == F_data_not) return status; + } + + if (begin > end) return F_data_not_stop; + + return f_string_append_nulless(source.string + begin, (end - begin) + 1, destination); + } +#endif // _di_f_rip_dynamic_nulless_ + +#ifndef _di_f_rip_nulless_ + f_status_t f_rip_nulless(const f_string_t source, const f_array_length_t length, f_string_dynamic_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 (!length) return F_data_not_eos; + + f_array_length_t begin = 0; + f_array_length_t end = length - 1; + + { + const f_status_t status = private_f_rip_find_range(source, &begin, &end); + if (F_status_is_error(status)) return status; + if (status == F_data_not) return status; + } + + return f_string_append_nulless(source + begin, (end - begin) + 1, destination); + } +#endif // _di_f_rip_nulless_ + +#ifndef _di_f_rip_dynamic_partial_ + f_status_t f_rip_dynamic_partial(const f_string_static_t source, const f_string_range_t range, f_string_dynamic_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_eos; + if (range.start > range.stop) return F_data_not_stop; + + f_array_length_t begin = range.start; + f_array_length_t end = range.stop; + + { + const f_status_t status = private_f_rip_find_range(source.string, &begin, &end); + if (F_status_is_error(status)) return status; + if (status == F_data_not) return status; + } + + if (begin > end) return F_data_not_stop; + + return f_string_append(source.string + begin, (end - begin) + 1, destination); + } +#endif // _di_f_rip_dynamic_partial_ + +#ifndef _di_f_rip_dynamic_partial_nulless_ + f_status_t f_rip_dynamic_partial_nulless(const f_string_static_t source, const f_string_range_t range, f_string_dynamic_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_eos; + if (range.start > range.stop) return F_data_not_stop; + + f_array_length_t begin = range.start; + f_array_length_t end = range.stop; + + { + const f_status_t status = private_f_rip_find_range(source.string, &begin, &end); + if (F_status_is_error(status)) return status; + if (status == F_data_not) return status; + } + + if (begin > end) return F_data_not_stop; + + return f_string_append_nulless(source.string + begin, (end - begin) + 1, destination); + } +#endif // _di_f_rip_dynamic_partial_nulless_ + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_rip/c/rip.h b/level_0/f_rip/c/rip.h new file mode 100644 index 0000000..8a88e27 --- /dev/null +++ b/level_0/f_rip/c/rip.h @@ -0,0 +1,241 @@ +/** + * FLL - Level 0 + * + * Project: Rip + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Provides basic string rip capabilities. + */ +#ifndef _F_rip_h +#define _F_rip_h + +// Libc includes. +#include + +// FLL-0 includes. +#include +#include +#include +#include + +// FLL-0 compare includes. +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Allocate a new string from the provided range in the string. + * + * Ignores leading and trailing whitespace. + * Ignores leading and trailing NULL characters. + * As a result, resulting size may be smaller than requested length. + * + * @param source + * The string to rip from. + * @param length + * The length of source to append. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_data_not if the range to rip is empty. + * F_data_not_eos if source length is 0. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Success from: f_string_append_nulless(). + * + * Errors (with error bit) from: f_string_append(). + * Errors (with error bit) from: f_utf_is_combining(). + * Errors (with error bit) from: f_utf_is_whitespace(). + * + * @see f_string_append() + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_rip_ + extern f_status_t f_rip(const f_string_t source, const f_array_length_t length, f_string_dynamic_t * const destination); +#endif // _di_f_rip_ + +/** + * Allocate a new string from the provided range in the buffer. + * + * Ignores leading and trailing whitespace. + * Ignores leading and trailing NULL characters. + * As a result, resulting size may be smaller than requested range. + * + * @param source + * The buffer to rip from. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_data_not if the range to rip is empty. + * F_data_not_eos if source length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Success from: f_string_append(). + * + * Errors (with error bit) from: f_string_append(). + * Errors (with error bit) from: f_utf_is_combining(). + * Errors (with error bit) from: f_utf_is_whitespace(). + * + * @see f_string_append() + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_rip_dynamic_ + extern f_status_t f_rip_dynamic(const f_string_static_t source, f_string_dynamic_t * const destination); +#endif // _di_f_rip_dynamic_ + +/** + * Allocate a new string from the provided range in the buffer. + * + * Ignores leading and trailing whitespace. + * Ignores leading and trailing NULL characters. + * As a result, resulting size may be smaller than requested range. + * + * Skips over NULL characters from source when appending. + * + * @param source + * The string to rip from. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_data_not if the range to rip is empty. + * F_data_not_eos if source length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Success from: f_string_append_nulless(). + * + * Errors (with error bit) from: f_string_append_nulless(). + * Errors (with error bit) from: f_utf_is_combining(). + * Errors (with error bit) from: f_utf_is_whitespace(). + * + * @see f_string_append_nulless() + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_rip_dynamic_nulless_ + extern f_status_t f_rip_dynamic_nulless(const f_string_static_t source, f_string_dynamic_t * const destination); +#endif // _di_f_rip_dynamic_nulless_ + +/** + * Allocate a new string from the provided range in the string. + * + * Ignores leading and trailing whitespace. + * Ignores leading and trailing NULL characters. + * As a result, resulting size may be smaller than requested length. + * + * Skips over NULL characters from source when ripping. + * + * @param source + * The string to rip from. + * @param length + * The length of source to append. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_data_not if the range to rip is empty. + * F_data_not_eos if source length is 0. + * + * Success from: f_string_append_nulless(). + * + * Errors (with error bit) from: f_string_append_nulless(). + * Errors (with error bit) from: f_utf_is_combining(). + * Errors (with error bit) from: f_utf_is_whitespace(). + * + * @see f_string_append_nulless() + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_rip_nulless_ + extern f_status_t f_rip_nulless(const f_string_t source, const f_array_length_t length, f_string_dynamic_t * const destination); +#endif // _di_f_rip_nulless_ + +/** + * Allocate a new string from the provided range in the buffer. + * + * Ignores leading and trailing whitespace. + * Ignores leading and trailing NULL characters. + * As a result, resulting size may be smaller than requested range. + * + * @param source + * The buffer to rip from. + * @param range + * A range within the buffer representing the string to rip. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_data_not if the range to rip is empty. + * F_data_not_eos if source length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Success from: f_string_append(). + * + * Errors (with error bit) from: f_string_append(). + * Errors (with error bit) from: f_utf_is_combining(). + * Errors (with error bit) from: f_utf_is_whitespace(). + * + * @see f_string_append() + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_rip_dynamic_partial_ + extern f_status_t f_rip_dynamic_partial(const f_string_static_t source, const f_string_range_t range, f_string_dynamic_t * const destination); +#endif // _di_f_rip_dynamic_partial_ + +/** + * Allocate a new string from the provided range in the buffer. + * + * Ignores leading and trailing whitespace. + * Ignores leading and trailing NULL characters. + * As a result, resulting size may be smaller than requested range. + * + * Skips over NULL characters from source when appending. + * + * @param source + * The string to rip from. + * @param range + * A range within the buffer representing the string to rip. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_data_not if the range to rip is empty. + * F_data_not_eos if source length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Success from: f_string_append_nulless(). + * + * Errors (with error bit) from: f_string_append_nulless(). + * Errors (with error bit) from: f_utf_is_combining(). + * Errors (with error bit) from: f_utf_is_whitespace(). + * + * @see f_string_append_nulless() + * @see f_utf_is_combining() + * @see f_utf_is_whitespace() + */ +#ifndef _di_f_rip_dynamic_partial_nulless_ + extern f_status_t f_rip_dynamic_partial_nulless(const f_string_static_t source, const f_string_range_t range, f_string_dynamic_t * const destination); +#endif // _di_f_rip_dynamic_partial_nulless_ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _F_rip_h diff --git a/level_0/f_rip/c/rip/private-utf.c b/level_0/f_rip/c/rip/private-utf.c new file mode 100644 index 0000000..8826b8f --- /dev/null +++ b/level_0/f_rip/c/rip/private-utf.c @@ -0,0 +1,76 @@ +#include "../rip.h" +#include "private-utf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(_di_f_rip_utf_) || !defined(_di_f_rip_utf_dynamic_) || !defined(_di_f_rip_utf_nulless_) || !defined(_di_f_rip_utf_dynamic_nulless_) + f_status_t private_f_rip_utf_find_range(const f_utf_string_t source, f_array_length_t *start, f_array_length_t *stop) { + + f_status_t status = F_none; + + // Skip past leading whitespace. + for (; *start <= *stop; ++(*start)) { + + // Skip past NULL. + while (*start < *stop && !source[*start]) ++(*start); + if (*start > *stop) break; + + status = f_utf_character_is_whitespace(source[*start], F_false); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_maybe) { + return F_status_set_error(F_utf_not); + } + + return status; + } + + if (status == F_false) break; + } // for + + for (; *stop > *start; --(*stop)) { + + // Skip past NULL. + while (*stop > *start && !source[*stop]) --(*stop); + + if (!source[*stop]) continue; + if (*stop == *start) break; + + status = f_utf_character_is_whitespace(source[*stop], F_false); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_maybe) { + return F_status_set_error(F_utf_not); + } + + return status; + } + + if (status == F_false) break; + } // for + + if (*stop == *start) { + status = f_utf_character_is_whitespace(source[*stop], F_false); + + if (F_status_is_error(status)) { + if (F_status_set_fine(status) == F_maybe) { + return F_status_set_error(F_utf_not); + } + + return status; + } + + if (status == F_true) { + return F_data_not; + } + } + + return F_none; + } +#endif // !defined(_di_f_rip_utf_) || !defined(_di_f_rip_utf_dynamic_) || !defined(_di_f_rip_utf_nulless_) || !defined(_di_f_rip_utf_dynamic_nulless_) + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_rip/c/rip/private-utf.h b/level_0/f_rip/c/rip/private-utf.h new file mode 100644 index 0000000..96b5b01 --- /dev/null +++ b/level_0/f_rip/c/rip/private-utf.h @@ -0,0 +1,52 @@ +/** + * FLL - Level 0 + * + * Project: Rip + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * These are provided for internal reduction in redundant code. + * These should not be exposed/used outside of this project. + */ +#ifndef _PRIVATE_F_rip_utf_h +#define _PRIVATE_F_rip_utf_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Private implementation of f_rip_utf(), but only the part for finding the start/stop range. + * + * Intended to be shared to each of the different implementation variations. + * + * @param source + * The string to rip from. + * @param start + * Inclusive start point of string to rip. + * Will be updated to reflect the new start range. + * @param stop + * Inclusive stop point of string to rip. + * Will be updated to reflect the new stop range. + * + * @return + * F_none on success. + * F_data_not on success but only white space found. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Errors (with error bit) from: f_utf_character_is_whitespace() + * + * @see f_utf_character_is_whitespace() + * @see f_rip_utf_dynamic() + * @see f_rip_utf() + */ +#if !defined(_di_f_rip_utf_) || !defined(_di_f_rip_utf_dynamic_) || !defined(_di_f_rip_utf_nulless_) || !defined(_di_f_rip_utf_dynamic_nulless_) + extern f_status_t private_f_rip_utf_find_range(const f_utf_string_t source, f_array_length_t *start, f_array_length_t *stop) F_attribute_visibility_internal_d; +#endif // !defined(_di_f_rip_utf_) || !defined(_di_f_rip_utf_dynamic_) || !defined(_di_f_rip_utf_nulless_) || !defined(_di_f_rip_utf_dynamic_nulless_) + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _PRIVATE_F_rip_utf_h diff --git a/level_0/f_rip/c/rip/utf.c b/level_0/f_rip/c/rip/utf.c new file mode 100644 index 0000000..1c39fe8 --- /dev/null +++ b/level_0/f_rip/c/rip/utf.c @@ -0,0 +1,90 @@ +#include "../rip.h" +#include "private-utf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _di_f_rip_utf_ + f_status_t f_rip_utf(const f_utf_string_t source, const f_array_length_t length, f_utf_string_dynamic_t * const destination) { + #ifndef _di_level_1_parameter_checking_ + if (!destination) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (!length) return F_data_not; + + f_array_length_t begin = 0; + f_array_length_t end = length - 1; + + f_status_t status = private_f_rip_utf_find_range(source, &begin, &end); + + if (F_status_is_error(status)) { + return status; + } + + if (status == F_data_not) { + return status; + } + + return f_utf_string_append(source + begin, (end - begin) + 1, destination); + } +#endif // _di_f_rip_utf_ + +#ifndef _di_f_rip_utf_dynamic_ + f_status_t f_rip_utf_dynamic(const f_utf_string_static_t source, const f_string_range_t range, f_utf_string_dynamic_t * const destination) { + #ifndef _di_level_1_parameter_checking_ + if (source.used <= range.start) return F_status_set_error(F_parameter); + if (source.used <= range.stop) return F_status_set_error(F_parameter); + if (!destination) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (!source.used) return F_data_not; + if (range.start > range.stop) return F_data_not_stop; + + return f_utf_string_append(source.string + range.start, (range.stop - range.start) + 1, destination); + } +#endif // _di_f_rip_utf_dynamic_ + +#ifndef _di_f_rip_utf_dynamic_nulless_ + f_status_t f_rip_utf_dynamic_nulless(const f_utf_string_static_t source, const f_string_range_t range, f_utf_string_dynamic_t * const destination) { + #ifndef _di_level_1_parameter_checking_ + if (source.used <= range.start) return F_status_set_error(F_parameter); + if (source.used <= range.stop) return F_status_set_error(F_parameter); + if (!destination) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (!source.used) return F_data_not; + if (range.start > range.stop) return F_data_not_stop; + + return f_utf_string_append_nulless(source.string + range.start, (range.stop - range.start) + 1, destination); + } +#endif // _di_f_rip_utf_dynamic_nulless_ + +#ifndef _di_f_rip_utf_nulless_ + f_status_t f_rip_utf_nulless(const f_utf_string_t source, const f_array_length_t length, f_utf_string_dynamic_t * const destination) { + #ifndef _di_level_1_parameter_checking_ + if (!destination) return F_status_set_error(F_parameter); + #endif // _di_level_1_parameter_checking_ + + if (!length) return F_data_not; + + f_array_length_t begin = 0; + f_array_length_t end = length - 1; + + f_status_t status = private_f_rip_utf_find_range(source, &begin, &end); + + if (F_status_is_error(status)) { + return status; + } + + if (status == F_data_not) { + return status; + } + + return f_utf_string_append_nulless(source + begin, (end - begin) + 1, destination); + } +#endif // _di_f_rip_utf_nulless_ + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_0/f_rip/c/rip/utf.h b/level_0/f_rip/c/rip/utf.h new file mode 100644 index 0000000..cbe2fc7 --- /dev/null +++ b/level_0/f_rip/c/rip/utf.h @@ -0,0 +1,137 @@ +/** + * FLL - Level 0 + * + * Project: Rip + * API Version: 0.7 + * Licenses: lgpl-2.1-or-later + * + * Provides basic UTF-8 string rip capabilities. + */ +#ifndef _F_rip_utf_h +#define _F_rip_utf_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Allocate a new UTF-8 string from the provided range in the string. + * + * Ignores leading and trailing whitespace. + * As a result, resulting size may be smaller than requested length. + * + * @param source + * The string to rip from. + * @param length + * The length of source to append. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_none on success. + * F_data_not if source length is 0. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + * + * Errors (with error bit) from: f_utf_character_is_whitespace(). + * + * @see f_utf_character_is_whitespace() + */ +#ifndef _di_f_rip_utf_ + extern f_status_t f_rip_utf(const f_utf_string_t source, const f_array_length_t length, f_utf_string_dynamic_t * const destination); +#endif // _di_f_rip_utf_ + +/** + * Allocate a new UTF-8 string from the provided range in the buffer. + * + * Ignores leading and trailing whitespace. + * As a result, resulting size may be smaller than requested range. + * + * @param source + * The buffer to rip from. + * @param range + * A range within the buffer representing the string to rip. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_none on success. + * F_data_not if source length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Errors (with error bit) from: f_utf_string_append(). + * + * @see f_utf_string_append() + */ +#ifndef _di_f_rip_utf_dynamic_ + extern f_status_t f_rip_utf_dynamic(const f_utf_string_static_t source, const f_string_range_t range, f_utf_string_dynamic_t * const destination); +#endif // _di_f_rip_utf_dynamic_ + +/** + * Allocate a new UTF-8 string from the provided range in the buffer. + * + * Ignores leading and trailing whitespace. + * As a result, resulting size may be smaller than requested range. + * + * Skips over NULL characters from source when appending. + * + * @param source + * The string to rip from. + * @param range + * A range within the buffer representing the string to rip. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_none on success. + * F_data_not if source length is 0. + * F_data_not_stop if range.start > range.stop. + * + * F_parameter (with error bit) if a parameter is invalid. + * + * Errors (with error bit) from: f_utf_string_append_nulless(). + * + * @see f_utf_string_append_nulless() + */ +#ifndef _di_f_rip_utf_dynamic_nulless_ + extern f_status_t f_rip_utf_dynamic_nulless(const f_utf_string_static_t source, const f_string_range_t range, f_utf_string_dynamic_t * const destination); +#endif // _di_f_rip_utf_dynamic_nulless_ + +/** + * Allocate a new UTF-8 string from the provided range in the string. + * + * Ignores leading and trailing whitespace. + * As a result, resulting size may be smaller than requested length. + * + * Skips over NULL characters from source when ripping. + * + * @param source + * The string to rip from. + * @param length + * The length of source to append. + * @param destination + * The new string, which will be allocated or reallocated as necessary. + * + * @return + * F_none on success. + * F_data_not if source length is 0. + * + * F_parameter (with error bit) if a parameter is invalid. + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + * + * Errors (with error bit) from: f_utf_character_is_whitespace(). + * + * @see f_utf_character_is_whitespace() + */ +#ifndef _di_f_rip_utf_nulless_ + extern f_status_t f_rip_utf_nulless(const f_utf_string_t source, const f_array_length_t length, f_utf_string_dynamic_t * const destination); +#endif // _di_f_rip_utf_nulless_ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _F_rip_utf_h diff --git a/level_0/f_rip/data/build/defines b/level_0/f_rip/data/build/defines new file mode 100644 index 0000000..4f13080 --- /dev/null +++ b/level_0/f_rip/data/build/defines @@ -0,0 +1 @@ +# fss-0000 diff --git a/level_0/f_rip/data/build/dependencies b/level_0/f_rip/data/build/dependencies new file mode 100644 index 0000000..deb9037 --- /dev/null +++ b/level_0/f_rip/data/build/dependencies @@ -0,0 +1,7 @@ +# fss-0000 + +f_type +f_status +f_memory +f_string +f_utf diff --git a/level_0/f_rip/data/build/dependencies-tests b/level_0/f_rip/data/build/dependencies-tests new file mode 100644 index 0000000..dea3179 --- /dev/null +++ b/level_0/f_rip/data/build/dependencies-tests @@ -0,0 +1,3 @@ +# fss-0001 + +cmocka 1.* diff --git a/level_0/f_rip/data/build/fakefile b/level_0/f_rip/data/build/fakefile new file mode 100644 index 0000000..5328059 --- /dev/null +++ b/level_0/f_rip/data/build/fakefile @@ -0,0 +1,11 @@ +# fss-0005 iki-0002 + +settings: + fail exit + modes individual level monolithic clang test + + environment PATH LD_LIBRARY_PATH + +main: + + build diff --git a/level_0/f_rip/data/build/settings b/level_0/f_rip/data/build/settings new file mode 100644 index 0000000..74c092e --- /dev/null +++ b/level_0/f_rip/data/build/settings @@ -0,0 +1,58 @@ +# fss-0001 + +build_name f_rip + +version_major 0 +version_minor 7 +version_micro 0 +version_file micro +version_target minor + +modes individual clang test coverage +modes_default individual + +build_compiler gcc +build_compiler-clang clang +build_indexer ar +build_indexer_arguments rcs +build_language c + +build_libraries -lc +build_libraries-individual -lf_memory -lf_string -lf_utf + +build_sources_library rip.c rip/utf.c private-rip.c rip/private-utf.c + +build_sources_headers rip.h rip/utf.h + +build_script yes +build_shared yes +build_static no + +path_headers fll/level_0 +path_library_script script +path_library_shared shared +path_library_static static +path_object_script script +path_object_shared shared +path_object_static static +path_program_script script +path_program_shared shared +path_program_static static + +has_path_standard yes +preserve_path_headers yes + +search_exclusive yes +search_shared yes +search_static yes + +environment PATH LD_LIBRARY_PATH + +flags -O2 -z now -g -fdiagnostics-color=always -Wno-logical-not-parentheses -Wno-parentheses +flags-clang -Wno-logical-op-parentheses +flags-test -O0 -fstack-protector -Wall +flags-coverage -O0 --coverage -fprofile-abs-path -fprofile-dir=build/coverage/ + +flags_library -fPIC +flags_object -fPIC +flags_program -fPIE diff --git a/level_0/f_string/c/private-string.h b/level_0/f_string/c/private-string.h index 8830fcb..22ce72d 100644 --- a/level_0/f_string/c/private-string.h +++ b/level_0/f_string/c/private-string.h @@ -47,6 +47,7 @@ extern "C" { * @see f_string_dynamic_partial_mash_nulless() * @see f_string_dynamic_partial_mish() * @see f_string_dynamic_partial_mish_nulless() + * @see f_string_dynamic_partial_prepend() * @see f_string_dynamics_append() * @see f_string_map_multis_append() * @see f_string_mash() diff --git a/level_0/f_string/data/build/settings b/level_0/f_string/data/build/settings index 34a9bb2..81e729d 100644 --- a/level_0/f_string/data/build/settings +++ b/level_0/f_string/data/build/settings @@ -20,10 +20,30 @@ build_language c build_libraries -lc build_libraries-individual -lf_memory -build_sources_library string.c private-string.c string/common.c string/private-dynamic.c string/private-dynamics.c string/private-dynamicss.c string/private-maps.c string/private-mapss.c string/private-map_multis.c string/private-map_multiss.c string/private-quantitys.c string/private-quantityss.c string/private-ranges.c string/private-rangess.c string/private-triples.c string/private-tripless.c -build_sources_library string/dynamic.c string/dynamics.c string/dynamicss.c string/map.c string/maps.c string/mapss.c string/map_multi.c string/map_multis.c string/map_multiss.c string/quantity.c string/quantitys.c string/quantityss.c string/range.c string/ranges.c string/rangess.c string/static.c string/statics.c string/staticss.c string/triple.c string/triples.c string/tripless.c +build_sources_library string.c +build_sources_library private-string.c string/common.c +build_sources_library string/private-dynamic.c string/private-dynamics.c string/private-dynamicss.c +build_sources_library string/private-maps.c string/private-mapss.c +build_sources_library string/private-map_multis.c string/private-map_multiss.c +build_sources_library string/private-quantitys.c string/private-quantityss.c +build_sources_library string/private-ranges.c string/private-rangess.c +build_sources_library string/private-triples.c string/private-tripless.c +build_sources_library string/dynamic.c string/dynamics.c string/dynamicss.c +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/static.c string/statics.c string/staticss.c +build_sources_library string/triple.c string/triples.c string/tripless.c -build_sources_headers string.h string/common.h string/dynamic.h string/dynamics.h string/dynamicss.h string/map.h string/maps.h string/mapss.h string/map_multi.h string/map_multis.h string/map_multiss.h string/quantity.h string/quantitys.h string/quantityss.h string/range.h string/ranges.h string/rangess.h string/static.h string/statics.h string/staticss.h string/triple.h string/triples.h string/tripless.h +build_sources_headers string.h string/common.h +build_sources_headers string/dynamic.h string/dynamics.h string/dynamicss.h +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/static.h string/statics.h string/staticss.h +build_sources_headers string/triple.h string/triples.h string/tripless.h build_script yes build_shared yes diff --git a/level_1/fl_string/c/private-string.h b/level_1/fl_string/c/private-string.h deleted file mode 100644 index 8276c94..0000000 --- a/level_1/fl_string/c/private-string.h +++ /dev/null @@ -1,208 +0,0 @@ -/** - * FLL - Level 1 - * - * Project: String - * API Version: 0.7 - * Licenses: lgpl-2.1-or-later - * - * These are provided for internal reduction in redundant code. - * These should not be exposed/used outside of this project. - */ -#ifndef _PRIVATE_FL_string_h -#define _PRIVATE_FL_string_h - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Private implementation of fl_string_compare(). - * - * Intended to be shared to each of the different implementation variations. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param offset1 - * Offset of string1 to start at. - * @param offset2 - * Offset of string2 to start at. - * @param stop1 - * Exclusive stop position for string1. - * @param stop2 - * Exclusive stop position for string2. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * @see fl_string_compare() - * @see fl_string_dynamic_compare() - * @see fl_string_dynamic_compare_string() - * @see fl_string_dynamic_partial_compare() - * @see fl_string_dynamic_partial_compare_dynamic() - */ -#if !defined(_di_fl_string_compare_) || !defined(_di_fl_string_dynamic_compare_) || !defined(_di_fl_string_dynamic_compare_string_) || !defined(_di_fl_string_dynamic_partial_compare_) || !defined(_di_fl_string_dynamic_partial_compare_dynamic_) - extern f_status_t private_fl_string_compare(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) F_attribute_visibility_internal_d; -#endif // !defined(_di_fl_string_compare_) || !defined(_di_fl_string_dynamic_compare_) || !defined(_di_fl_string_dynamic_compare_string_) || !defined(_di_fl_string_dynamic_partial_compare_) || !defined(_di_fl_string_dynamic_partial_compare_dynamic_) - -/** - * Private implementation of fl_string_compare_except(). - * - * Intended to be shared to each of the different implementation variations. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param offset1 - * Offset of string1 to start at. - * @param offset2 - * Offset of string2 to start at. - * @param stop1 - * Exclusive stop position for string1. - * @param stop2 - * Exclusive stop position for string2. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * @see fl_string_compare_except() - * @see fl_string_dynamic_compare_except() - * @see fl_string_dynamic_partial_compare_except() - */ -#if !defined(_di_fl_string_compare_except_) || !defined(_di_fl_string_dynamic_compare_except_) || !defined(_di_fl_string_dynamic_partial_compare_except_) - extern f_status_t private_fl_string_compare_except(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2, const f_array_lengths_t except1, const f_array_lengths_t except2) F_attribute_visibility_internal_d; -#endif // !defined(_di_fl_string_compare_except_) || !defined(_di_fl_string_dynamic_compare_except_) || !defined(_di_fl_string_dynamic_partial_compare_except_) - -/** - * Private implementation of fl_string_compare_except_trim(). - * - * Intended to be shared to each of the different implementation variations. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param offset1 - * Offset of string1 to start at. - * @param offset2 - * Offset of string2 to start at. - * @param stop1 - * Exclusive stop position for string1. - * @param stop2 - * Exclusive stop position for string2. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_utf_not (with error bit) if a character is not valid UTF-8. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - * - * @see fl_string_compare_except_trim() - * @see fl_string_dynamic_compare_except_trim() - * @see fl_string_dynamic_partial_compare_except_trim() - */ -#if !defined(_di_fl_string_compare_except_trim_) || !defined(_di_fl_string_dynamic_compare_except_trim_) || !defined(_di_fl_string_dynamic_partial_compare_except_trim_) - extern f_status_t private_fl_string_compare_except_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2, const f_array_lengths_t except1, const f_array_lengths_t except2) F_attribute_visibility_internal_d; -#endif // !defined(_di_fl_string_compare_except_trim_) || !defined(_di_fl_string_dynamic_compare_except_trim_) || !defined(_di_fl_string_dynamic_partial_compare_except_trim_) - -/** - * Private implementation of fl_string_compare_trim(). - * - * Intended to be shared to each of the different implementation variations. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param offset1 - * Offset of string1 to start at. - * @param offset2 - * Offset of string2 to start at. - * @param stop1 - * Exclusive stop position for string1. - * @param stop2 - * Exclusive stop position for string2. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_utf_not (with error bit) if a character is not valid UTF-8. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - * - * @see fl_string_compare_trim() - * @see fl_string_dynamic_compare_trim() - * @see fl_string_dynamic_partial_compare_trim() - */ -#if !defined(_di_fl_string_compare_trim_) || !defined(_di_fl_string_dynamic_compare_trim_) || !defined(_di_fl_string_dynamic_partial_compare_trim_) - extern f_status_t private_fl_string_compare_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) F_attribute_visibility_internal_d; -#endif // !defined(_di_fl_string_compare_trim_) || !defined(_di_fl_string_dynamic_compare_trim_) || !defined(_di_fl_string_dynamic_partial_compare_trim_) - -/** - * Private implementation of fl_string_rip(), but only the part for finding the start/stop range. - * - * Intended to be shared to each of the different implementation variations. - * - * @param string - * The string to rip from. - * @param start - * Inclusive start point of string to rip. - * Will be updated to reflect the new start range. - * @param stop - * Inclusive stop point of string to rip. - * Will be updated to reflect the new stop range. - * - * @return - * F_none on success. - * F_data_not on success but only white space found. - * - * F_utf_not (with error bit) if a character is not valid UTF-8. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - * - * @see fl_string_dynamic_partial_rip() - * @see fl_string_dynamic_partial_rip_nulless() - * @see fl_string_dynamic_rip() - * @see fl_string_rip() - * @see fl_string_rip_nulless() - */ -#if !defined(_di_fl_string_dynamic_partial_rip_) || !defined(_di_fl_string_dynamic_partial_rip_nulless_) || !defined(_di_fl_string_dynamic_rip_) || !defined(_di_fl_string_rip_) || !defined(_di_fl_string_rip_nulless_) - extern f_status_t private_fl_string_rip_find_range(const f_string_t string, f_array_length_t * const start, f_array_length_t * const stop) F_attribute_visibility_internal_d; -#endif // !defined(_di_fl_string_dynamic_partial_rip_) || !defined(_di_fl_string_dynamic_partial_rip_nulless_) || !defined(_di_fl_string_dynamic_rip_) || !defined(_di_fl_string_rip_) || !defined(_di_fl_string_rip_nulless_) - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // _PRIVATE_FL_string_h diff --git a/level_1/fl_string/c/string.c b/level_1/fl_string/c/string.c deleted file mode 100644 index 76d16a7..0000000 --- a/level_1/fl_string/c/string.c +++ /dev/null @@ -1,1094 +0,0 @@ -#include "string.h" -#include "private-string.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _di_fl_string_compare_ - f_status_t fl_string_compare(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2) { - - return private_fl_string_compare(string1, string2, 0, 0, length1, length2); - } -#endif // _di_fl_string_compare_ - -#ifndef _di_fl_string_compare_except_ - f_status_t fl_string_compare_except(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except(string1, string2, 0, 0, length1, length2, except1, except2); - } -#endif // _di_fl_string_compare_except_ - -#ifndef _di_fl_string_compare_except_trim_ - f_status_t fl_string_compare_except_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except_trim(string1, string2, 0, 0, length1, length2, except1, except2); - } -#endif // _di_fl_string_compare_except_trim_ - -#ifndef _di_fl_string_compare_trim_ - f_status_t fl_string_compare_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2) { - - return private_fl_string_compare_trim(string1, string2, 0, 0, length1, length2); - } -#endif // _di_fl_string_compare_trim_ - -#ifndef _di_fl_string_dynamic_compare_ - f_status_t fl_string_dynamic_compare(const f_string_static_t string1, const f_string_static_t string2) { - - return private_fl_string_compare(string1.string, string2.string, 0, 0, string1.used, string2.used); - } -#endif // _di_fl_string_dynamic_compare_ - -#ifndef _di_fl_string_dynamic_compare_except_ - f_status_t fl_string_dynamic_compare_except(const f_string_static_t string1, const f_string_static_t string2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except(string1.string, string2.string, 0, 0, string1.used, string2.used, except1, except2); - } -#endif // _di_fl_string_dynamic_compare_except_ - -#ifndef _di_fl_string_dynamic_compare_except_string_ - f_status_t fl_string_dynamic_compare_except_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except(string1, string2.string, 0, 0, length1, string2.used, except1, except2); - } -#endif // _di_fl_string_dynamic_compare_except_string_ - -#ifndef _di_fl_string_dynamic_compare_except_trim_ - f_status_t fl_string_dynamic_compare_except_trim(const f_string_static_t string1, const f_string_static_t string2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except_trim(string1.string, string2.string, 0, 0, string1.used, string2.used, except1, except2); - } -#endif // _di_fl_string_dynamic_compare_except_trim_ - -#ifndef _di_fl_string_dynamic_compare_except_trim_string_ - f_status_t fl_string_dynamic_compare_except_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except_trim(string1, string2.string, 0, 0, length1, string2.used, except1, except2); - } -#endif // _di_fl_string_dynamic_compare_except_trim_string_ - -#ifndef _di_fl_string_dynamic_compare_string_ - f_status_t fl_string_dynamic_compare_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1) { - - return private_fl_string_compare(string1, string2.string, 0, 0, length1, string2.used); - } -#endif // _di_fl_string_dynamic_compare_string_ - -#ifndef _di_fl_string_dynamic_compare_trim_ - f_status_t fl_string_dynamic_compare_trim(const f_string_static_t string1, const f_string_static_t string2) { - - return private_fl_string_compare_trim(string1.string, string2.string, 0, 0, string1.used, string2.used); - } -#endif // _di_fl_string_dynamic_compare_trim_ - -#ifndef _di_fl_string_dynamic_compare_trim_string_ - f_status_t fl_string_dynamic_compare_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1) { - - return private_fl_string_compare_trim(string1, string2.string, 0, 0, length1, string2.used); - } -#endif // _di_fl_string_dynamic_compare_trim_string_ - -#ifndef _di_fl_string_dynamic_partial_compare_ - f_status_t fl_string_dynamic_partial_compare(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2) { - - return private_fl_string_compare(string1.string, string2.string, range1.start, range2.start, string1.used <= range1.stop ? string1.used : range1.stop + 1, string2.used <= range2.stop ? string2.used : range2.stop + 1); - } -#endif // _di_fl_string_dynamic_partial_compare_ - -#ifndef _di_fl_string_dynamic_partial_compare_dynamic_ - f_status_t fl_string_dynamic_partial_compare_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2) { - - return private_fl_string_compare(string1.string, string2.string, 0, range2.start, string1.used, string2.used <= range2.stop ? string2.used : range2.stop + 1); - } -#endif // _di_fl_string_dynamic_partial_compare_dynamic_ - -#ifndef _di_fl_string_dynamic_partial_compare_string_ - f_status_t fl_string_dynamic_partial_compare_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2) { - - return private_fl_string_compare(string1, string2.string, 0, range2.start, length1, string2.used < range2.stop ? string2.used : range2.stop + 1); - } -#endif // _di_fl_string_dynamic_partial_compare_string_ - -#ifndef _di_fl_string_dynamic_partial_compare_except_ - f_status_t fl_string_dynamic_partial_compare_except(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except(string1.string, string2.string, range1.start, range2.start, string1.used < range1.stop ? string1.used : range1.stop + 1, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); - } -#endif // _di_fl_string_dynamic_partial_compare_except_ - -#ifndef _di_fl_string_dynamic_partial_compare_except_dynamic_ - f_status_t fl_string_dynamic_partial_compare_except_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except(string1.string, string2.string, 0, range2.start, string1.used, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); - } -#endif // _di_fl_string_dynamic_partial_compare_except_dynamic_ - -#ifndef _di_fl_string_dynamic_partial_compare_except_string_ - f_status_t fl_string_dynamic_partial_compare_except_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except(string1, string2.string, 0, range2.start, length1, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); - } -#endif // _di_fl_string_dynamic_partial_compare_except_string_ - -#ifndef _di_fl_string_dynamic_partial_compare_except_trim_ - f_status_t fl_string_dynamic_partial_compare_except_trim(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except_trim(string1.string, string2.string, range1.start, range2.start, string1.used <= range1.stop ? string1.used : range1.stop + 1, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); - } -#endif // _di_fl_string_dynamic_partial_compare_except_trim_ - -#ifndef _di_fl_string_dynamic_partial_compare_except_trim_dynamic_ - f_status_t fl_string_dynamic_partial_compare_except_trim_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except_trim(string1.string, string2.string, 0, range2.start, string1.used, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); - } -#endif // _di_fl_string_dynamic_partial_compare_except_trim_dynamic_ - -#ifndef _di_fl_string_dynamic_partial_compare_except_trim_string_ - f_status_t fl_string_dynamic_partial_compare_except_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2) { - - return private_fl_string_compare_except_trim(string1, string2.string, 0, range2.start, length1, string2.used <= range2.stop ? string2.used : range2.stop + 1, except1, except2); - } -#endif // _di_fl_string_dynamic_partial_compare_except_trim_string_ - -#ifndef _di_fl_string_dynamic_partial_compare_trim_ - f_status_t fl_string_dynamic_partial_compare_trim(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2) { - - return private_fl_string_compare_trim(string1.string, string2.string, range1.start, range2.start, string1.used <= range1.stop ? string1.used : range1.stop + 1, string2.used <= range2.stop ? string2.used : range2.stop + 1); - } -#endif // _di_fl_string_dynamic_partial_compare_trim_ - -#ifndef _di_fl_string_dynamic_partial_compare_trim_dynamic_ - f_status_t fl_string_dynamic_partial_compare_trim_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2) { - - return private_fl_string_compare_trim(string1.string, string2.string, 0, range2.start, string1.used, string2.used <= range2.stop ? string2.used : range2.stop + 1); - } -#endif // _di_fl_string_dynamic_partial_compare_trim_dynamic_ - -#ifndef _di_fl_string_dynamic_partial_compare_trim_string_ - f_status_t fl_string_dynamic_partial_compare_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2) { - - return private_fl_string_compare_trim(string1, string2.string, 0, range2.start, length1, string2.used <= range2.stop ? string2.used : range2.stop + 1); - } -#endif // _di_fl_string_dynamic_partial_compare_trim_string_ - -#ifndef _di_fl_string_dynamic_partial_rip_ - f_status_t fl_string_dynamic_partial_rip(const f_string_static_t source, const f_string_range_t range, f_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!source.used) { - return F_data_not_eos; - } - - if (range.start > range.stop) { - return F_data_not_stop; - } - - f_array_length_t begin = range.start; - f_array_length_t end = range.stop; - - { - const f_status_t status = private_fl_string_rip_find_range(source.string, &begin, &end); - if (F_status_is_error(status)) return status; - - if (status == F_data_not) { - return status; - } - } - - if (begin > end) { - return F_data_not_stop; - } - - return f_string_append(source.string + begin, (end - begin) + 1, destination); - } -#endif // _di_fl_string_dynamic_partial_rip_ - -#ifndef _di_fl_string_dynamic_partial_rip_nulless_ - f_status_t fl_string_dynamic_partial_rip_nulless(const f_string_static_t source, const f_string_range_t range, f_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!source.used) { - return F_data_not_eos; - } - - if (range.start > range.stop) { - return F_data_not_stop; - } - - f_array_length_t begin = range.start; - f_array_length_t end = range.stop; - - { - const f_status_t status = private_fl_string_rip_find_range(source.string, &begin, &end); - if (F_status_is_error(status)) return status; - - if (status == F_data_not) { - return status; - } - } - - if (begin > end) { - return F_data_not_stop; - } - - return f_string_append_nulless(source.string + begin, (end - begin) + 1, destination); - } -#endif // _di_fl_string_dynamic_partial_rip_nulless_ - -#ifndef _di_fl_string_dynamic_rip_ - f_status_t fl_string_dynamic_rip(const f_string_static_t source, f_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!source.used) { - return F_data_not_eos; - } - - f_array_length_t begin = 0; - f_array_length_t end = source.used - 1; - - { - const f_status_t status = private_fl_string_rip_find_range(source.string, &begin, &end); - if (F_status_is_error(status)) return status; - - if (status == F_data_not) { - return status; - } - } - - if (begin > end) { - return F_data_not_stop; - } - - return f_string_append(source.string + begin, (end - begin) + 1, destination); - } -#endif // _di_fl_string_dynamic_rip_ - -#ifndef _di_fl_string_dynamic_rip_nulless_ - f_status_t fl_string_dynamic_rip_nulless(const f_string_static_t source, f_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!source.used) { - return F_data_not_eos; - } - - f_array_length_t begin = 0; - f_array_length_t end = source.used - 1; - - { - const f_status_t status = private_fl_string_rip_find_range(source.string, &begin, &end); - if (F_status_is_error(status)) return status; - - if (status == F_data_not) { - return status; - } - } - - if (begin > end) { - return F_data_not_stop; - } - - return f_string_append_nulless(source.string + begin, (end - begin) + 1, destination); - } -#endif // _di_fl_string_dynamic_rip_nulless_ - -#ifndef _di_fl_string_dynamic_seek_line_to_utf_character_ - f_status_t fl_string_dynamic_seek_line_to_utf_character(const f_string_static_t buffer, const f_utf_char_t seek_to_this, f_string_range_t * const range) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!buffer.used) { - return F_data_not; - } - - if (range->start > range->stop) { - return F_data_not_stop; - } - - const unsigned short seek_width = macro_f_utf_char_t_width(seek_to_this); - - f_status_t status = F_none; - - unsigned short width = 0; - f_array_length_t width_max = 0; - - while (range->start <= range->stop) { - - width_max = (range->stop - range->start) + 1; - width = macro_f_utf_byte_width_is(buffer.string[range->start]); - - if (!width) { - width = 1; - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - return F_none_eol; - } - - if (seek_width == width) { - if (buffer.string[range->start] == seek_to_this) { - return F_none; - } - } - } - // Do not operate on UTF-8 fragments that are not the first byte of the character. - else if (width == 1) { - return F_status_set_error(F_complete_not_utf); - } - else { - if (range->start + width > range->stop) { - return F_status_set_error(F_complete_not_utf_stop); - } - - if (width == seek_width) { - f_utf_char_t character = 0; - - status = f_utf_char_to_character(buffer.string + range->start, width_max, &character); - if (F_status_is_error(status)) return status; - - if (character == seek_to_this) { - return F_none; - } - } - } - - range->start += width; - - if (range->start >= range->stop) { - return F_none_stop; - } - } // while - - return F_none_eos; - } -#endif // _di_fl_string_dynamic_seek_line_to_utf_character_ - -#ifndef _di_fl_string_dynamic_seek_line_until_graph_ - f_status_t fl_string_dynamic_seek_line_until_graph(const f_string_static_t buffer, const uint8_t placeholder, f_string_range_t * const range) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!buffer.used) { - return F_data_not; - } - - if (range->start > range->stop) { - return F_data_not_stop; - } - - f_status_t status = F_none; - unsigned short width = 0; - - f_array_length_t width_max = (range->stop - range->start) + 1; - - while (buffer.string[range->start] == placeholder || (status = f_utf_is_graph(buffer.string + range->start, width_max)) == F_false) { - - if (F_status_is_error(status)) return status; - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - return F_none_eol; - } - - width = macro_f_utf_byte_width_is(buffer.string[range->start]); - - if (!width) { - width = 1; - } - else if (width == 1) { - - // Do not operate on UTF-8 fragments that are not the first byte of the character. - return F_status_set_error(F_complete_not_utf); - } - else { - if (range->start + width > range->stop) { - return F_status_set_error(F_complete_not_utf_stop); - } - } - - range->start += width; - - if (range->start > range->stop) { - return F_none_stop; - } - - width_max = (range->stop - range->start) + 1; - } // while - - if (F_status_is_error(status)) return status; - - return F_none; - } -#endif // _di_fl_string_dynamic_seek_line_until_graph_ - -#ifndef _di_fl_string_dynamic_seek_line_until_graph_non_ - f_status_t fl_string_dynamic_seek_line_until_graph_non(const f_string_static_t buffer, const uint8_t placeholder, f_string_range_t * const range) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!buffer.used) { - return F_data_not; - } - - if (range->start > range->stop) { - return F_data_not_stop; - } - - f_status_t status = F_none; - unsigned short width = 0; - - f_array_length_t width_max = (range->stop - range->start) + 1; - - while (buffer.string[range->start] == placeholder || (status = f_utf_is_whitespace(buffer.string + range->start, width_max, F_false)) == F_false) { - - if (F_status_is_error(status)) return status; - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - return F_none_eol; - } - - width = macro_f_utf_byte_width_is(buffer.string[range->start]); - - if (!width) { - width = 1; - } - else if (width == 1) { - - // Do not operate on UTF-8 fragments that are not the first byte of the character. - return F_status_set_error(F_complete_not_utf); - } - else { - if (range->start + width > range->stop) { - return F_status_set_error(F_complete_not_utf_stop); - } - } - - range->start += width; - - if (range->start > range->stop) { - return F_none_stop; - } - - width_max = (range->stop - range->start) + 1; - } // while - - if (F_status_is_error(status)) return status; - - return F_none; - } -#endif // _di_fl_string_dynamic_seek_line_until_graph_non_ - -#ifndef _di_fl_string_dynamic_seek_to_utf_character_ - f_status_t fl_string_dynamic_seek_to_utf_character(const f_string_static_t buffer, const f_utf_char_t seek_to_this, f_string_range_t * const range) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!buffer.used) { - return F_data_not; - } - - if (range->start > range->stop) { - return F_data_not_stop; - } - - const unsigned short seek_width = macro_f_utf_char_t_width(seek_to_this); - - f_status_t status = F_none; - - unsigned short width = 0; - - f_array_length_t width_max = 0; - - while (range->start <= range->stop) { - - width_max = (range->stop - range->start) + 1; - width = macro_f_utf_byte_width_is(buffer.string[range->start]); - - if (!width) { - width = 1; - - if (seek_width == width) { - if (buffer.string[range->start] == seek_to_this) { - return F_none; - } - } - } - // Do not operate on UTF-8 fragments that are not the first byte of the character. - else if (width == 1) { - return F_status_set_error(F_complete_not_utf); - } - else { - if (range->start + width > range->stop) { - return F_status_set_error(F_complete_not_utf_stop); - } - - if (width == seek_width) { - f_utf_char_t character = 0; - - status = f_utf_char_to_character(buffer.string + range->start, width_max, &character); - if (F_status_is_error(status)) return status; - - if (character == seek_to_this) { - return F_none; - } - } - } - - range->start += width; - - if (range->start >= range->stop) { - return F_none_stop; - } - } // while - - return F_none_eos; - } -#endif // _di_fl_string_dynamic_seek_to_utf_character_ - -#ifndef _di_fl_string_dynamic_partial_fll_identify_ - f_status_t fl_string_dynamic_partial_fll_identify(const f_string_static_t buffer, f_string_range_t * const range, f_fll_id_t * const id) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (id) { - id->type = 0; - id->used = 0; - } - - // Skip past all leading NULLs. - for (; range->start <= range->stop; ++range->start) { - if (buffer.string[range->start]) break; - } // for - - if (range->start > range->stop) { - return F_data_not; - } - - // The FLL Identifier is always at least 6 characters ("X-0000"). - if (range->stop - range->start < 5) { - - // Increment until stop, while taking into consideration UTF-8 character widths. - for (; range->start <= range->stop; ) { - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - ++range->start; - - break; - } - - range->start += macro_f_utf_byte_width(buffer.string[range->start]); - } // for - - return F_found_not; - } - - f_status_t status = F_none; - - for (; range->start <= range->stop; ) { - - status = f_utf_is_whitespace(buffer.string + range->start, (range->stop - range->start) + 1, F_false); - - if (F_status_is_error(status)) { - if (F_status_set_fine(status) == F_maybe) { - return F_status_set_error(F_complete_not_utf); - } - - return status; - } - - if (status == F_false) { - if (!buffer.string[range->start]) { - ++range->start; - - continue; - } - - break; - } - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - ++range->start; - - return F_found_not; - } - - range->start += macro_f_utf_byte_width(buffer.string[range->start]); - } // for - - if (range->start > range->stop) { - return F_found_not; - } - - if (range->stop - range->start < 5) { - - // Increment until stop, while taking into consideration UTF-8 character widths. - for (; range->start <= range->stop; ) { - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - ++range->start; - - break; - } - - range->start += macro_f_utf_byte_width(buffer.string[range->start]); - } // for - - return F_found_not; - } - - f_array_length_t i = range->start; - - for (; range->start <= range->stop; ) { - - status = f_utf_is_word(buffer.string + range->start, (range->stop - range->start) + 1, F_true); - if (F_status_is_error(status)) return status; - - if (status == F_false) { - if (!buffer.string[range->start]) { - ++range->start; - - continue; - } - - break; - } - - range->start += macro_f_utf_byte_width(buffer.string[range->start]); - } // for - - if (range->start > range->stop || buffer.string[range->start] != f_string_ascii_minus_s.string[0]) { - - // Increment until stop, while taking into consideration UTF-8 character widths. - for (; range->start <= range->stop; ) { - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - ++range->start; - - break; - } - - range->start += macro_f_utf_byte_width(buffer.string[range->start]); - } // for - - return F_found_not; - } - - { - f_array_length_t j = 0; - f_char_t number[5] = { 0, 0, 0, 0, 0 }; - - for (++range->start; range->start <= range->stop && j < 4; ++range->start, ++j) { - - // The hexidecimal representing the number may only be ASCII. - if (macro_f_utf_byte_width_is(buffer.string[range->start])) { - - // Increment until stop, while taking into consideration UTF-8 character widths. - for (; range->start <= range->stop; ) { - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - ++range->start; - - break; - } - - range->start += macro_f_utf_byte_width(buffer.string[range->start]); - } // for - - if (id) { - id->type = 0; - } - - return F_found_not; - } - - if (isxdigit(buffer.string[range->start])) { - number[j] = buffer.string[range->start]; - } - else { - if (!buffer.string[range->start]) continue; - - break; - } - } // for - - if (j == 4) { - if (id) { - id->type = strtol(number, 0, 16); - } - } - else { - - // Increment until stop, while taking into consideration UTF-8 character widths. - for (; range->start <= range->stop; ) { - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - ++range->start; - - break; - } - - range->start += macro_f_utf_byte_width(buffer.string[range->start]); - } // for - - if (id) { - id->type = 0; - } - - return F_found_not; - } - } - - // Skip past all NULLs. - for (; range->start <= range->stop; ++range->start) { - if (buffer.string[range->start]) break; - } // for - - // The end of line, whitespace, or range stop point are the only valid stop points. - if (range->start <= range->stop) { - status = f_utf_is_whitespace(buffer.string + range->start, (range->stop - range->start) + 1, F_false); - - if (F_status_is_error(status)) { - if (id) { - id->type = 0; - } - - return status; - } - - if (status == F_false) { - - // Increment until stop, while taking into consideration UTF-8 character widths. - for (; range->start <= range->stop; ) { - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - ++range->start; - - break; - } - - range->start += macro_f_utf_byte_width(buffer.string[range->start]); - } // for - - if (id) { - id->type = 0; - } - - return F_found_not; - } - } - - if (buffer.string[range->start] == f_string_eol_s.string[0]) { - ++range->start; - } - - if (id) { - for (f_array_length_t j = i, i = 0; j <= range->stop; ++j) { - - if (!buffer.string[j]) continue; - if (buffer.string[j] == f_string_ascii_minus_s.string[0]) break; - - id->name[i++] = buffer.string[j]; - } // for - - id->used = i + 1; - - if (id->used < 64) { - id->name[id->used] = 0; - } - } - - return F_found; - } -#endif // _di_fl_string_dynamic_partial_fll_identify_ - -#ifndef _di_fl_string_rip_ - f_status_t fl_string_rip(const f_string_t source, const f_array_length_t length, f_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!length) { - return F_data_not_eos; - } - - f_array_length_t begin = 0; - f_array_length_t end = length - 1; - - const f_status_t status = private_fl_string_rip_find_range(source, &begin, &end); - if (F_status_is_error(status)) return status; - - if (status == F_data_not) { - return status; - } - - return f_string_append(source + begin, (end - begin) + 1, destination); - } -#endif // _di_fl_string_rip_ - -#ifndef _di_fl_string_rip_nulless_ - f_status_t fl_string_rip_nulless(const f_string_t source, const f_array_length_t length, f_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!length) { - return F_data_not_eos; - } - - f_array_length_t begin = 0; - f_array_length_t end = length - 1; - - const f_status_t status = private_fl_string_rip_find_range(source, &begin, &end); - if (F_status_is_error(status)) return status; - - if (status == F_data_not) { - return status; - } - - return f_string_append_nulless(source + begin, (end - begin) + 1, destination); - } -#endif // _di_fl_string_rip_nulless_ - -#ifndef _di_fl_string_seek_line_to_utf_character_ - f_status_t fl_string_seek_line_to_utf_character(const f_string_t string, const f_utf_char_t seek_to, f_string_range_t * const range) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (range->start > range->stop) { - return F_data_not_stop; - } - - const unsigned short seek_width = macro_f_utf_char_t_width(seek_to); - - f_status_t status = F_none; - - unsigned short width = 0; - f_array_length_t width_max = (range->stop - range->start) + 1; - - for (; range->start <= range->stop; range->start += width) { - - width_max = (range->stop - range->start) + 1; - - width = macro_f_utf_byte_width_is(string[range->start]); - - if (!width) { - width = 1; - - if (string[range->start] == f_string_eol_s.string[0]) { - return F_none_eol; - } - - if (seek_width == width) { - if (string[range->start] == seek_to) { - return F_none; - } - } - } - // Do not operate on UTF-8 fragments that are not the first byte of the character. - else if (width == 1) { - return F_status_set_error(F_complete_not_utf); - } - else { - if (range->start + width > range->stop) { - return F_status_set_error(F_complete_not_utf_eos); - } - - if (width == seek_width) { - f_utf_char_t character = 0; - - status = f_utf_char_to_character(string + range->start, width_max, &character); - if (F_status_is_error(status)) return status; - - if (character == seek_to) { - return F_none; - } - } - } - } // for - - return F_none_stop; - } -#endif // _di_fl_string_seek_line_to_utf_character_ - -#ifndef _di_fl_string_seek_line_until_graph_ - f_status_t fl_string_seek_line_until_graph(const f_string_t string, const uint8_t placeholder, f_string_range_t * const range) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (range->start > range->stop) { - return F_data_not_stop; - } - - f_status_t status = F_none; - unsigned short width = 0; - - f_array_length_t width_max = (range->stop - range->start) + 1; - - while (string[range->start] == placeholder || (status = f_utf_is_graph(string + range->start, width_max)) == F_false) { - - if (F_status_is_error(status)) return status; - - if (string[range->start] == f_string_eol_s.string[0]) { - return F_none_eol; - } - - width = macro_f_utf_byte_width_is(string[range->start]); - - if (!width) { - width = 1; - } - else if (width == 1) { - - // Do not operate on UTF-8 fragments that are not the first byte of the character. - return F_status_set_error(F_complete_not_utf); - } - else { - if (range->start + width > range->stop) { - return F_status_set_error(F_complete_not_utf_stop); - } - } - - range->start += width; - - if (range->start > range->stop) { - return F_none_stop; - } - - width_max = (range->stop - range->start) + 1; - } // while - - if (F_status_is_error(status)) return status; - - return F_none; - } -#endif // _di_fl_string_seek_line_until_graph_ - -#ifndef _di_fl_string_seek_line_until_graph_non_ - f_status_t fl_string_seek_line_until_graph_non(const f_string_t string, const uint8_t placeholder, f_string_range_t * const range) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (range->start > range->stop) { - return F_data_not_stop; - } - - f_status_t status = F_none; - unsigned short width = 0; - - f_array_length_t width_max = (range->stop - range->start) + 1; - - while (string[range->start] == placeholder || (status = f_utf_is_whitespace(string + range->start, width_max, F_false)) == F_false) { - - if (F_status_is_error(status)) return status; - - if (string[range->start] == f_string_eol_s.string[0]) { - return F_none_eol; - } - - width = macro_f_utf_byte_width_is(string[range->start]); - - if (!width) { - width = 1; - } - else if (width == 1) { - - // Do not operate on UTF-8 fragments that are not the first byte of the character. - return F_status_set_error(F_complete_not_utf); - } - else { - if (range->start + width > range->stop) { - return F_status_set_error(F_complete_not_utf_stop); - } - } - - range->start += width; - - if (range->start > range->stop) { - return F_none_stop; - } - - width_max = (range->stop - range->start) + 1; - } // while - - if (F_status_is_error(status)) return status; - - return F_none; - } -#endif // _di_fl_string_seek_line_until_graph_non_ - -#ifndef _di_fl_string_seek_to_utf_character_ - f_status_t fl_string_seek_to_utf_character(const f_string_t string, const f_utf_char_t seek_to, f_string_range_t * const range) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (range->start > range->stop) { - return F_data_not_stop; - } - - const unsigned short seek_width = macro_f_utf_char_t_width(seek_to); - - f_status_t status = F_none; - - unsigned short width = 0; - f_array_length_t width_max = 0; - - for (; range->start <= range->stop; range->start += width) { - - width_max = (range->stop - range->start) + 1; - - width = macro_f_utf_byte_width_is(string[range->start]); - - if (!width) { - width = 1; - - if (seek_width == width) { - if (string[range->start] == seek_to) { - return F_none; - } - } - } - // Do not operate on UTF-8 fragments that are not the first byte of the character. - else if (width == 1) { - return F_status_set_error(F_complete_not_utf); - } - else { - if (range->start + width > range->stop) { - return F_status_set_error(F_complete_not_utf_stop); - } - - if (width == seek_width) { - f_utf_char_t character = 0; - - status = f_utf_char_to_character(string + range->start, width_max, &character); - if (F_status_is_error(status)) return status; - - if (character == seek_to) { - return F_none; - } - } - } - } // for - - return F_none_stop; - } -#endif // _di_fl_string_seek_to_utf_character_ - -#ifdef __cplusplus -} // extern "C" -#endif diff --git a/level_1/fl_string/c/string.h b/level_1/fl_string/c/string.h deleted file mode 100644 index 79732cf..0000000 --- a/level_1/fl_string/c/string.h +++ /dev/null @@ -1,1237 +0,0 @@ -/** - * FLL - Level 1 - * - * Project: String - * API Version: 0.7 - * Licenses: lgpl-2.1-or-later - * - * Provides basic string manipulation and processing capabilities. - * - * UTF-8 is handled within these functions via normal string characters (f_string_t). - * Unlike f_utf_string_t, these f_string_t base functions do not force padding of ASCII or UTF-8 characters. - * With f_string_t, a 1-byte wide ASCII character is stored as 1 byte and a 4-byte wide UTF-8 character is stored as 4 bytes. - * - * This shortens the size of the string at the cost of complexity vs f_utf_string_t. - * - * Because of the variable width, it is generally unsafe to ignore invalid UTF-8 sequences. - * Invalid UTF-8 will be generally result in an error. - */ -#ifndef _FL_string_h -#define _FL_string_h - -// Libc includes. -#include -#include - -// FLL-0 includes. -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Compare two strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * Length of string1. - * @param length2 - * Length of string2. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_compare_ - extern f_status_t fl_string_compare(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2); -#endif // _di_fl_string_compare_ - -/** - * Compare two strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * Length of string1. - * @param length2 - * Length of string2. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_compare_except_ - extern f_status_t fl_string_compare_except(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_compare_except_ - -/** - * Compare two strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * Length of string1. - * @param length2 - * Length of string2. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_compare_except_trim_ - extern f_status_t fl_string_compare_except_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_compare_except_trim_ - -/** - * Compare two strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * Length of string1. - * @param length2 - * Length of string2. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_compare_trim_ - extern f_status_t fl_string_compare_trim(const f_string_t string1, const f_string_t string2, const f_array_length_t length1, const f_array_length_t length2); -#endif // _di_fl_string_compare_trim_ - -/** - * Compare two strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_compare_ - extern f_status_t fl_string_dynamic_compare(const f_string_static_t string1, const f_string_static_t string2); -#endif // _di_fl_string_dynamic_compare_ - -/** - * Compare two strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_compare_except_ - extern f_status_t fl_string_dynamic_compare_except(const f_string_static_t string1, const f_string_static_t string2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_compare_except_ - -/** - * Compare two strings, similar to strncmp(). - * - * This operates with the first string being a traditional string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * The length of string1. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_compare_except_string_ - extern f_status_t fl_string_dynamic_compare_except_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_compare_except_string_ - -/** - * Compare two strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_compare_except_trim_ - extern f_status_t fl_string_dynamic_compare_except_trim(const f_string_static_t string1, const f_string_static_t string2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_compare_except_trim_ - -/** - * Compare two strings, similar to strncmp(). - * - * This operates with the first string being a traditional string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * The length of string1. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_compare_except_trim_string_ - extern f_status_t fl_string_dynamic_compare_except_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_compare_except_trim_string_ - -/** - * Compare two strings, similar to strncmp(). - * - * This operates with the first string being a traditional string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * The length of string1. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_compare_string_ - extern f_status_t fl_string_dynamic_compare_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1); -#endif // _di_fl_string_dynamic_compare_string_ - -/** - * Compare two strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_compare_trim_ - extern f_status_t fl_string_dynamic_compare_trim(const f_string_static_t string1, const f_string_static_t string2); -#endif // _di_fl_string_dynamic_compare_trim_ - -/** - * Compare two strings, similar to strncmp(). - * - * This operates with the first string being a traditional string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * The length of string1. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_compare_trim_string_ - extern f_status_t fl_string_dynamic_compare_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1); -#endif // _di_fl_string_dynamic_compare_trim_string_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given ranges. - * - * This does not stop on NULL. - * NULL characters are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param range1 - * A range within the string1 to restrict the comparison to. - * @param range2 - * A range within the string2 to restrict the comparison to. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_partial_compare_ - extern f_status_t fl_string_dynamic_partial_compare(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2); -#endif // _di_fl_string_dynamic_partial_compare_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param range2 - * A range within the string2 to restrict the comparison to. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_partial_compare_dynamic_ - extern f_status_t fl_string_dynamic_partial_compare_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2); -#endif // _di_fl_string_dynamic_partial_compare_dynamic_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given ranges. - * - * This does not stop on NULL. - * NULL characters are ignored. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param range1 - * A range within the string1 to restrict the comparison to. - * @param range2 - * A range within the string2 to restrict the comparison to. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_partial_compare_except_ - extern f_status_t fl_string_dynamic_partial_compare_except(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_partial_compare_except_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param range2 - * A range within the string2 to restrict the comparison to. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_partial_compare_except_dynamic_ - extern f_status_t fl_string_dynamic_partial_compare_except_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_partial_compare_except_dynamic_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. - * - * This operates with the first string being a traditional string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * The length of string1. - * @param range2 - * A range within the string2 to restrict the comparison to. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_partial_compare_except_string_ - extern f_status_t fl_string_dynamic_partial_compare_except_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_partial_compare_except_string_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given ranges. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param range1 - * A range within the string1 to restrict the comparison to. - * @param range2 - * A range within the string2 to restrict the comparison to. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_partial_compare_except_trim_ - extern f_status_t fl_string_dynamic_partial_compare_except_trim(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_partial_compare_except_trim_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param range2 - * A range within the string2 to restrict the comparison to. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_partial_compare_except_trim_dynamic_ - extern f_status_t fl_string_dynamic_partial_compare_except_trim_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_partial_compare_except_trim_dynamic_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. - * - * This operates with the first string being a traditional string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * All 1-byte characters in except1 and except2 are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * The length of string1. - * @param range2 - * A range within the string2 to restrict the comparison to. - * @param except1 - * A set of locations within string1 to ignore. - * This assumes/requires that the locations be in linear order. - * @param except2 - * A set of locations within string2 to ignore. - * This assumes/requires that the locations be in linear order. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_partial_compare_except_trim_string_ - extern f_status_t fl_string_dynamic_partial_compare_except_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2, const f_array_lengths_t except1, const f_array_lengths_t except2); -#endif // _di_fl_string_dynamic_partial_compare_except_trim_string_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. - * - * This operates with the first string being a traditional string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * The length of string1. - * @param range2 - * A range within the string2 to restrict the comparison to. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_partial_compare_string_ - extern f_status_t fl_string_dynamic_partial_compare_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2); -#endif // _di_fl_string_dynamic_partial_compare_string_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param range2 - * A range within the string2 to restrict the comparison to. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_partial_compare_trim_dynamic_ - extern f_status_t fl_string_dynamic_partial_compare_trim_dynamic(const f_string_static_t string1, const f_string_static_t string2, const f_string_range_t range2); -#endif // _di_fl_string_dynamic_partial_compare_trim_dynamic_ - -/** - * Compare two strings, similar to strncmp(), but restricted to the given range for the second string. - * - * This operates with the first string being a traditional string. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * The length of string1. - * @param range2 - * A range within the string2 to restrict the comparison to. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_dynamic_partial_compare_trim_string_ - extern f_status_t fl_string_dynamic_partial_compare_trim_string(const f_string_t string1, const f_string_static_t string2, const f_array_length_t length1, const f_string_range_t range2); -#endif // _di_fl_string_dynamic_partial_compare_trim_string_ - -/** - * Allocate a new string from the provided range in the buffer. - * - * Ignores leading and trailing whitespace. - * Ignores leading and trailing NULL characters. - * As a result, resulting size may be smaller than requested range. - * - * @param source - * The buffer to rip from. - * @param range - * A range within the buffer representing the string to rip. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not_eos if source length is 0. - * F_data_not_stop if range.start > range.stop. - * - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * F_string_too_large (with error bit) if the combined string is too large. - */ -#ifndef _di_fl_string_dynamic_partial_rip_ - extern f_status_t fl_string_dynamic_partial_rip(const f_string_static_t source, const f_string_range_t range, f_string_dynamic_t * const destination); -#endif // _di_fl_string_dynamic_partial_rip_ - -/** - * Allocate a new string from the provided range in the buffer. - * - * Ignores leading and trailing whitespace. - * Ignores leading and trailing NULL characters. - * As a result, resulting size may be smaller than requested range. - * - * Skips over NULL characters from source when appending. - * - * @param source - * The string to rip from. - * @param range - * A range within the buffer representing the string to rip. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not_eos if source length is 0. - * F_data_not_stop if range.start > range.stop. - * - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_partial_rip_nulless_ - extern f_status_t fl_string_dynamic_partial_rip_nulless(const f_string_static_t source, const f_string_range_t range, f_string_dynamic_t * const destination); -#endif // _di_fl_string_dynamic_partial_rip_nulless_ - -/** - * Allocate a new string from the provided range in the buffer. - * - * Ignores leading and trailing whitespace. - * Ignores leading and trailing NULL characters. - * As a result, resulting size may be smaller than requested range. - * - * @param source - * The buffer to rip from. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not_eos if source length is 0. - * - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * F_string_too_large (with error bit) if the combined string is too large. - */ -#ifndef _di_fl_string_dynamic_rip_ - extern f_status_t fl_string_dynamic_rip(const f_string_static_t source, f_string_dynamic_t * const destination); -#endif // _di_fl_string_dynamic_rip_ - -/** - * Allocate a new string from the provided range in the buffer. - * - * Ignores leading and trailing whitespace. - * Ignores leading and trailing NULL characters. - * As a result, resulting size may be smaller than requested range. - * - * Skips over NULL characters from source when appending. - * - * @param source - * The string to rip from. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not_eos if source length is 0. - * - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_string_dynamic_rip_nulless_ - extern f_status_t fl_string_dynamic_rip_nulless(const f_string_static_t source, f_string_dynamic_t * const destination); -#endif // _di_fl_string_dynamic_rip_nulless_ - -/** - * Seek the buffer location forward until the character (up to 4-byte wide) or EOL is reached. - * - * @param buffer - * The string to traverse. - * @param seek_to_this - * A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_none_stop on success, but stopped at end of range. - * F_data_not on success, but there was no string data to seek. - * F_data_not_stop on success, but the range.start > range.stop. - * - * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. - * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_not (with error bit) if character is an invalid UTF-8 character. - * - * Errors (with error bit) from: f_utf_char_to_character(). - * - * @see f_utf_char_to_character() - */ -#ifndef _di_fl_string_dynamic_seek_line_to_utf_character_ - extern f_status_t fl_string_dynamic_seek_line_to_utf_character(const f_string_static_t buffer, const f_utf_char_t seek_to_this, f_string_range_t * const range); -#endif // _di_fl_string_dynamic_seek_line_to_utf_character_ - -/** - * Increment buffer location until a graph character (including UTF-8) or an EOL is matched. - * - * @param buffer - * The string to traverse. - * @param placeholder - * A single-width character representing a placeholder to ignore (may be NULL). - * @param range - * A range within the buffer representing the start and stop locations. - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_none_stop on success, but stopped at end of range. - * F_data_not on success, but there was no string data to seek. - * F_data_not_stop on success, but the range.start > range.stop. - * - * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. - * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * - * Errors (with error bit) from: f_utf_is_graph(). - * - * @see f_utf_is_graph() - */ -#ifndef _di_fl_string_dynamic_seek_line_until_graph_ - extern f_status_t fl_string_dynamic_seek_line_until_graph(const f_string_static_t buffer, const uint8_t placeholder, f_string_range_t * const range); -#endif // _di_fl_string_dynamic_seek_line_until_graph_ - -/** - * Increment buffer location until a non-graph character (including UTF-8) or an EOL is matched. - * - * @param buffer - * The string to traverse. - * @param placeholder - * A single-width character representing a placeholder to ignore (may be NULL). - * @param range - * A range within the buffer representing the start and stop locations. - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_none_stop on success, but stopped at end of range. - * F_data_not on success, but there was no string data to seek. - * F_data_not_stop on success, but the range.start > range.stop. - * - * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. - * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * - * Errors (with error bit) from: f_utf_is_graph(). - * - * @see f_utf_is_graph() - */ -#ifndef _di_fl_string_dynamic_seek_line_until_graph_non_ - extern f_status_t fl_string_dynamic_seek_line_until_graph_non(const f_string_static_t buffer, const uint8_t placeholder, f_string_range_t * const range); -#endif // _di_fl_string_dynamic_seek_line_until_graph_non_ - -/** - * Seek the buffer location forward until the UTF-8 character (up to 4-byte wide) is reached. - * - * @param buffer - * The string to traverse. - * @param seek_to_this - * A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * - * @return - * F_none on success. - * F_none_stop on success, but stopped at end of range. - * F_data_not on success, but there was no string data to seek. - * F_data_not_stop on success, but the range.start > range.stop. - * - * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. - * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_not (with error bit) if character is an invalid UTF-8 character. - * - * Errors (with error bit) from: f_utf_char_to_character(). - * - * @see f_utf_char_to_character() - */ -#ifndef _di_fl_string_dynamic_seek_to_utf_character_ - extern f_status_t fl_string_dynamic_seek_to_utf_character(const f_string_static_t buffer, const f_utf_char_t seek_to_this, f_string_range_t * const range); -#endif // _di_fl_string_dynamic_seek_to_utf_character_ - -/** - * Identify whether or not the given string represents a single valid FLL Identifier and possibly save the FLL Identifier. - * - * This will always change the FLL Identifier used and type codes, if a FLL Identifier is provided. - * - * Whitespace may be before and after the FLL Identifier and will be ignored. - * NULLs will be ignored. - * Anything else will result in treating the character as a possible FLL Identifier. - * - * A valid FLL Identifier must terminate on either whitespace, EOL, or the stop point (length). - * - * The id.name might not be NULL terminated. - * An id.name using all 64-bytes will not be NULL terminated. - * - * If a newline ("\n") is encountered, range->start will be set to 1 byte after the newline. - * - * @param buffer - * The string to process. - * @param range - * A range within the buffer representing the start and stop locations. - * The caller must ensure that the stop point does not exceed the buffer size. - * - * The range->start will be updated by this function. - * On error, the range->start may represent the last position looked at. - * On success, the range->start should be after the last valid position (for example for "fss-1234", the ast valid position would be the byte after the "4"). - * Be aware that if a UTF-8 character exists at the end of the string but extends beyond the range stop, the stop position may be after the UTF-8 byte and not 1 byte after the stop point. - * @param id - * (optional) The FLL Identifier found. - * Set to NULL to not use. - * - * @return - * F_data_not if length is 0. - * F_found if the buffer does represent a valid FLL Identifier. - * F_found_not if the buffer does not represent a valid FLL Identifier. - * - * F_complete_not_utf (with error bit) if a character is an incomplete UTF-8 fragment. - * F_maybe (with error bit) if a character could be a whitespace but width is not long enough. (This is only returned for an otherwise valid FLL Identifier.) - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_not (with error bit) if character is an invalid UTF-8 character. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * F_parameter (with error bit) from: f_utf_is_word(). - * - * @see isxdigit() - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - * @see f_utf_is_word() - */ -#ifndef _di_fl_string_dynamic_partial_fll_identify_ - extern f_status_t fl_string_dynamic_partial_fll_identify(const f_string_static_t buffer, f_string_range_t * const range, f_fll_id_t * const id); -#endif // _di_fl_string_dynamic_partial_fll_identify_ - -/** - * Allocate a new string from the provided range in the string. - * - * Ignores leading and trailing whitespace. - * Ignores leading and trailing NULL characters. - * As a result, resulting size may be smaller than requested length. - * - * @param source - * The string to rip from. - * @param length - * The length of source to append. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not_eos if source length is 0. - * - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_rip_ - extern f_status_t fl_string_rip(const f_string_t source, const f_array_length_t length, f_string_dynamic_t * const destination); -#endif // _di_fl_string_rip_ - -/** - * Allocate a new string from the provided range in the string. - * - * Ignores leading and trailing whitespace. - * Ignores leading and trailing NULL characters. - * As a result, resulting size may be smaller than requested length. - * - * Skips over NULL characters from source when ripping. - * - * @param source - * The string to rip from. - * @param length - * The length of source to append. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not_eos if source length is 0. - * - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_rip_nulless_ - extern f_status_t fl_string_rip_nulless(const f_string_t source, const f_array_length_t length, f_string_dynamic_t * const destination); -#endif // _di_fl_string_rip_nulless_ - -/** - * Seek the string location forward until the character (up to 4-byte wide) or EOL is reached. - * - * @param string - * The string to traverse. - * @param seek_to - * A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_data_not_stop if range.start > range.stop. - * - * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. - * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_not (with error bit) if character is an invalid UTF-8 character. - * - * Errors (with error bit) from: f_utf_char_to_character(). - * - * @see f_utf_char_to_character() - */ -#ifndef _di_fl_string_seek_line_to_utf_character_ - extern f_status_t fl_string_seek_line_to_utf_character(const f_string_t string, const f_utf_char_t seek_to, f_string_range_t * const range); -#endif // _di_fl_string_seek_line_to_utf_character_ - -/** - * Increment string location until a graph character (including UTF-8) or an EOL is matched. - * - * @param string - * The string to traverse. - * @param placeholder - * A single-width character representing a placeholder to ignore (may be NULL). - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_data_not_stop if range.start > range.stop. - * - * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. - * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * - * Errors (with error bit) from: f_utf_is_graph(). - * - * @see f_utf_is_graph() - */ -#ifndef _di_fl_string_seek_line_until_graph_ - extern f_status_t fl_string_seek_line_until_graph(const f_string_t string, const uint8_t placeholder, f_string_range_t * const range); -#endif // _di_fl_string_seek_line_until_graph_ - -/** - * Increment string location until a non-graph character (including UTF-8) or an EOL is matched. - * - * @param string - * The string to traverse. - * @param placeholder - * A single-width character representing a placeholder to ignore (may be NULL). - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_none_stop on success, but stopped stop location. - * F_data_not_stop if range.start > range.stop. - * - * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. - * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * - * F_parameter (with error bit) from: f_utf_is_combining(). - * F_parameter (with error bit) from: f_utf_is_whitespace(). - * - * @see f_utf_is_combining() - * @see f_utf_is_whitespace() - */ -#ifndef _di_fl_string_seek_line_until_graph_non_ - extern f_status_t fl_string_seek_line_until_graph_non(const f_string_t string, const uint8_t placeholder, f_string_range_t * const range); -#endif // _di_fl_string_seek_line_until_graph_non_ - -/** - * Seek the string location forward until the UTF-8 character (up to 4-byte wide) is reached. - * - * @param string - * The string to traverse. - * @param seek_to - * A 1-width, 2-width, 3-width, or 4-width character representing a character to seek to. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * - * @return - * F_none on success. - * F_none_stop on success, but stopped stop location. - * F_data_not_stop if range.start > range.stop. - * - * F_complete_not_utf (with error bit) if character is an incomplete UTF-8 fragment. - * F_complete_not_utf_stop (with error bit) if the stop location is reached before the complete UTF-8 character can be processed. - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_not (with error bit) if character is an invalid UTF-8 character. - * - * Errors (with error bit) from: f_utf_char_to_character(). - * - * @see f_utf_char_to_character() - */ -#ifndef _di_fl_string_seek_to_utf_character_ - extern f_status_t fl_string_seek_to_utf_character(const f_string_t string, const f_utf_char_t seek_to, f_string_range_t * const range); -#endif // _di_fl_string_seek_to_utf_character_ - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // _FL_string_h diff --git a/level_1/fl_utf/c/private-utf.c b/level_1/fl_utf/c/private-utf.c index fa15a5e..e69de29 100644 --- a/level_1/fl_utf/c/private-utf.c +++ b/level_1/fl_utf/c/private-utf.c @@ -1,241 +0,0 @@ -#include "utf.h" -#include "private-utf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if !defined(_di_fl_utf_string_compare_) || !defined(_di_fl_utf_string_dynamic_compare_) || !defined(_di_fl_utf_string_dynamic_partial_compare_) - f_status_t private_fl_utf_string_compare(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) { - - f_array_length_t i1 = offset1; - f_array_length_t i2 = offset2; - - for (; i1 < stop1 && i2 < stop2; ++i1, ++i2) { - - // Skip past NULL in string1. - while (i1 < stop1 && !string1[i1]) ++i1; - if (i1 == stop1) break; - - // Skip past NULL in string2. - while (i2 < stop2 && !string2[i2]) ++i2; - if (i2 == stop2) break; - - if (string1[i1] != string2[i2]) return F_equal_to_not; - } // for - - // Only return F_equal_to if all remaining characters are NULL. - for (; i1 < stop1; ++i1) { - if (string1[i1] != 0) return F_equal_to_not; - } // for - - for (; i2 < stop2; ++i2) { - if (string2[i2] != 0) return F_equal_to_not; - } // for - - return F_equal_to; - } -#endif // !defined(_di_fl_utf_string_compare_) || !defined(_di_fl_utf_string_dynamic_compare_) || !defined(_di_fl_utf_string_dynamic_partial_compare_) - -#if !defined(_di_fl_utf_string_compare_trim_) || !defined(_di_fl_utf_string_dynamic_compare_trim_) || !defined(_di_fl_utf_string_dynamic_partial_compare_trim_) - f_status_t private_fl_utf_string_compare_trim(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) { - - f_array_length_t i1 = offset1; - f_array_length_t i2 = offset2; - - f_status_t status = F_none; - - // Skip past leading whitespace in string1. - for (; i1 < stop1; ++i1) { - - // Skip past NULL in string1. - while (i1 < stop1 && !string1[i1]) ++i1; - if (i1 == stop1) break; - - status = f_utf_character_is_whitespace(string1[i1], F_false); - - if (F_status_is_error(status)) { - - // Ignore possibly invalid UTF-8 codes. - if (F_status_set_fine(status) != F_maybe) { - return status; - } - } - - if (status == F_false) break; - } // for - - // Skip past leading whitespace in string2. - for (; i2 < stop2; i2++) { - - // Skip past NULL in string2. - while (i2 < stop2 && !string2[i2]) ++i2; - if (i2 == stop2) break; - - status = f_utf_character_is_whitespace(string2[i2], F_false); - - if (F_status_is_error(status)) { - - // Ignore possibly invalid UTF-8 codes. - if (F_status_set_fine(status) != F_maybe) { - return status; - } - } - - if (status == F_false) break; - } // for - - f_array_length_t last1 = i1; - f_array_length_t last2 = i2; - - { - // The size1 and size2 are to represent to total number of characters after trim. - f_array_length_t size1 = 0; - f_array_length_t size2 = 0; - f_array_length_t j = 0; - - // Determine where the last non-whitespace is in string1. - for (j = i1; j < stop1; ++j) { - - // Skip past NULL in string1. - while (j < stop1 && !string1[j]) ++j; - if (j == stop1) break; - - status = f_utf_character_is_whitespace(string1[j], F_false); - - if (F_status_is_error(status)) { - // ignore possibly invalid UTF-8 codes. - if (F_status_set_fine(status) != F_maybe) { - return status; - } - } - - if (status == F_false) { - last1 = j; - ++size1; - } - } // for - - // Determine where the last non-whitespace is in string2. - for (j = i2; j < stop2; ++j) { - - // Skip past NULL in string2. - while (j < stop2 && !string2[j]) ++j; - if (j == stop2) break; - - status = f_utf_character_is_whitespace(string2[j], F_false); - - if (F_status_is_error(status)) { - - // Ignore possibly invalid UTF-8 codes. - if (F_status_set_fine(status) != F_maybe) { - return status; - } - } - - if (status == F_false) { - last2 = j; - ++size2; - } - } // for - - if (size1 != size2) { - return F_equal_to_not; - } - } - - for (; i1 < last1 && i2 < last2; ++i1, ++i2) { - - // Skip past NULL in string1. - while (i1 < last1 && !string1[i1]) ++i1; - if (i1 == last1) break; - - // Skip past NULL in string2. - while (i2 < last2 && !string2[i2]) ++i2; - if (i2 == last2) break; - - if (string1[i1] != string2[i2]) return F_equal_to_not; - } // for - - // Only return F_equal_to if all remaining characters are NULL. - for (; i1 < last1; ++i1) { - if (string1[i1] != 0) return F_equal_to_not; - } // for - - for (; i2 < last2; ++i2) { - if (string2[i2] != 0) return F_equal_to_not; - } // for - - return F_equal_to; - } -#endif // !defined(_di_fl_utf_string_compare_trim_) || !defined(_di_fl_utf_string_dynamic_compare_trim_) || !defined(_di_fl_utf_string_dynamic_partial_compare_trim_) - -#if !defined(_di_fl_utf_string_rip_) || !defined(_di_fl_utf_string_dynamic_rip_) || !defined(_di_fl_utf_string_rip_nulless_) || !defined(_di_fl_utf_string_dynamic_rip_nulless_) - f_status_t private_fl_utf_string_rip_find_range(const f_utf_string_t source, f_array_length_t *start, f_array_length_t *stop) { - - f_status_t status = F_none; - - // Skip past leading whitespace. - for (; *start <= *stop; ++(*start)) { - - // Skip past NULL. - while (*start < *stop && !source[*start]) ++(*start); - if (*start > *stop) break; - - status = f_utf_character_is_whitespace(source[*start], F_false); - - if (F_status_is_error(status)) { - if (F_status_set_fine(status) == F_maybe) { - return F_status_set_error(F_utf_not); - } - - return status; - } - - if (status == F_false) break; - } // for - - for (; *stop > *start; --(*stop)) { - - // Skip past NULL. - while (*stop > *start && !source[*stop]) --(*stop); - - if (!source[*stop]) continue; - if (*stop == *start) break; - - status = f_utf_character_is_whitespace(source[*stop], F_false); - - if (F_status_is_error(status)) { - if (F_status_set_fine(status) == F_maybe) { - return F_status_set_error(F_utf_not); - } - - return status; - } - - if (status == F_false) break; - } // for - - if (*stop == *start) { - status = f_utf_character_is_whitespace(source[*stop], F_false); - - if (F_status_is_error(status)) { - if (F_status_set_fine(status) == F_maybe) { - return F_status_set_error(F_utf_not); - } - - return status; - } - - if (status == F_true) { - return F_data_not; - } - } - - return F_none; - } -#endif // !defined(_di_fl_utf_string_rip_) || !defined(_di_fl_utf_string_dynamic_rip_) || !defined(_di_fl_utf_string_rip_nulless_) || !defined(_di_fl_utf_string_dynamic_rip_nulless_) - -#ifdef __cplusplus -} // extern "C" -#endif diff --git a/level_1/fl_utf/c/private-utf.h b/level_1/fl_utf/c/private-utf.h index db34307..e69de29 100644 --- a/level_1/fl_utf/c/private-utf.h +++ b/level_1/fl_utf/c/private-utf.h @@ -1,119 +0,0 @@ -/** - * FLL - Level 1 - * - * Project: Utf - * API Version: 0.7 - * Licenses: lgpl-2.1-or-later - * - * These are provided for internal reduction in redundant code. - * These should not be exposed/used outside of this project. - */ -#ifndef _PRIVATE_FL_utf_h -#define _PRIVATE_FL_utf_h - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Private implementation of fl_utfl_string_compare(). - * - * Intended to be shared to each of the different implementation variations. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param offset1 - * Offset of string1 to start at. - * @param offset2 - * Offset of string2 to start at. - * @param stop1 - * Exclusive stop position for string1. - * @param stop2 - * Exclusive stop position for string2. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * @see fl_utf_string_compare() - * @see fl_utf_string_dynamic_compare() - * @see fl_utf_string_dynamic_partial_compare() - */ -#if !defined(_di_fl_utf_string_compare_) || !defined(_di_fl_utf_string_dynamic_compare_) || !defined(_di_fl_utf_string_dynamic_partial_compare_) - extern f_status_t private_fl_utf_string_compare(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) F_attribute_visibility_internal_d; -#endif // !defined(_di_fl_utf_string_compare_) || !defined(_di_fl_utf_string_dynamic_compare_) || !defined(_di_fl_utf_string_dynamic_partial_compare_) - -/** - * Private implementation of fl_utf_string_compare_trim(). - * - * Intended to be shared to each of the different implementation variations. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param offset1 - * Offset of string1 to start at. - * @param offset2 - * Offset of string2 to start at. - * @param stop1 - * Exclusive stop position for string1. - * @param stop2 - * Exclusive stop position for string2. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * Errors (with error bit) from: f_utf_character_is_whitespace() - * - * @see f_utf_character_is_whitespace() - * @see fl_utf_string_compare_trim() - * @see fl_utf_string_dynamic_compare_trim() - * @see fl_utf_string_dynamic_partial_compare_trim() - */ -#if !defined(_di_fl_utf_string_compare_trim_) || !defined(_di_fl_utf_string_dynamic_compare_trim_) || !defined(_di_fl_utf_string_dynamic_partial_compare_trim_) - extern f_status_t private_fl_utf_string_compare_trim(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t offset1, const f_array_length_t offset2, const f_array_length_t stop1, const f_array_length_t stop2) F_attribute_visibility_internal_d; -#endif // !defined(_di_fl_utf_string_compare_trim_) || !defined(_di_fl_utf_string_dynamic_compare_trim_) || !defined(_di_fl_utf_string_dynamic_partial_compare_trim_) - -/** - * Private implementation of fl_utf_string_rip(), but only the part for finding the start/stop range. - * - * Intended to be shared to each of the different implementation variations. - * - * @param source - * The string to rip from. - * @param start - * Inclusive start point of string to rip. - * Will be updated to reflect the new start range. - * @param stop - * Inclusive stop point of string to rip. - * Will be updated to reflect the new stop range. - * - * @return - * F_none on success. - * F_data_not on success but only white space found. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * Errors (with error bit) from: f_utf_character_is_whitespace() - * - * @see f_utf_character_is_whitespace() - * @see fl_utf_string_dynamic_rip() - * @see fl_utf_string_rip() - */ -#if !defined(_di_fl_utf_string_rip_) || !defined(_di_fl_utf_string_dynamic_rip_) || !defined(_di_fl_utf_string_rip_nulless_) || !defined(_di_fl_utf_string_dynamic_rip_nulless_) - extern f_status_t private_fl_utf_string_rip_find_range(const f_utf_string_t source, f_array_length_t *start, f_array_length_t *stop) F_attribute_visibility_internal_d; -#endif // !defined(_di_fl_utf_string_rip_) || !defined(_di_fl_utf_string_dynamic_rip_) || !defined(_di_fl_utf_string_rip_nulless_) || !defined(_di_fl_utf_string_dynamic_rip_nulless_) - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // _PRIVATE_FL_utf_h diff --git a/level_1/fl_utf/c/utf.c b/level_1/fl_utf/c/utf.c index 2d9cf3f..e69de29 100644 --- a/level_1/fl_utf/c/utf.c +++ b/level_1/fl_utf/c/utf.c @@ -1,444 +0,0 @@ -#include "utf.h" -#include "private-utf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _di_fl_utf_string_compare_ - f_status_t fl_utf_string_compare(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t length1, const f_array_length_t length2) { - return private_fl_utf_string_compare(string1, string2, 0, 0, length1, length2); - } -#endif // _di_fl_utf_string_compare_ - -#ifndef _di_fl_utf_string_compare_trim_ - f_status_t fl_utf_string_compare_trim(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t length1, const f_array_length_t length2) { - return private_fl_utf_string_compare_trim(string1, string2, 0, 0, length1, length2); - } -#endif // _di_fl_utf_string_compare_trim_ - -#ifndef _di_fl_utf_string_dynamic_compare_ - f_status_t fl_utf_string_dynamic_compare(const f_utf_string_static_t string1, const f_utf_string_static_t string2) { - return private_fl_utf_string_compare(string1.string, string2.string, 0, 0, string1.used, string2.used); - } -#endif // _di_fl_utf_string_dynamic_compare_ - -#ifndef _di_fl_utf_string_dynamic_compare_trim_ - f_status_t fl_utf_string_dynamic_compare_trim(const f_utf_string_static_t string1, const f_utf_string_static_t string2) { - return private_fl_utf_string_compare_trim(string1.string, string2.string, 0, 0, string1.used, string2.used); - } -#endif // _di_fl_utf_string_dynamic_compare_trim_ - -#ifndef _di_fl_utf_string_dynamic_partial_compare_ - f_status_t fl_utf_string_dynamic_partial_compare(const f_utf_string_static_t string1, const f_utf_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2) { - #ifndef _di_level_1_parameter_checking_ - if (string1.used <= range1.stop) return F_status_set_error(F_parameter); - if (string2.used <= range2.stop) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - return private_fl_utf_string_compare(string1.string, string2.string, range1.start, range2.start, range1.stop + 1, range2.stop + 1); - } -#endif // _di_fl_utf_string_dynamic_partial_compare_ - -#ifndef _di_fl_utf_string_dynamic_partial_compare_trim_ - f_status_t fl_utf_string_dynamic_partial_compare_trim(const f_utf_string_static_t string1, const f_utf_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2) { - #ifndef _di_level_1_parameter_checking_ - if (string1.used <= range1.stop) return F_status_set_error(F_parameter); - if (string2.used <= range2.stop) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - return private_fl_utf_string_compare_trim(string1.string, string2.string, range1.start, range2.start, range1.stop + 1, range2.stop + 1); - } -#endif // _di_fl_utf_string_dynamic_partial_compare_trim_ - -#ifndef _di_fl_utf_string_dynamic_rip_ - f_status_t fl_utf_string_dynamic_rip(const f_utf_string_static_t source, const f_string_range_t range, f_utf_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (source.used <= range.start) return F_status_set_error(F_parameter); - if (source.used <= range.stop) return F_status_set_error(F_parameter); - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!source.used) return F_data_not; - if (range.start > range.stop) return F_data_not_stop; - - return f_utf_string_append(source.string + range.start, (range.stop - range.start) + 1, destination); - } -#endif // _di_fl_utf_string_dynamic_rip_ - -#ifndef _di_fl_utf_string_dynamic_rip_nulless_ - f_status_t fl_utf_string_dynamic_rip_nulless(const f_utf_string_static_t source, const f_string_range_t range, f_utf_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (source.used <= range.start) return F_status_set_error(F_parameter); - if (source.used <= range.stop) return F_status_set_error(F_parameter); - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!source.used) return F_data_not; - if (range.start > range.stop) return F_data_not_stop; - - return f_utf_string_append_nulless(source.string + range.start, (range.stop - range.start) + 1, destination); - } -#endif // _di_fl_utf_string_dynamic_rip_nulless_ - -#ifndef _di_fl_utf_string_dynamic_seek_line_to_char_ - f_status_t fl_utf_string_dynamic_seek_line_to_char(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_char_t seek_to_this) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - if (buffer.used <= range->start) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!buffer.used) return F_data_not; - if (range->start > range->stop) return F_data_not_stop; - - f_utf_char_t seek_to_character = seek_to_this << 24; - - if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - while (buffer.string[range->start] != seek_to_character) { - - if (buffer.string[range->start++] == f_utf_char_eol_s) { - return F_none_eol; - } - - if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - if (range->start >= buffer.used) { - return F_none_eos; - } - - if (range->start > range->stop) { - return F_none_stop; - } - } // while - - return F_none; - } -#endif // _di_fl_utf_string_dynamic_seek_line_to_char_ - -#ifndef _di_fl_utf_string_dynamic_seek_line_until_graph_ - f_status_t fl_utf_string_dynamic_seek_line_until_graph(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_utf_char_t placeholder) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - if (buffer.used <= range->start) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!buffer.used) return F_data_not; - if (range->start > range->stop) return F_data_not_stop; - - f_status_t status = F_none; - - if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - while (buffer.string[range->start] == placeholder || (status = f_utf_character_is_graph(buffer.string[range->start])) == F_false) { - - if (F_status_is_error(status)) { - return status; - } - - if (buffer.string[range->start++] == f_utf_char_eol_s) { - return F_none_eol; - } - - if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - if (range->start >= buffer.used) { - return F_none_eos; - } - - if (range->start > range->stop) { - return F_none_stop; - } - } // while - - if (F_status_is_error(status)) { - return status; - } - - return F_none; - } -#endif // _di_fl_utf_string_dynamic_seek_line_until_graph_ - -#ifndef _di_fl_utf_string_dynamic_seek_line_until_graph_non_ - f_status_t fl_utf_string_dynamic_seek_line_until_graph_non(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_utf_char_t placeholder) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - if (buffer.used <= range->start) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!buffer.used) return F_data_not; - if (range->start > range->stop) return F_data_not_stop; - - f_status_t status = F_none; - - if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - while (buffer.string[range->start] == placeholder || (status = f_utf_character_is_whitespace(buffer.string[range->start], F_false)) == F_false) { - - if (F_status_is_error(status)) return status; - if (buffer.string[range->start] == f_utf_char_eol_s) return F_none_eol; - - ++range->start; - - if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - if (range->start >= buffer.used) return F_none_eos; - if (range->start > range->stop) return F_none_stop; - } // while - - if (F_status_is_error(status)) return status; - - return F_none; - } -#endif // _di_fl_utf_string_dynamic_seek_line_until_graph_non_ - -#ifndef _di_fl_utf_string_dynamic_seek_to_char_ - f_status_t fl_utf_string_dynamic_seek_to_char(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_char_t seek_to_this) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - if (buffer.used <= range->start) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!buffer.used) return F_data_not; - if (range->start > range->stop) return F_data_not_stop; - - f_utf_char_t seek_to_character = seek_to_this << 24; - - if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - while (buffer.string[range->start] != seek_to_character) { - - ++range->start; - - if (macro_f_utf_char_t_width_is(buffer.string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - if (range->start >= buffer.used) { - return F_none_eos; - } - - if (range->start > range->stop) { - return F_none_stop; - } - } // while - - return F_none; - } -#endif // _di_fl_utf_string_dynamic_seek_to_char_ - -#ifndef _di_fl_utf_string_rip_ - f_status_t fl_utf_string_rip(const f_utf_string_t source, const f_array_length_t length, f_utf_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!length) return F_data_not; - - f_array_length_t begin = 0; - f_array_length_t end = length - 1; - - f_status_t status = private_fl_utf_string_rip_find_range(source, &begin, &end); - - if (F_status_is_error(status)) { - return status; - } - - if (status == F_data_not) { - return status; - } - - return f_utf_string_append(source + begin, (end - begin) + 1, destination); - } -#endif // _di_fl_utf_string_rip_ - -#ifndef _di_fl_utf_string_rip_nulless_ - f_status_t fl_utf_string_rip_nulless(const f_utf_string_t source, const f_array_length_t length, f_utf_string_dynamic_t * const destination) { - #ifndef _di_level_1_parameter_checking_ - if (!destination) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (!length) return F_data_not; - - f_array_length_t begin = 0; - f_array_length_t end = length - 1; - - f_status_t status = private_fl_utf_string_rip_find_range(source, &begin, &end); - - if (F_status_is_error(status)) { - return status; - } - - if (status == F_data_not) { - return status; - } - - return f_utf_string_append_nulless(source + begin, (end - begin) + 1, destination); - } -#endif // _di_fl_utf_string_rip_nulless_ - -#ifndef _di_fl_utf_string_seek_line_to_char_ - f_status_t fl_utf_string_seek_line_to_char(const f_utf_string_t string, f_string_range_t * const range, const f_char_t seek_to_this) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (range->start > range->stop) { - return F_data_not_stop; - } - - f_utf_char_t seek_to_character = seek_to_this << 24; - - for (; range->start <= range->stop; ++range->start) { - - if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - if (string[range->start] == f_utf_char_eol_s) { - return F_none_eol; - } - - if (string[range->start] == seek_to_character) { - return F_none; - } - } // for - - return F_none_stop; - } -#endif // _di_fl_utf_string_seek_line_to_char_ - -#ifndef _di_fl_utf_string_seek_line_until_graph_ - f_status_t fl_utf_string_seek_line_until_graph(const f_utf_string_t string, f_string_range_t * const range, const f_utf_char_t placeholder) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (range->start > range->stop) { - return F_data_not_stop; - } - - f_status_t status = F_none; - - if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - while (string[range->start] == placeholder || (status = f_utf_character_is_graph(string[range->start])) == F_false) { - - if (F_status_is_error(status)) { - return status; - } - - if (string[range->start++] == f_utf_char_eol_s) { - return F_none_eol; - } - - if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - if (range->start > range->stop) { - return F_none_stop; - } - } // while - - if (F_status_is_error(status)) { - return status; - } - - return F_none; - } -#endif // _di_fl_utf_string_seek_line_until_graph_ - -#ifndef _di_fl_utf_string_seek_line_until_graph_non_ - f_status_t fl_utf_string_seek_line_until_graph_non(const f_utf_string_t string, f_string_range_t * const range, const f_utf_char_t placeholder) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (range->start > range->stop) { - return F_data_not_stop; - } - - f_status_t status = F_none; - - if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - while (string[range->start] == placeholder || (status = f_utf_character_is_graph(string[range->start])) == F_true) { - - if (F_status_is_error(status)) { - return status; - } - - if (string[range->start++] == f_utf_char_eol_s) { - return F_none_eol; - } - - if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - if (range->start > range->stop) { - return F_none_stop; - } - } // while - - if (F_status_is_error(status)) { - return status; - } - - return F_none; - } -#endif // _di_fl_utf_string_seek_line_until_graph_non_ - -#ifndef _di_fl_utf_string_seek_to_char_ - f_status_t fl_utf_string_seek_to_char(const f_utf_string_t string, f_string_range_t * const range, const f_char_t seek_to_this) { - #ifndef _di_level_1_parameter_checking_ - if (!range) return F_status_set_error(F_parameter); - #endif // _di_level_1_parameter_checking_ - - if (range->start > range->stop) { - return F_data_not_stop; - } - - const f_utf_char_t seek_to_character = seek_to_this << 24; - - if (macro_f_utf_char_t_width_is(string[0]) == 1) { - return F_status_set_error(F_utf_fragment); - } - - while (range->start <= range->stop) { - - if (string[range->start++] == seek_to_character) { - return F_none; - } - - if (macro_f_utf_char_t_width_is(string[range->start]) == 1) { - return F_status_set_error(F_utf_fragment); - } - } // while - - return F_none_stop; - } -#endif // _di_fl_utf_string_seek_to_utf_character_ - -#ifdef __cplusplus -} // extern "C" -#endif diff --git a/level_1/fl_utf/c/utf.h b/level_1/fl_utf/c/utf.h index 816b03f..e69de29 100644 --- a/level_1/fl_utf/c/utf.h +++ b/level_1/fl_utf/c/utf.h @@ -1,526 +0,0 @@ -/** - * FLL - Level 1 - * - * Project: Utf - * API Version: 0.7 - * Licenses: lgpl-2.1-or-later - * - * Provides UTF-8 character manipulation and processing capabilities. - * - * UTF-8 is handled within these functions via padded string characters (f_utf_string_t). - * Unlike f_string_t, these f_utf_string_t base functions force padding of ASCII or UTF-8 characters. - * With f_utf_string_t, a 1-byte wide ASCII character is stored as 4 bytes and a 4-byte wide UTF-8 character is stored as 4 bytes. - * - * This simplifies traversing the strings at the cost of size vs f_string_t. - * - * Because of the set width, it is generally safe to ignore invalid UTF-8 sequences. - * Invalid UTF-8 will be generally ignored here, where reasonably possible. - */ -#ifndef _FL_string_h -#define _FL_string_h - -// Libc includes. -#include -#include - -// FLL-0 includes. -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Compare two UTF-8 strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * Length of string1. - * @param length2 - * Length of string2. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_utf_string_compare_ - extern f_status_t fl_utf_string_compare(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t length1, const f_array_length_t length2); -#endif // _di_fl_utf_string_compare_ - -/** - * Compare two UTF-8 strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param length1 - * Length of string1. - * @param length2 - * Length of string2. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * Errors (with error bit) from: f_utf_character_is_whitespace(). - * - * @see f_utf_character_is_whitespace() - */ -#ifndef _di_fl_utf_string_compare_trim_ - extern f_status_t fl_utf_string_compare_trim(const f_utf_string_t string1, const f_utf_string_t string2, const f_array_length_t length1, const f_array_length_t length2); -#endif // _di_fl_utf_string_compare_trim_ - -/** - * Compare two UTF-8 strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - */ -#ifndef _di_fl_utf_string_dynamic_compare_ - extern f_status_t fl_utf_string_dynamic_compare(const f_utf_string_static_t string1, const f_utf_string_static_t string2); -#endif // _di_fl_utf_string_dynamic_compare_ - -/** - * Compare two UTF-8 strings, similar to strncmp(). - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - * - * Errors (with error bit) from: f_utf_character_is_whitespace(). - * - * @see f_utf_character_is_whitespace() - */ -#ifndef _di_fl_utf_string_dynamic_compare_trim_ - extern f_status_t fl_utf_string_dynamic_compare_trim(const f_utf_string_static_t string1, const f_utf_string_static_t string2); -#endif // _di_fl_utf_string_dynamic_compare_trim_ - -/** - * Compare two UTF-8 strings, similar to strncmp(), but restricted to the given ranges. - * - * This does not stop on NULL. - * NULL characters are ignored. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param range1 - * A range within the string1 to restrict the comparison to. - * @param range2 - * A range within the string2 to restrict the comparison to. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - */ -#ifndef _di_fl_utf_string_dynamic_partial_compare_ - extern f_status_t fl_utf_string_dynamic_partial_compare(const f_utf_string_static_t string1, const f_utf_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2); -#endif // _di_fl_utf_string_dynamic_partial_compare_ - -/** - * Compare two UTF-8 strings, similar to strncmp(), but restricted to the given ranges. - * - * This does not stop on NULL. - * NULL characters are ignored. - * Ignores leading and trailing whitespace. - * - * @param string1 - * String to compare. - * @param string2 - * String to compare. - * @param range1 - * A range within the string1 to restrict the comparison to. - * @param range2 - * A range within the string2 to restrict the comparison to. - * - * @return - * F_equal_to when both strings equal. - * F_equal_to_not when both strings do not equal. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * Errors (with error bit) from: f_utf_character_is_whitespace(). - * - * @see f_utf_character_is_whitespace() - */ -#ifndef _di_fl_utf_string_dynamic_partial_compare_trim_ - extern f_status_t fl_utf_string_dynamic_partial_compare_trim(const f_utf_string_static_t string1, const f_utf_string_static_t string2, const f_string_range_t range1, const f_string_range_t range2); -#endif // _di_fl_utf_string_dynamic_partial_compare_trim_ - -/** - * Allocate a new UTF-8 string from the provided range in the buffer. - * - * Ignores leading and trailing whitespace. - * As a result, resulting size may be smaller than requested range. - * - * @param source - * The buffer to rip from. - * @param range - * A range within the buffer representing the string to rip. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not if source length is 0. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * Errors (with error bit) from: f_utf_string_append(). - * - * @see f_utf_string_append() - */ -#ifndef _di_fl_utf_string_dynamic_rip_ - extern f_status_t fl_utf_string_dynamic_rip(const f_utf_string_static_t source, const f_string_range_t range, f_utf_string_dynamic_t * const destination); -#endif // _di_fl_utf_string_dynamic_rip_ - -/** - * Allocate a new UTF-8 string from the provided range in the buffer. - * - * Ignores leading and trailing whitespace. - * As a result, resulting size may be smaller than requested range. - * - * Skips over NULL characters from source when appending. - * - * @param source - * The string to rip from. - * @param range - * A range within the buffer representing the string to rip. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not if source length is 0. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid. - * - * Errors (with error bit) from: f_utf_string_append_nulless(). - * - * @see f_utf_string_append_nulless() - */ -#ifndef _di_fl_utf_string_dynamic_rip_nulless_ - extern f_status_t fl_utf_string_dynamic_rip_nulless(const f_utf_string_static_t source, const f_string_range_t range, f_utf_string_dynamic_t * const destination); -#endif // _di_fl_utf_string_dynamic_rip_nulless_ - -/** - * Seek the buffer location forward until the (1-byte wide) character or EOL is reached. - * - * @param buffer - * The buffer to traverse. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * @param seek_to_this - * A single-width character. - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_none_eos on success, but stopped at end of buffer. - * F_data_not if buffer length is 0. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - */ -#ifndef _di_fl_utf_string_dynamic_seek_line_to_char_ - extern f_status_t fl_utf_string_dynamic_seek_line_to_char(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_char_t seek_to_this); -#endif // _di_fl_utf_string_dynamic_seek_line_to_char_ - -/** - * Increment buffer location until a graph character or an EOL is matched. - * - * @param buffer - * The buffer to traverse. - * @param range - * A range within the buffer representing the start and stop locations. - * @param placeholder - * A UTF-8 character representing a placeholder to ignore (may be NULL). - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_none_eos on success, but stopped at end of buffer. - * F_data_not if buffer length is 0. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - * - * Errors (with error bit) from: f_utf_character_is_graph(). - * - * @see f_utf_character_is_graph() - */ -#ifndef _di_fl_utf_string_dynamic_seek_line_until_graph_ - extern f_status_t fl_utf_string_dynamic_seek_line_until_graph(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_utf_char_t placeholder); -#endif // _di_fl_utf_string_dynamic_seek_line_until_graph_ - -/** - * Increment buffer location until a non-graph character or an EOL is matched. - * - * @param buffer - * The buffer to traverse. - * @param range - * A range within the buffer representing the start and stop locations. - * @param placeholder - * A single-width character representing a placeholder to ignore (may be NULL). - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_none_eos on success, but stopped at end of buffer. - * F_none_stop on success, but stopped stop location. - * F_data_not if buffer length is 0. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - * - * Errors (with error bit) from: f_utf_character_is_graph(). - * - * @see f_utf_character_is_graph() - */ -#ifndef _di_fl_utf_string_dynamic_seek_line_until_graph_non_ - extern f_status_t fl_utf_string_dynamic_seek_line_until_graph_non(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_utf_char_t placeholder); -#endif // _di_fl_utf_string_dynamic_seek_line_until_graph_non_ - -/** - * Seek the buffer location forward until the UTF-8 character (1-byte wide) is reached. - * - * @param buffer - * The buffer to traverse. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * @param seek_to_this - * A single-width non-UTF-8 character. - * - * @return - * F_none on success. - * F_none_eos on success, but stopped at end of buffer. - * F_none_stop on success, but stopped stop location. - * F_data_not if buffer length is 0. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - */ -#ifndef _di_fl_utf_string_dynamic_seek_to_char_ - extern f_status_t fl_utf_string_dynamic_seek_to_char(const f_utf_string_static_t buffer, f_string_range_t * const range, const f_char_t seek_to_this); -#endif // _di_fl_utf_string_dynamic_seek_to_char_ - -/** - * Allocate a new UTF-8 string from the provided range in the string. - * - * Ignores leading and trailing whitespace. - * As a result, resulting size may be smaller than requested length. - * - * @param source - * The string to rip from. - * @param length - * The length of source to append. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not if source length is 0. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - * - * Errors (with error bit) from: f_utf_character_is_whitespace(). - * - * @see f_utf_character_is_whitespace() - */ -#ifndef _di_fl_utf_string_rip_ - extern f_status_t fl_utf_string_rip(const f_utf_string_t source, const f_array_length_t length, f_utf_string_dynamic_t * const destination); -#endif // _di_fl_utf_string_rip_ - -/** - * Allocate a new UTF-8 string from the provided range in the string. - * - * Ignores leading and trailing whitespace. - * As a result, resulting size may be smaller than requested length. - * - * Skips over NULL characters from source when ripping. - * - * @param source - * The string to rip from. - * @param length - * The length of source to append. - * @param destination - * The new string, which will be allocated or reallocated as necessary. - * - * @return - * F_none on success. - * F_data_not if source length is 0. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - * - * Errors (with error bit) from: f_utf_character_is_whitespace(). - * - * @see f_utf_character_is_whitespace() - */ -#ifndef _di_fl_utf_string_rip_nulless_ - extern f_status_t fl_utf_string_rip_nulless(const f_utf_string_t source, const f_array_length_t length, f_utf_string_dynamic_t * const destination); -#endif // _di_fl_utf_string_rip_nulless_ - -/** - * Seek the string location forward until the 1-byte wide character or EOL is reached. - * - * @param string - * The string to traverse. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * @param seek_to_this - * A single-width character. - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_none_eos on success, but stopped at end of buffer. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - */ -#ifndef _di_fl_utf_string_seek_line_to_char_ - extern f_status_t fl_utf_string_seek_line_to_char(const f_utf_string_t string, f_string_range_t * const range, const f_char_t seek_to_this); -#endif // _di_fl_utf_string_seek_line_to_char_ - -/** - * Increment string location until a UTF-8 graph character or an EOL is matched. - * - * @param string - * The string to traverse. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * @param placeholder - * A UTF-8 character representing a placeholder to ignore (may be NULL). - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - * - * Errors (with error bit) from: f_utf_character_is_graph(). - * - * @see f_utf_character_is_graph() - */ -#ifndef _di_fl_utf_string_seek_line_until_graph_ - extern f_status_t fl_utf_string_seek_line_until_graph(const f_utf_string_t string, f_string_range_t * const range, const f_utf_char_t placeholder); -#endif // _di_fl_utf_string_seek_line_until_graph_ - -/** - * Increment string location until a non-graph UTF-8 character or an EOL is matched. - * - * @param string - * The string to traverse. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * @param placeholder - * A UTF-8 character representing a placeholder to ignore (may be NULL). - * - * @return - * F_none on success. - * F_none_eol on success, but stopped at EOL. - * F_none_stop on success, but stopped stop location. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - * - * Errors (with error bit) from: f_utf_character_is_graph(). - * - * @see f_utf_character_is_graph() - */ -#ifndef _di_fl_utf_string_seek_line_until_graph_non_ - extern f_status_t fl_utf_string_seek_line_until_graph_non(const f_utf_string_t string, f_string_range_t * const range, const f_utf_char_t placeholder); -#endif // _di_fl_utf_string_seek_line_until_graph_non_ - -/** - * Seek the string location forward until the UTF-8 character (up to 4-byte wide) is reached. - * - * @param string - * The string to traverse. - * @param range - * A range within the buffer representing the start and stop locations. - * The start location will be incremented by seek. - * @param seek_to_this - * A single-width non-UTF-8 character. - * - * @return - * F_none on success. - * F_none_eos on success, but stopped at end of buffer. - * F_none_stop on success, but stopped stop location. - * F_data_not_stop if range.start > range.stop. - * - * F_parameter (with error bit) if a parameter is invalid. - * F_utf_fragment (with error bit) if character is a UTF-8 fragment. - */ -#ifndef _di_fl_utf_string_seek_to_character_ - extern f_status_t fl_utf_string_seek_to_char(const f_utf_string_t string, f_string_range_t * const range, const f_char_t seek_to_this); -#endif // _di_fl_utf_string__seek_to_character_ - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // _FL_string_h diff --git a/level_2/fll_execute/c/execute.h b/level_2/fll_execute/c/execute.h index 244dcbc..2af273b 100644 --- a/level_2/fll_execute/c/execute.h +++ b/level_2/fll_execute/c/execute.h @@ -51,7 +51,6 @@ #include #include #include -#include #ifdef __cplusplus extern "C" { diff --git a/level_2/fll_fss/c/fss.c b/level_2/fll_fss/c/fss.c index 3d87274..14ea1c5 100644 --- a/level_2/fll_fss/c/fss.c +++ b/level_2/fll_fss/c/fss.c @@ -115,7 +115,7 @@ extern "C" { } if (F_status_is_error_not(status)) { - status = fl_string_dynamic_partial_fll_identify(buffer, range, ids ? &ids->array[ids->used] : &id); + status = f_parse_dynamic_partial_fll_identify(buffer, range, ids ? &ids->array[ids->used] : &id); } if (F_status_is_error(status) || (status == F_found_not && !found_fss)) { @@ -191,7 +191,7 @@ extern "C" { if (matched[j]) continue; - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; @@ -240,7 +240,7 @@ extern "C" { for (j = 0; j < size; ++j) { - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; @@ -312,7 +312,7 @@ extern "C" { for (j = 0; j < size; ++j) { - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; @@ -329,7 +329,7 @@ extern "C" { for (k = 0; k < values[j]->used; ++k) { - status = fl_string_dynamic_partial_compare_trim_string(values[j]->array[k].name.string, buffer, values[j]->array[k].name.used, contents.array[i].array[0]); + status = f_compare_dynamic_partial_trim_string(values[j]->array[k].name.string, buffer, values[j]->array[k].name.used, contents.array[i].array[0]); if (F_status_is_error(status)) { f_string_dynamic_resize(0, &name); @@ -452,7 +452,7 @@ extern "C" { for (j = 0; j < size; ++j) { - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; @@ -526,7 +526,7 @@ extern "C" { for (j = 0; j < size; ++j) { - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; @@ -598,7 +598,7 @@ extern "C" { for (j = 0; j < size; ++j) { - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; @@ -619,7 +619,7 @@ extern "C" { for (k = 0; k < values[j]->used; ++k) { - status = fl_string_dynamic_partial_compare_trim_string(values[j]->array[k].name.string, buffer, values[j]->array[k].name.used, contents.array[i].array[0]); + status = f_compare_dynamic_partial_trim_string(values[j]->array[k].name.string, buffer, values[j]->array[k].name.used, contents.array[i].array[0]); if (F_status_is_error(status)) { f_string_dynamic_resize(0, &name); @@ -715,7 +715,7 @@ extern "C" { for (j = 0; j < size; ++j) { - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; @@ -736,7 +736,7 @@ extern "C" { for (k = 0; k < values[j]->used; ++k) { - status = fl_string_dynamic_partial_compare_trim_string(values[j]->array[k].name.string, buffer, values[j]->array[k].name.used, contents.array[i].array[0]); + status = f_compare_dynamic_partial_trim_string(values[j]->array[k].name.string, buffer, values[j]->array[k].name.used, contents.array[i].array[0]); if (F_status_is_error(status)) { f_string_dynamic_resize(0, &name); @@ -828,7 +828,7 @@ extern "C" { if (matched[j]) continue; - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; @@ -877,7 +877,7 @@ extern "C" { for (j = 0; j < size; ++j) { - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; @@ -935,7 +935,7 @@ extern "C" { for (j = 0; j < size; ++j) { - status = fl_string_dynamic_partial_compare_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); + status = f_compare_dynamic_partial_trim_string(names[j].string, buffer, names[j].used, objects.array[i]); if (F_status_is_error(status)) return status; if (status == F_equal_to_not) continue; diff --git a/level_2/fll_fss/c/fss.h b/level_2/fll_fss/c/fss.h index dcf9071..7adebc7 100644 --- a/level_2/fll_fss/c/fss.h +++ b/level_2/fll_fss/c/fss.h @@ -16,12 +16,13 @@ #include #include #include +#include #include +#include // FLL-1 includes. #include #include -#include #ifdef __cplusplus extern "C" { @@ -37,7 +38,7 @@ extern "C" { * This expects there to be at least a single "fss-XXXX" FSS Identifier. * If one is not found but the line contains valid FLL Identifiers, then this returns F_maybe. * - * See the fl_string_dynamic_partial_fll_identify() function for details on individual FLL/FSS Identifier processing. + * See the f_parse_dynamic_partial_fll_identify() function for details on individual FLL/FSS Identifier processing. * * @param buffer * The string to process. @@ -65,11 +66,11 @@ extern "C" { * * Errors (with error bit) from: f_fll_ids_increase(). * Errors (with error bit) from: f_utf_is_whitespace(). - * Errors (with error bit) from: fl_string_dynamic_partial_fll_identify(). + * Errors (with error bit) from: f_parse_dynamic_partial_fll_identify(). * * @see f_fll_ids_increase() * @see f_utf_is_whitespace() - * @see fl_string_dynamic_partial_fll_identify() + * @see f_parse_dynamic_partial_fll_identify() */ #ifndef _di_fll_fss_identify_ extern f_status_t fll_fss_identify(const f_string_static_t buffer, f_string_range_t * const range, f_fll_ids_t * const ids); @@ -112,10 +113,10 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). * * @see f_string_dynamic_partial_append_nulless() - * @see fl_string_compare_trim() + * @see f_compare_trim() */ #ifndef _di_fll_fss_snatch_ extern f_status_t fll_fss_snatch(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, f_string_dynamic_t * const values[], bool matches[], f_array_length_t * const indexs[]); @@ -160,10 +161,10 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). * * @see f_string_dynamic_partial_append_nulless() - * @see fl_string_compare_trim() + * @see f_compare_trim() */ #ifndef _di_fll_fss_snatch_apart_ extern f_status_t fll_fss_snatch_apart(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, f_string_dynamics_t * const values[], bool matches[], f_array_lengths_t * const indexs[]); @@ -210,10 +211,10 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). * * @see f_string_dynamic_partial_append_nulless() - * @see fl_string_compare_trim() + * @see f_compare_trim() */ #ifndef _di_fll_fss_snatch_map_ extern f_status_t fll_fss_snatch_map(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, f_string_maps_t * const values[], bool matches[], f_array_lengths_t * const indexs[]); @@ -262,10 +263,10 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). * * @see f_string_dynamic_partial_append_nulless() - * @see fl_string_compare_trim() + * @see f_compare_trim() */ #ifndef _di_fll_fss_snatch_map_apart_ extern f_status_t fll_fss_snatch_map_apart(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, f_string_map_multis_t * const values[], bool matches[], f_array_lengths_t * const indexs[]); @@ -315,7 +316,7 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_mash_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). */ #ifndef _di_fll_fss_snatch_map_mash_ extern f_status_t fll_fss_snatch_map_mash(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, const f_string_static_t glue, f_string_maps_t * const values[], bool matches[], f_array_lengths_t * const indexs[]); @@ -366,10 +367,10 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). * * @see f_string_dynamic_partial_mash_nulless() - * @see fl_string_compare_trim() + * @see f_compare_trim() */ #ifndef _di_fll_fss_snatch_map_mash_apart_ extern f_status_t fll_fss_snatch_map_mash_apart(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, const f_string_static_t glue, f_string_map_multis_t * const values[], bool matches[], f_array_lengths_t * const indexs[]); @@ -419,10 +420,10 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). * * @see f_string_dynamic_partial_mash_nulless() - * @see fl_string_compare_trim() + * @see f_compare_trim() */ #ifndef _di_fll_fss_snatch_map_together_ extern f_status_t fll_fss_snatch_map_together(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, const f_string_static_t glue, f_string_maps_t * const values[], bool matches[], f_array_lengths_t * const indexs[]); @@ -469,7 +470,7 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_mash_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). */ #ifndef _di_fll_fss_snatch_mash_ extern f_status_t fll_fss_snatch_mash(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, const f_string_static_t glue, f_string_dynamic_t * const values[], bool matches[], f_array_length_t * const indexs[]); @@ -517,10 +518,10 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). * * @see f_string_dynamic_partial_mash_nulless() - * @see fl_string_compare_trim() + * @see f_compare_trim() */ #ifndef _di_fll_fss_snatch_mash_apart_ extern f_status_t fll_fss_snatch_mash_apart(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, const f_string_static_t glue, f_string_dynamics_t * const values[], bool matches[], f_array_lengths_t * const indexs[]); @@ -565,10 +566,10 @@ extern "C" { * F_parameter (with error bit) if a parameter is invalid. * * Errors (with error bit) from: f_string_dynamic_partial_mash_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_compare_trim_string(). + * Errors (with error bit) from: f_compare_dynamic_partial_trim_string(). * * @see f_string_dynamic_partial_append_nulless() - * @see fl_string_compare_trim() + * @see f_compare_trim() */ #ifndef _di_fll_fss_snatch_together_ extern f_status_t fll_fss_snatch_together(const f_string_static_t buffer, const f_fss_objects_t objects, const f_fss_contents_t contents, const f_string_static_t names[], const f_array_length_t size, const f_string_static_t glue, f_string_dynamic_t * const values[], bool matches[], f_array_length_t * const indexs[]); diff --git a/level_2/fll_fss/c/fss/basic.h b/level_2/fll_fss/c/fss/basic.h index 488c26a..8d9c927 100644 --- a/level_2/fll_fss/c/fss/basic.h +++ b/level_2/fll_fss/c/fss/basic.h @@ -21,7 +21,6 @@ // FLL-1 includes. #include #include -#include #ifdef __cplusplus extern "C" { diff --git a/level_2/fll_fss/c/fss/basic_list.h b/level_2/fll_fss/c/fss/basic_list.h index 5b2370d..e07594f 100644 --- a/level_2/fll_fss/c/fss/basic_list.h +++ b/level_2/fll_fss/c/fss/basic_list.h @@ -21,7 +21,6 @@ // FLL-1 includes. #include #include -#include #ifdef __cplusplus extern "C" { diff --git a/level_2/fll_fss/c/fss/payload.c b/level_2/fll_fss/c/fss/payload.c index 0f11149..dddd14d 100644 --- a/level_2/fll_fss/c/fss/payload.c +++ b/level_2/fll_fss/c/fss/payload.c @@ -36,7 +36,7 @@ extern "C" { if (range->start >= range->stop || range->start >= buffer.used) { if (state->status == F_fss_found_object || state->status == F_fss_found_object_content_not) { - if (fl_string_dynamic_partial_compare_string(f_fss_payload_s.string, buffer, f_fss_payload_s.used, objects->array[objects->used]) == F_equal_to) { + if (f_compare_dynamic_partial_string(f_fss_payload_s.string, buffer, f_fss_payload_s.used, objects->array[objects->used]) == F_equal_to) { state->status = F_fss_found_object_content_not; } @@ -75,7 +75,7 @@ extern "C" { contents->array[contents->used].used = 0; - if (fl_string_dynamic_partial_compare_string(f_fss_payload_s.string, buffer, f_fss_payload_s.used, objects->array[objects->used]) == F_equal_to) { + if (f_compare_dynamic_partial_string(f_fss_payload_s.string, buffer, f_fss_payload_s.used, objects->array[objects->used]) == F_equal_to) { status = f_string_ranges_increase(state->step_small, &contents->array[contents->used]); if (F_status_is_error(status)) { @@ -123,7 +123,7 @@ extern "C" { contents->array[contents->used].used = 0; - if (fl_string_dynamic_partial_compare_string(f_fss_payload_s.string, buffer, f_fss_payload_s.used, objects->array[objects->used]) == F_equal_to) { + if (f_compare_dynamic_partial_string(f_fss_payload_s.string, buffer, f_fss_payload_s.used, objects->array[objects->used]) == F_equal_to) { ++objects->used; status = f_string_ranges_increase(state->step_small, &contents->array[contents->used]); @@ -232,7 +232,7 @@ extern "C" { } if (state->status == F_none || state->status == F_none_stop || state->status == F_none_eos || state->status == F_none_eol) { - if (fl_string_dynamic_compare(f_fss_payload_s, object) == F_equal_to) { + if (f_compare_dynamic(f_fss_payload_s, object) == F_equal_to) { state->status = f_string_dynamic_increase_by(content.used, destination); if (F_status_is_error(state->status)) return; diff --git a/level_2/fll_fss/c/fss/payload.h b/level_2/fll_fss/c/fss/payload.h index 03e2b38..48b59d4 100644 --- a/level_2/fll_fss/c/fss/payload.h +++ b/level_2/fll_fss/c/fss/payload.h @@ -16,12 +16,12 @@ #include #include #include +#include #include // FLL-1 includes. #include #include -#include #ifdef __cplusplus extern "C" { diff --git a/level_2/fll_fss/data/build/dependencies b/level_2/fll_fss/data/build/dependencies index d30f4e0..5c3ab19 100644 --- a/level_2/fll_fss/data/build/dependencies +++ b/level_2/fll_fss/data/build/dependencies @@ -5,10 +5,11 @@ f_status f_memory f_string f_utf +f_compare f_conversion f_fss f_file +f_parse f_status_string fl_conversion fl_fss -fl_string diff --git a/level_2/fll_fss/data/build/settings b/level_2/fll_fss/data/build/settings index 168c4b7..6f4af1a 100644 --- a/level_2/fll_fss/data/build/settings +++ b/level_2/fll_fss/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfl_conversion -lfl_fss -lfl_string -lf_conversion -lf_file -lf_fss -lf_memory -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfl_conversion -lfl_fss -lf_compare -lf_conversion -lf_file -lf_fss -lf_parse -lf_memory -lf_status_string -lf_string -lf_type_array -lf_utf build_sources_library fss.c fss/basic.c fss/basic_list.c fss/embedded_list.c fss/extended.c fss/extended_list.c fss/payload.c diff --git a/level_2/fll_fss_status_string/c/fss_status_string.c b/level_2/fll_fss_status_string/c/fss_status_string.c index 8db8904..d882ff3 100644 --- a/level_2/fll_fss_status_string/c/fss_status_string.c +++ b/level_2/fll_fss_status_string/c/fss_status_string.c @@ -55,13 +55,13 @@ extern "C" { } #ifndef _di_fll_fss_status_error_ - if (fl_string_dynamic_compare(name, fll_fss_status_format_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_format_s) == F_equal_to) { *code = F_fss_format; return F_none; } - if (fl_string_dynamic_compare(name, fll_fss_status_format_eos_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_format_eos_s) == F_equal_to) { *code = F_fss_format_eos; return F_none; @@ -69,13 +69,13 @@ extern "C" { #endif // _di_fll_fss_status_error_ #ifndef _di_fll_fss_status_warning_ - if (fl_string_dynamic_compare(name, fll_fss_status_accepted_invalid_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_accepted_invalid_s) == F_equal_to) { *code = F_fss_accepted_invalid; return F_none; } - if (fl_string_dynamic_compare(name, fll_fss_status_accepted_invalid_eos_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_accepted_invalid_eos_s) == F_equal_to) { *code = F_fss_accepted_invalid_eos; return F_none; @@ -83,31 +83,31 @@ extern "C" { #endif // _di_fll_fss_status_warning_ #ifndef _di_fll_fss_status_success_ - if (fl_string_dynamic_compare(name, fll_fss_status_found_object_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_found_object_s) == F_equal_to) { *code = F_fss_found_object; return F_none; } - if (fl_string_dynamic_compare(name, fll_fss_status_found_content_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_found_content_s) == F_equal_to) { *code = F_fss_found_content; return F_none; } - if (fl_string_dynamic_compare(name, fll_fss_status_found_object_not_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_found_object_not_s) == F_equal_to) { *code = F_fss_found_object_not; return F_none; } - if (fl_string_dynamic_compare(name, fll_fss_status_found_content_not_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_found_content_not_s) == F_equal_to) { *code = F_fss_found_content_not; return F_none; } - if (fl_string_dynamic_compare(name, fll_fss_status_found_object_content_not_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_found_object_content_not_s) == F_equal_to) { *code = F_fss_found_object_content_not; return F_none; @@ -115,20 +115,20 @@ extern "C" { #endif // _di_fll_fss_status_success_ #ifndef _di_fll_fss_status_codes_ - if (fl_string_dynamic_compare(name, fll_fss_status_found_comment_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_found_comment_s) == F_equal_to) { *code = F_fss_found_object; return F_none; } #endif // _di_fll_fss_status_codes_ - if (fl_string_dynamic_compare(name, fll_fss_status_status_code_first_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_status_code_first_s) == F_equal_to) { *code = F_fss_status_code_first; return F_none; } - if (fl_string_dynamic_compare(name, fll_fss_status_status_code_last_s) == F_equal_to) { + if (f_compare_dynamic(name, fll_fss_status_status_code_last_s) == F_equal_to) { *code = F_fss_status_code_last; return F_none; diff --git a/level_2/fll_fss_status_string/c/fss_status_string.h b/level_2/fll_fss_status_string/c/fss_status_string.h index 28402ac..99cc815 100644 --- a/level_2/fll_fss_status_string/c/fss_status_string.h +++ b/level_2/fll_fss_status_string/c/fss_status_string.h @@ -16,13 +16,12 @@ #include #include #include +#include #include #include +#include #include -// FLL-1 includes. -#include - #ifdef __cplusplus extern "C" { #endif diff --git a/level_2/fll_fss_status_string/data/build/dependencies b/level_2/fll_fss_status_string/data/build/dependencies index 377335f..3b80ae1 100644 --- a/level_2/fll_fss_status_string/data/build/dependencies +++ b/level_2/fll_fss_status_string/data/build/dependencies @@ -5,7 +5,8 @@ f_status f_memory f_string f_utf +f_compare f_conversion f_fss +f_parse f_status_string -fl_string diff --git a/level_2/fll_fss_status_string/data/build/settings b/level_2/fll_fss_status_string/data/build/settings index 56db0c0..f0b56ed 100644 --- a/level_2/fll_fss_status_string/data/build/settings +++ b/level_2/fll_fss_status_string/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfl_string -lf_conversion -lf_fss -lf_memory -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lf_compare -lf_conversion -lf_fss -lf_parse -lf_memory -lf_status_string -lf_string -lf_type_array -lf_utf build_sources_library fss_status_string.c diff --git a/level_2/fll_iki/c/iki.h b/level_2/fll_iki/c/iki.h index 9b2d0ed..f3529e9 100644 --- a/level_2/fll_iki/c/iki.h +++ b/level_2/fll_iki/c/iki.h @@ -28,7 +28,6 @@ // FLL-1 includes. #include -#include #ifdef __cplusplus extern "C" { diff --git a/level_2/fll_program/c/program.c b/level_2/fll_program/c/program.c index 21b5220..414fe22 100644 --- a/level_2/fll_program/c/program.c +++ b/level_2/fll_program/c/program.c @@ -189,7 +189,7 @@ extern "C" { destination->array[destination->used].used = 0; - status = fl_string_dynamic_rip(arguments[values.array[i]], &destination->array[destination->used]); + status = f_rip_dynamic(arguments[values.array[i]], &destination->array[destination->used]); if (F_status_is_error(status)) break; if (status == F_data_not) { @@ -224,7 +224,7 @@ extern "C" { if (arguments[values.array[i]].used) { ripped.used = 0; - status = fl_string_dynamic_rip(arguments[values.array[i]], &ripped); + status = f_rip_dynamic(arguments[values.array[i]], &ripped); if (F_status_is_error(status)) break; if (ripped.used) { diff --git a/level_2/fll_program/c/program.h b/level_2/fll_program/c/program.h index 34973dc..46c15a39 100644 --- a/level_2/fll_program/c/program.h +++ b/level_2/fll_program/c/program.h @@ -23,10 +23,10 @@ #include #include #include +#include #include // FLL-1 includes. -#include #include // FLL-2 program includes. @@ -206,9 +206,9 @@ extern "C" { * F_memory_not (with error bit) on out of memory. * F_parameter (with error bit) if a parameter is invalid. * - * Errors (with error bit) from: fl_string_dynamic_rip(). + * Errors (with error bit) from: f_rip_dynamic(). * - * @see fl_string_dynamic_rip() + * @see f_rip_dynamic() */ #ifndef _di_fll_program_parameter_additional_rip_ extern f_status_t fll_program_parameter_additional_rip(const f_string_static_t * const arguments, const f_array_lengths_t values, f_string_dynamics_t * const destination); @@ -238,10 +238,10 @@ extern "C" { * F_string_too_large (with error bit) if the combined string is too large. * * Errors (with error bit) from: f_string_dynamic_mash(). - * Errors (with error bit) from: fl_string_dynamic_rip(). + * Errors (with error bit) from: f_rip_dynamic(). * * @see f_string_dynamic_mash() - * @see fl_string_dynamic_rip() + * @see f_rip_dynamic() */ #ifndef _di_fll_program_parameter_additional_rip_mash_ extern f_status_t fll_program_parameter_additional_rip_mash(const f_string_static_t glue, const f_string_static_t *arguments, const f_array_lengths_t values, f_string_dynamic_t * const destination); diff --git a/level_2/fll_program/data/build/dependencies b/level_2/fll_program/data/build/dependencies index 9659de3..1bd4bc2 100644 --- a/level_2/fll_program/data/build/dependencies +++ b/level_2/fll_program/data/build/dependencies @@ -9,6 +9,6 @@ f_color f_console f_file f_print +f_rip f_signal -fl_string fl_print diff --git a/level_2/fll_program/data/build/settings b/level_2/fll_program/data/build/settings index 081fa82..3b7ab03 100644 --- a/level_2/fll_program/data/build/settings +++ b/level_2/fll_program/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_memory -lf_print -lf_signal -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfl_print -lf_color -lf_console -lf_conversion -lf_file -lf_rip -lf_memory -lf_print -lf_signal -lf_string -lf_type_array -lf_utf build_sources_library program.c program/common.c program/print.c private-program.c diff --git a/level_2/fll_status_string/c/status_string.c b/level_2/fll_status_string/c/status_string.c index 29c6415..56f6f32 100644 --- a/level_2/fll_status_string/c/status_string.c +++ b/level_2/fll_status_string/c/status_string.c @@ -26,13 +26,13 @@ extern "C" { } #ifndef _di_f_status_boolean_s_ - if (fl_string_dynamic_compare(name, f_status_false_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_false_s) == F_equal_to) { *code = F_false; return F_none; } - if (fl_string_dynamic_compare(name, f_status_true_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_true_s) == F_equal_to) { *code = F_true; return F_none; @@ -40,385 +40,385 @@ extern "C" { #endif // _di_f_status_boolean_s_ #ifndef _di_f_status_signal_s_ - if (fl_string_dynamic_compare(name, f_status_signal_hangup_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_hangup_s) == F_equal_to) { *code = F_signal_hangup; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_interrupt_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_interrupt_s) == F_equal_to) { *code = F_signal_interrupt; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_quit_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_quit_s) == F_equal_to) { *code = F_signal_quit; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_illegal_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_illegal_s) == F_equal_to) { *code = F_signal_illegal; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_trap_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_trap_s) == F_equal_to) { *code = F_signal_trap; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_abort_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_abort_s) == F_equal_to) { *code = F_signal_abort; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_bus_error_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_bus_error_s) == F_equal_to) { *code = F_signal_bus_error; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_floating_point_error_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_floating_point_error_s) == F_equal_to) { *code = F_signal_floating_point_error; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_kill_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_kill_s) == F_equal_to) { *code = F_signal_kill; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_user_1_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_user_1_s) == F_equal_to) { *code = F_signal_user_1; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_segmentation_fault_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_segmentation_fault_s) == F_equal_to) { *code = F_signal_segmentation_fault; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_user_2_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_user_2_s) == F_equal_to) { *code = F_signal_user_2; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_broken_pipe_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_broken_pipe_s) == F_equal_to) { *code = F_signal_broken_pipe; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_alarm_clock_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_alarm_clock_s) == F_equal_to) { *code = F_signal_alarm_clock; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_termination_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_termination_s) == F_equal_to) { *code = F_signal_termination; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_stack_fault_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_stack_fault_s) == F_equal_to) { *code = F_signal_stack_fault; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_child_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_child_s) == F_equal_to) { *code = F_signal_child; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_continue_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_continue_s) == F_equal_to) { *code = F_signal_continue; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_stop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_stop_s) == F_equal_to) { *code = F_signal_stop; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_keyboard_stop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_keyboard_stop_s) == F_equal_to) { *code = F_signal_keyboard_stop; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_tty_in_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_tty_in_s) == F_equal_to) { *code = F_signal_tty_in; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_tty_out_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_tty_out_s) == F_equal_to) { *code = F_signal_tty_out; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_urgent_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_urgent_s) == F_equal_to) { *code = F_signal_urgent; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_cpu_limit_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_cpu_limit_s) == F_equal_to) { *code = F_signal_cpu_limit; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_file_size_limit_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_file_size_limit_s) == F_equal_to) { *code = F_signal_file_size_limit; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_virtual_alarm_clock_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_virtual_alarm_clock_s) == F_equal_to) { *code = F_signal_virtual_alarm_clock; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_profile_alarm_clock_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_profile_alarm_clock_s) == F_equal_to) { *code = F_signal_profile_alarm_clock; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_window_size_change_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_window_size_change_s) == F_equal_to) { *code = F_signal_window_size_change; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_pollable_event_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_pollable_event_s) == F_equal_to) { *code = F_signal_pollable_event; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_power_failure_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_power_failure_s) == F_equal_to) { *code = F_signal_power_failure; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_bad_system_call_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_bad_system_call_s) == F_equal_to) { *code = F_signal_bad_system_call; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_32_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_32_s) == F_equal_to) { *code = F_signal_reserved_32; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_33_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_33_s) == F_equal_to) { *code = F_signal_reserved_33; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_34_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_34_s) == F_equal_to) { *code = F_signal_reserved_34; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_35_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_35_s) == F_equal_to) { *code = F_signal_reserved_35; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_36_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_36_s) == F_equal_to) { *code = F_signal_reserved_36; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_37_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_37_s) == F_equal_to) { *code = F_signal_reserved_37; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_38_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_38_s) == F_equal_to) { *code = F_signal_reserved_38; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_39_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_39_s) == F_equal_to) { *code = F_signal_reserved_39; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_40_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_40_s) == F_equal_to) { *code = F_signal_reserved_40; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_41_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_41_s) == F_equal_to) { *code = F_signal_reserved_41; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_42_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_42_s) == F_equal_to) { *code = F_signal_reserved_42; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_43_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_43_s) == F_equal_to) { *code = F_signal_reserved_43; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_44_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_44_s) == F_equal_to) { *code = F_signal_reserved_44; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_45_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_45_s) == F_equal_to) { *code = F_signal_reserved_45; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_46_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_46_s) == F_equal_to) { *code = F_signal_reserved_46; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_47_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_47_s) == F_equal_to) { *code = F_signal_reserved_47; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_48_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_48_s) == F_equal_to) { *code = F_signal_reserved_48; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_49_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_49_s) == F_equal_to) { *code = F_signal_reserved_49; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_50_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_50_s) == F_equal_to) { *code = F_signal_reserved_50; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_51_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_51_s) == F_equal_to) { *code = F_signal_reserved_51; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_52_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_52_s) == F_equal_to) { *code = F_signal_reserved_52; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_53_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_53_s) == F_equal_to) { *code = F_signal_reserved_53; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_54_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_54_s) == F_equal_to) { *code = F_signal_reserved_54; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_55_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_55_s) == F_equal_to) { *code = F_signal_reserved_55; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_56_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_56_s) == F_equal_to) { *code = F_signal_reserved_56; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_57_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_57_s) == F_equal_to) { *code = F_signal_reserved_57; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_58_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_58_s) == F_equal_to) { *code = F_signal_reserved_58; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_59_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_59_s) == F_equal_to) { *code = F_signal_reserved_59; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_60_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_60_s) == F_equal_to) { *code = F_signal_reserved_60; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_61_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_61_s) == F_equal_to) { *code = F_signal_reserved_61; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_62_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_62_s) == F_equal_to) { *code = F_signal_reserved_62; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_63_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_63_s) == F_equal_to) { *code = F_signal_reserved_63; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_reserved_64_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_reserved_64_s) == F_equal_to) { *code = F_signal_reserved_64; return F_none; @@ -426,1843 +426,1843 @@ extern "C" { #endif // _di_f_status_signal_s_ #ifndef _di_f_status_basic_s_ - if (fl_string_dynamic_compare(name, f_status_none_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_none_s) == F_equal_to) { *code = F_none; return F_none; } - if (fl_string_dynamic_compare(name, f_status_abort_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_abort_s) == F_equal_to) { *code = F_abort; return F_none; } - if (fl_string_dynamic_compare(name, f_status_abort_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_abort_not_s) == F_equal_to) { *code = F_abort_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_absolute_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_absolute_s) == F_equal_to) { *code = F_absolute; return F_none; } - if (fl_string_dynamic_compare(name, f_status_absolute_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_absolute_not_s) == F_equal_to) { *code = F_absolute_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_address_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_address_s) == F_equal_to) { *code = F_address; return F_none; } - if (fl_string_dynamic_compare(name, f_status_address_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_address_not_s) == F_equal_to) { *code = F_address_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_ascii_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_ascii_s) == F_equal_to) { *code = F_ascii; return F_none; } - if (fl_string_dynamic_compare(name, f_status_ascii_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_ascii_not_s) == F_equal_to) { *code = F_ascii_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_atomic_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_atomic_s) == F_equal_to) { *code = F_atomic; return F_none; } - if (fl_string_dynamic_compare(name, f_status_atomic_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_atomic_not_s) == F_equal_to) { *code = F_atomic_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_base_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_base_s) == F_equal_to) { *code = F_base; return F_none; } - if (fl_string_dynamic_compare(name, f_status_base_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_base_not_s) == F_equal_to) { *code = F_base_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_begin_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_begin_s) == F_equal_to) { *code = F_begin; return F_none; } - if (fl_string_dynamic_compare(name, f_status_begin_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_begin_not_s) == F_equal_to) { *code = F_begin_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_block_s) == F_equal_to) { *code = F_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_block_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_block_not_s) == F_equal_to) { *code = F_block_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_body_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_body_s) == F_equal_to) { *code = F_body; return F_none; } - if (fl_string_dynamic_compare(name, f_status_body_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_body_not_s) == F_equal_to) { *code = F_body_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_bottom_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_bottom_s) == F_equal_to) { *code = F_bottom; return F_none; } - if (fl_string_dynamic_compare(name, f_status_bottom_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_bottom_not_s) == F_equal_to) { *code = F_bottom_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_bound_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_bound_s) == F_equal_to) { *code = F_bound; return F_none; } - if (fl_string_dynamic_compare(name, f_status_bound_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_bound_not_s) == F_equal_to) { *code = F_bound_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_break_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_break_s) == F_equal_to) { *code = F_break; return F_none; } - if (fl_string_dynamic_compare(name, f_status_break_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_break_not_s) == F_equal_to) { *code = F_break_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_call_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_call_s) == F_equal_to) { *code = F_call; return F_none; } - if (fl_string_dynamic_compare(name, f_status_call_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_call_not_s) == F_equal_to) { *code = F_call_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_capability_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_capability_s) == F_equal_to) { *code = F_capability; return F_none; } - if (fl_string_dynamic_compare(name, f_status_capability_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_capability_not_s) == F_equal_to) { *code = F_capability_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_child_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_child_s) == F_equal_to) { *code = F_child; return F_none; } - if (fl_string_dynamic_compare(name, f_status_character_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_character_s) == F_equal_to) { *code = F_character; return F_none; } - if (fl_string_dynamic_compare(name, f_status_character_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_character_not_s) == F_equal_to) { *code = F_character_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_child_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_child_not_s) == F_equal_to) { *code = F_child_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_complete_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_complete_s) == F_equal_to) { *code = F_complete; return F_none; } - if (fl_string_dynamic_compare(name, f_status_complete_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_complete_not_s) == F_equal_to) { *code = F_complete_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_connect_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_connect_s) == F_equal_to) { *code = F_connect; return F_none; } - if (fl_string_dynamic_compare(name, f_status_connect_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_connect_not_s) == F_equal_to) { *code = F_connect_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_connect_refuse_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_connect_refuse_s) == F_equal_to) { *code = F_connect_refuse; return F_none; } - if (fl_string_dynamic_compare(name, f_status_connect_reset_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_connect_reset_s) == F_equal_to) { *code = F_connect_reset; return F_none; } - if (fl_string_dynamic_compare(name, f_status_container_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_container_s) == F_equal_to) { *code = F_container; return F_none; } - if (fl_string_dynamic_compare(name, f_status_container_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_container_not_s) == F_equal_to) { *code = F_container_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_content_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_content_s) == F_equal_to) { *code = F_content; return F_none; } - if (fl_string_dynamic_compare(name, f_status_content_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_content_not_s) == F_equal_to) { *code = F_content_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_continue_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_continue_s) == F_equal_to) { *code = F_continue; return F_none; } - if (fl_string_dynamic_compare(name, f_status_continue_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_continue_not_s) == F_equal_to) { *code = F_continue_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_control_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_control_s) == F_equal_to) { *code = F_control; return F_none; } - if (fl_string_dynamic_compare(name, f_status_control_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_control_not_s) == F_equal_to) { *code = F_control_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_control_group_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_control_group_s) == F_equal_to) { *code = F_control_group; return F_none; } - if (fl_string_dynamic_compare(name, f_status_control_group_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_control_group_not_s) == F_equal_to) { *code = F_control_group_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_critical_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_critical_s) == F_equal_to) { *code = F_critical; return F_none; } - if (fl_string_dynamic_compare(name, f_status_critical_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_critical_not_s) == F_equal_to) { *code = F_critical_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_dead_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_dead_s) == F_equal_to) { *code = F_dead; return F_none; } - if (fl_string_dynamic_compare(name, f_status_dead_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_dead_not_s) == F_equal_to) { *code = F_dead_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_deadlock_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_deadlock_s) == F_equal_to) { *code = F_deadlock; return F_none; } - if (fl_string_dynamic_compare(name, f_status_deadlock_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_deadlock_not_s) == F_equal_to) { *code = F_deadlock_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_descriptor_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_descriptor_s) == F_equal_to) { *code = F_descriptor; return F_none; } - if (fl_string_dynamic_compare(name, f_status_descriptor_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_descriptor_not_s) == F_equal_to) { *code = F_descriptor_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_desire_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_desire_s) == F_equal_to) { *code = F_desire; return F_none; } - if (fl_string_dynamic_compare(name, f_status_desire_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_desire_not_s) == F_equal_to) { *code = F_desire_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_device_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_device_s) == F_equal_to) { *code = F_device; return F_none; } - if (fl_string_dynamic_compare(name, f_status_device_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_device_not_s) == F_equal_to) { *code = F_device_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_disable_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_disable_s) == F_equal_to) { *code = F_disable; return F_none; } - if (fl_string_dynamic_compare(name, f_status_disable_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_disable_not_s) == F_equal_to) { *code = F_disable_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_discard_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_discard_s) == F_equal_to) { *code = F_discard; return F_none; } - if (fl_string_dynamic_compare(name, f_status_discard_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_discard_not_s) == F_equal_to) { *code = F_discard_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_drop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_drop_s) == F_equal_to) { *code = F_drop; return F_none; } - if (fl_string_dynamic_compare(name, f_status_drop_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_drop_not_s) == F_equal_to) { *code = F_drop_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_domain_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_domain_s) == F_equal_to) { *code = F_domain; return F_none; } - if (fl_string_dynamic_compare(name, f_status_domain_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_domain_not_s) == F_equal_to) { *code = F_domain_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_done_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_done_s) == F_equal_to) { *code = F_done; return F_none; } - if (fl_string_dynamic_compare(name, f_status_done_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_done_not_s) == F_equal_to) { *code = F_done_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_dummy_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_dummy_s) == F_equal_to) { *code = F_dummy; return F_none; } - if (fl_string_dynamic_compare(name, f_status_dummy_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_dummy_not_s) == F_equal_to) { *code = F_dummy_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_empty_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_empty_s) == F_equal_to) { *code = F_empty; return F_none; } - if (fl_string_dynamic_compare(name, f_status_empty_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_empty_not_s) == F_equal_to) { *code = F_empty_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_enable_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_enable_s) == F_equal_to) { *code = F_enable; return F_none; } - if (fl_string_dynamic_compare(name, f_status_enable_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_enable_not_s) == F_equal_to) { *code = F_enable_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_encoding_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_encoding_s) == F_equal_to) { *code = F_encoding; return F_none; } - if (fl_string_dynamic_compare(name, f_status_encoding_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_encoding_not_s) == F_equal_to) { *code = F_encoding_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_endian_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_endian_s) == F_equal_to) { *code = F_endian; return F_none; } - if (fl_string_dynamic_compare(name, f_status_endian_big_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_endian_big_s) == F_equal_to) { *code = F_endian_big; return F_none; } - if (fl_string_dynamic_compare(name, f_status_endian_little_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_endian_little_s) == F_equal_to) { *code = F_endian_little; return F_none; } - if (fl_string_dynamic_compare(name, f_status_endian_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_endian_not_s) == F_equal_to) { *code = F_endian_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_eoa_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_eoa_s) == F_equal_to) { *code = F_eoa; return F_none; } - if (fl_string_dynamic_compare(name, f_status_eoa_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_eoa_not_s) == F_equal_to) { *code = F_eoa_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_eof_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_eof_s) == F_equal_to) { *code = F_eof; return F_none; } - if (fl_string_dynamic_compare(name, f_status_eof_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_eof_not_s) == F_equal_to) { *code = F_eof_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_eol_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_eol_s) == F_equal_to) { *code = F_eol; return F_none; } - if (fl_string_dynamic_compare(name, f_status_eol_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_eol_not_s) == F_equal_to) { *code = F_eol_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_eos_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_eos_s) == F_equal_to) { *code = F_eos; return F_none; } - if (fl_string_dynamic_compare(name, f_status_eos_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_eos_not_s) == F_equal_to) { *code = F_eos_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_execute_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_execute_s) == F_equal_to) { *code = F_execute; return F_none; } - if (fl_string_dynamic_compare(name, f_status_execute_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_execute_not_s) == F_equal_to) { *code = F_execute_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_exist_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_exist_s) == F_equal_to) { *code = F_exist; return F_none; } - if (fl_string_dynamic_compare(name, f_status_exist_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_exist_not_s) == F_equal_to) { *code = F_exist_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_exit_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_exit_s) == F_equal_to) { *code = F_exit; return F_none; } - if (fl_string_dynamic_compare(name, f_status_exit_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_exit_not_s) == F_equal_to) { *code = F_exit_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_failure_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_failure_s) == F_equal_to) { *code = F_failure; return F_none; } - if (fl_string_dynamic_compare(name, f_status_failure_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_failure_not_s) == F_equal_to) { *code = F_failure_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_family_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_family_s) == F_equal_to) { *code = F_family; return F_none; } - if (fl_string_dynamic_compare(name, f_status_family_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_family_not_s) == F_equal_to) { *code = F_family_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_fifo_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_fifo_s) == F_equal_to) { *code = F_fifo; return F_none; } - if (fl_string_dynamic_compare(name, f_status_fifo_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_fifo_not_s) == F_equal_to) { *code = F_fifo_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_first_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_first_s) == F_equal_to) { *code = F_first; return F_none; } - if (fl_string_dynamic_compare(name, f_status_first_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_first_not_s) == F_equal_to) { *code = F_first_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_footer_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_footer_s) == F_equal_to) { *code = F_footer; return F_none; } - if (fl_string_dynamic_compare(name, f_status_footer_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_footer_not_s) == F_equal_to) { *code = F_footer_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_fork_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_fork_s) == F_equal_to) { *code = F_fork; return F_none; } - if (fl_string_dynamic_compare(name, f_status_fork_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_fork_not_s) == F_equal_to) { *code = F_fork_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_format_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_format_s) == F_equal_to) { *code = F_format; return F_none; } - if (fl_string_dynamic_compare(name, f_status_format_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_format_not_s) == F_equal_to) { *code = F_format_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_found_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_found_s) == F_equal_to) { *code = F_found; return F_none; } - if (fl_string_dynamic_compare(name, f_status_found_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_found_not_s) == F_equal_to) { *code = F_found_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_full_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_full_s) == F_equal_to) { *code = F_full; return F_none; } - if (fl_string_dynamic_compare(name, f_status_full_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_full_not_s) == F_equal_to) { *code = F_full_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_group_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_group_s) == F_equal_to) { *code = F_group; return F_none; } - if (fl_string_dynamic_compare(name, f_status_group_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_group_not_s) == F_equal_to) { *code = F_group_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_halt_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_halt_s) == F_equal_to) { *code = F_halt; return F_none; } - if (fl_string_dynamic_compare(name, f_status_halt_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_halt_not_s) == F_equal_to) { *code = F_halt_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_header_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_header_s) == F_equal_to) { *code = F_header; return F_none; } - if (fl_string_dynamic_compare(name, f_status_header_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_header_not_s) == F_equal_to) { *code = F_header_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_help_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_help_s) == F_equal_to) { *code = F_help; return F_none; } - if (fl_string_dynamic_compare(name, f_status_help_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_help_not_s) == F_equal_to) { *code = F_help_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_ignore_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_ignore_s) == F_equal_to) { *code = F_ignore; return F_none; } - if (fl_string_dynamic_compare(name, f_status_ignore_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_ignore_not_s) == F_equal_to) { *code = F_ignore_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_implemented_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_implemented_s) == F_equal_to) { *code = F_implemented; return F_none; } - if (fl_string_dynamic_compare(name, f_status_implemented_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_implemented_not_s) == F_equal_to) { *code = F_implemented_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_input_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_input_s) == F_equal_to) { *code = F_input; return F_none; } - if (fl_string_dynamic_compare(name, f_status_input_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_input_not_s) == F_equal_to) { *code = F_input_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_input_output_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_input_output_s) == F_equal_to) { *code = F_input_output; return F_none; } - if (fl_string_dynamic_compare(name, f_status_interrupt_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_interrupt_s) == F_equal_to) { *code = F_interrupt; return F_none; } - if (fl_string_dynamic_compare(name, f_status_interrupt_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_interrupt_not_s) == F_equal_to) { *code = F_interrupt_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_keep_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_keep_s) == F_equal_to) { *code = F_keep; return F_none; } - if (fl_string_dynamic_compare(name, f_status_keep_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_keep_not_s) == F_equal_to) { *code = F_keep_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_known_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_known_s) == F_equal_to) { *code = F_known; return F_none; } - if (fl_string_dynamic_compare(name, f_status_known_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_known_not_s) == F_equal_to) { *code = F_known_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_last_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_last_s) == F_equal_to) { *code = F_last; return F_none; } - if (fl_string_dynamic_compare(name, f_status_last_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_last_not_s) == F_equal_to) { *code = F_last_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_limit_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_limit_s) == F_equal_to) { *code = F_limit; return F_none; } - if (fl_string_dynamic_compare(name, f_status_limit_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_limit_not_s) == F_equal_to) { *code = F_limit_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_link_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_link_s) == F_equal_to) { *code = F_link; return F_none; } - if (fl_string_dynamic_compare(name, f_status_link_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_link_not_s) == F_equal_to) { *code = F_link_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_live_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_live_s) == F_equal_to) { *code = F_live; return F_none; } - if (fl_string_dynamic_compare(name, f_status_live_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_live_not_s) == F_equal_to) { *code = F_live_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_local_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_local_s) == F_equal_to) { *code = F_local; return F_none; } - if (fl_string_dynamic_compare(name, f_status_local_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_local_not_s) == F_equal_to) { *code = F_local_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_lock_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_lock_s) == F_equal_to) { *code = F_lock; return F_none; } - if (fl_string_dynamic_compare(name, f_status_lock_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_lock_not_s) == F_equal_to) { *code = F_lock_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_loop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_loop_s) == F_equal_to) { *code = F_loop; return F_none; } - if (fl_string_dynamic_compare(name, f_status_loop_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_loop_not_s) == F_equal_to) { *code = F_loop_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_maybe_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_maybe_s) == F_equal_to) { *code = F_maybe; return F_none; } - if (fl_string_dynamic_compare(name, f_status_maybe_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_maybe_not_s) == F_equal_to) { *code = F_maybe_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_memory_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_memory_s) == F_equal_to) { *code = F_memory; return F_none; } - if (fl_string_dynamic_compare(name, f_status_memory_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_memory_not_s) == F_equal_to) { *code = F_memory_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_message_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_message_s) == F_equal_to) { *code = F_message; return F_none; } - if (fl_string_dynamic_compare(name, f_status_message_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_message_not_s) == F_equal_to) { *code = F_message_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_middle_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_middle_s) == F_equal_to) { *code = F_middle; return F_none; } - if (fl_string_dynamic_compare(name, f_status_middle_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_middle_not_s) == F_equal_to) { *code = F_middle_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_minor_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_minor_s) == F_equal_to) { *code = F_minor; return F_none; } - if (fl_string_dynamic_compare(name, f_status_minor_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_minor_not_s) == F_equal_to) { *code = F_minor_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_moderate_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_moderate_s) == F_equal_to) { *code = F_moderate; return F_none; } - if (fl_string_dynamic_compare(name, f_status_moderate_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_moderate_not_s) == F_equal_to) { *code = F_moderate_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_mount_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_mount_s) == F_equal_to) { *code = F_mount; return F_none; } - if (fl_string_dynamic_compare(name, f_status_mount_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_mount_not_s) == F_equal_to) { *code = F_mount_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_name_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_name_s) == F_equal_to) { *code = F_name; return F_none; } - if (fl_string_dynamic_compare(name, f_status_name_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_name_not_s) == F_equal_to) { *code = F_name_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_need_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_need_s) == F_equal_to) { *code = F_need; return F_none; } - if (fl_string_dynamic_compare(name, f_status_need_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_need_not_s) == F_equal_to) { *code = F_need_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_next_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_next_s) == F_equal_to) { *code = F_next; return F_none; } - if (fl_string_dynamic_compare(name, f_status_next_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_next_not_s) == F_equal_to) { *code = F_next_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_nice_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_nice_s) == F_equal_to) { *code = F_nice; return F_none; } - if (fl_string_dynamic_compare(name, f_status_nice_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_nice_not_s) == F_equal_to) { *code = F_nice_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_no_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_no_s) == F_equal_to) { *code = F_no; return F_none; } - if (fl_string_dynamic_compare(name, f_status_no_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_no_not_s) == F_equal_to) { *code = F_no_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_object_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_object_s) == F_equal_to) { *code = F_object; return F_none; } - if (fl_string_dynamic_compare(name, f_status_object_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_object_not_s) == F_equal_to) { *code = F_object_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_once_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_once_s) == F_equal_to) { *code = F_once; return F_none; } - if (fl_string_dynamic_compare(name, f_status_once_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_once_not_s) == F_equal_to) { *code = F_once_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_option_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_option_s) == F_equal_to) { *code = F_option; return F_none; } - if (fl_string_dynamic_compare(name, f_status_option_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_option_not_s) == F_equal_to) { *code = F_option_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_output_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_output_s) == F_equal_to) { *code = F_output; return F_none; } - if (fl_string_dynamic_compare(name, f_status_output_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_output_not_s) == F_equal_to) { *code = F_output_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_packet_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_packet_s) == F_equal_to) { *code = F_packet; return F_none; } - if (fl_string_dynamic_compare(name, f_status_packet_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_packet_not_s) == F_equal_to) { *code = F_packet_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_parameter_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_parameter_s) == F_equal_to) { *code = F_parameter; return F_none; } - if (fl_string_dynamic_compare(name, f_status_parameter_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_parameter_not_s) == F_equal_to) { *code = F_parameter_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_parent_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_parent_s) == F_equal_to) { *code = F_parent; return F_none; } - if (fl_string_dynamic_compare(name, f_status_parent_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_parent_not_s) == F_equal_to) { *code = F_parent_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_payload_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_payload_s) == F_equal_to) { *code = F_payload; return F_none; } - if (fl_string_dynamic_compare(name, f_status_payload_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_payload_not_s) == F_equal_to) { *code = F_payload_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_pipe_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_pipe_s) == F_equal_to) { *code = F_pipe; return F_none; } - if (fl_string_dynamic_compare(name, f_status_pipe_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_pipe_not_s) == F_equal_to) { *code = F_pipe_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_port_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_port_s) == F_equal_to) { *code = F_port; return F_none; } - if (fl_string_dynamic_compare(name, f_status_port_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_port_not_s) == F_equal_to) { *code = F_port_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_previous_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_previous_s) == F_equal_to) { *code = F_previous; return F_none; } - if (fl_string_dynamic_compare(name, f_status_previous_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_previous_not_s) == F_equal_to) { *code = F_previous_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_processor_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_processor_s) == F_equal_to) { *code = F_processor; return F_none; } - if (fl_string_dynamic_compare(name, f_status_processor_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_processor_not_s) == F_equal_to) { *code = F_processor_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_progress_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_progress_s) == F_equal_to) { *code = F_progress; return F_none; } - if (fl_string_dynamic_compare(name, f_status_progress_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_progress_not_s) == F_equal_to) { *code = F_progress_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_prohibited_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_prohibited_s) == F_equal_to) { *code = F_prohibited; return F_none; } - if (fl_string_dynamic_compare(name, f_status_prohibited_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_prohibited_not_s) == F_equal_to) { *code = F_prohibited_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_property_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_property_s) == F_equal_to) { *code = F_property; return F_none; } - if (fl_string_dynamic_compare(name, f_status_property_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_property_not_s) == F_equal_to) { *code = F_property_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_protocol_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_protocol_s) == F_equal_to) { *code = F_protocol; return F_none; } - if (fl_string_dynamic_compare(name, f_status_protocol_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_protocol_not_s) == F_equal_to) { *code = F_protocol_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_range_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_range_s) == F_equal_to) { *code = F_range; return F_none; } - if (fl_string_dynamic_compare(name, f_status_range_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_range_not_s) == F_equal_to) { *code = F_range_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_read_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_read_s) == F_equal_to) { *code = F_read; return F_none; } - if (fl_string_dynamic_compare(name, f_status_read_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_read_not_s) == F_equal_to) { *code = F_read_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_read_only_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_read_only_s) == F_equal_to) { *code = F_read_only; return F_none; } - if (fl_string_dynamic_compare(name, f_status_ready_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_ready_s) == F_equal_to) { *code = F_ready; return F_none; } - if (fl_string_dynamic_compare(name, f_status_ready_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_ready_not_s) == F_equal_to) { *code = F_ready_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_receive_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_receive_s) == F_equal_to) { *code = F_receive; return F_none; } - if (fl_string_dynamic_compare(name, f_status_receive_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_receive_not_s) == F_equal_to) { *code = F_receive_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_recover_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_recover_s) == F_equal_to) { *code = F_recover; return F_none; } - if (fl_string_dynamic_compare(name, f_status_recover_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_recover_not_s) == F_equal_to) { *code = F_recover_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_recurse_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_recurse_s) == F_equal_to) { *code = F_recurse; return F_none; } - if (fl_string_dynamic_compare(name, f_status_recurse_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_recurse_not_s) == F_equal_to) { *code = F_recurse_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_regular_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_regular_s) == F_equal_to) { *code = F_regular; return F_none; } - if (fl_string_dynamic_compare(name, f_status_regular_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_regular_not_s) == F_equal_to) { *code = F_regular_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_relative_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_relative_s) == F_equal_to) { *code = F_relative; return F_none; } - if (fl_string_dynamic_compare(name, f_status_relative_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_relative_not_s) == F_equal_to) { *code = F_relative_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_remote_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_remote_s) == F_equal_to) { *code = F_remote; return F_none; } - if (fl_string_dynamic_compare(name, f_status_remote_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_remote_not_s) == F_equal_to) { *code = F_remote_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_repeat_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_repeat_s) == F_equal_to) { *code = F_repeat; return F_none; } - if (fl_string_dynamic_compare(name, f_status_repeat_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_repeat_not_s) == F_equal_to) { *code = F_repeat_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_require_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_require_s) == F_equal_to) { *code = F_require; return F_none; } - if (fl_string_dynamic_compare(name, f_status_require_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_require_not_s) == F_equal_to) { *code = F_require_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_resource_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_resource_s) == F_equal_to) { *code = F_resource; return F_none; } - if (fl_string_dynamic_compare(name, f_status_resource_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_resource_not_s) == F_equal_to) { *code = F_resource_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_restart_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_restart_s) == F_equal_to) { *code = F_restart; return F_none; } - if (fl_string_dynamic_compare(name, f_status_restart_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_restart_not_s) == F_equal_to) { *code = F_restart_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_restore_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_restore_s) == F_equal_to) { *code = F_restore; return F_none; } - if (fl_string_dynamic_compare(name, f_status_restore_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_restore_not_s) == F_equal_to) { *code = F_restore_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_revert_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_revert_s) == F_equal_to) { *code = F_revert; return F_none; } - if (fl_string_dynamic_compare(name, f_status_revert_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_revert_not_s) == F_equal_to) { *code = F_revert_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_schedule_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_schedule_s) == F_equal_to) { *code = F_schedule; return F_none; } - if (fl_string_dynamic_compare(name, f_status_schedule_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_schedule_not_s) == F_equal_to) { *code = F_schedule_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_search_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_search_s) == F_equal_to) { *code = F_search; return F_none; } - if (fl_string_dynamic_compare(name, f_status_search_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_search_not_s) == F_equal_to) { *code = F_search_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_send_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_send_s) == F_equal_to) { *code = F_send; return F_none; } - if (fl_string_dynamic_compare(name, f_status_send_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_send_not_s) == F_equal_to) { *code = F_send_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_size_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_size_s) == F_equal_to) { *code = F_size; return F_none; } - if (fl_string_dynamic_compare(name, f_status_size_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_size_not_s) == F_equal_to) { *code = F_size_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_s) == F_equal_to) { *code = F_signal; return F_none; } - if (fl_string_dynamic_compare(name, f_status_signal_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_signal_not_s) == F_equal_to) { *code = F_signal_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_space_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_space_s) == F_equal_to) { *code = F_space; return F_none; } - if (fl_string_dynamic_compare(name, f_status_space_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_space_not_s) == F_equal_to) { *code = F_space_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_skip_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_skip_s) == F_equal_to) { *code = F_skip; return F_none; } - if (fl_string_dynamic_compare(name, f_status_skip_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_skip_not_s) == F_equal_to) { *code = F_skip_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_start_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_start_s) == F_equal_to) { *code = F_start; return F_none; } - if (fl_string_dynamic_compare(name, f_status_start_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_start_not_s) == F_equal_to) { *code = F_start_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_status_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_status_s) == F_equal_to) { *code = F_status; return F_none; } - if (fl_string_dynamic_compare(name, f_status_status_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_status_not_s) == F_equal_to) { *code = F_status_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_stop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_stop_s) == F_equal_to) { *code = F_stop; return F_none; } - if (fl_string_dynamic_compare(name, f_status_stop_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_stop_not_s) == F_equal_to) { *code = F_stop_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_store_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_store_s) == F_equal_to) { *code = F_store; return F_none; } - if (fl_string_dynamic_compare(name, f_status_store_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_store_not_s) == F_equal_to) { *code = F_store_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_stream_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_stream_s) == F_equal_to) { *code = F_stream; return F_none; } - if (fl_string_dynamic_compare(name, f_status_stream_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_stream_not_s) == F_equal_to) { *code = F_stream_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_string_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_string_s) == F_equal_to) { *code = F_string; return F_none; } - if (fl_string_dynamic_compare(name, f_status_string_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_string_not_s) == F_equal_to) { *code = F_string_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_string_too_large_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_string_too_large_s) == F_equal_to) { *code = F_string_too_large; return F_none; } - if (fl_string_dynamic_compare(name, f_status_string_too_small_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_string_too_small_s) == F_equal_to) { *code = F_string_too_small; return F_none; } - if (fl_string_dynamic_compare(name, f_status_success_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_success_s) == F_equal_to) { *code = F_success; return F_none; } - if (fl_string_dynamic_compare(name, f_status_success_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_success_not_s) == F_equal_to) { *code = F_success_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_support_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_support_s) == F_equal_to) { *code = F_support; return F_none; } - if (fl_string_dynamic_compare(name, f_status_support_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_support_not_s) == F_equal_to) { *code = F_support_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_syntax_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_syntax_s) == F_equal_to) { *code = F_syntax; return F_none; } - if (fl_string_dynamic_compare(name, f_status_syntax_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_syntax_not_s) == F_equal_to) { *code = F_syntax_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminate_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminate_s) == F_equal_to) { *code = F_terminate; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminate_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminate_not_s) == F_equal_to) { *code = F_terminate_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_thread_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_thread_s) == F_equal_to) { *code = F_thread; return F_none; } - if (fl_string_dynamic_compare(name, f_status_thread_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_thread_not_s) == F_equal_to) { *code = F_thread_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_time_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_time_s) == F_equal_to) { *code = F_time; return F_none; } - if (fl_string_dynamic_compare(name, f_status_time_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_time_not_s) == F_equal_to) { *code = F_time_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_time_out_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_time_out_s) == F_equal_to) { *code = F_time_out; return F_none; } - if (fl_string_dynamic_compare(name, f_status_too_large_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_too_large_s) == F_equal_to) { *code = F_too_large; return F_none; } - if (fl_string_dynamic_compare(name, f_status_too_small_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_too_small_s) == F_equal_to) { *code = F_too_small; return F_none; } - if (fl_string_dynamic_compare(name, f_status_top_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_top_s) == F_equal_to) { *code = F_top; return F_none; } - if (fl_string_dynamic_compare(name, f_status_top_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_top_not_s) == F_equal_to) { *code = F_top_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_type_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_type_s) == F_equal_to) { *code = F_type; return F_none; } - if (fl_string_dynamic_compare(name, f_status_type_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_type_not_s) == F_equal_to) { *code = F_type_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_user_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_user_s) == F_equal_to) { *code = F_user; return F_none; } - if (fl_string_dynamic_compare(name, f_status_user_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_user_not_s) == F_equal_to) { *code = F_user_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_utf_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_utf_s) == F_equal_to) { *code = F_utf; return F_none; } - if (fl_string_dynamic_compare(name, f_status_utf_fragment_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_utf_fragment_s) == F_equal_to) { *code = F_utf_fragment; return F_none; } - if (fl_string_dynamic_compare(name, f_status_utf_fragment_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_utf_fragment_not_s) == F_equal_to) { *code = F_utf_fragment_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_utf_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_utf_not_s) == F_equal_to) { *code = F_utf_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_valid_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_valid_s) == F_equal_to) { *code = F_valid; return F_none; } - if (fl_string_dynamic_compare(name, f_status_valid_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_valid_not_s) == F_equal_to) { *code = F_valid_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_value_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_value_s) == F_equal_to) { *code = F_value; return F_none; } - if (fl_string_dynamic_compare(name, f_status_value_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_value_not_s) == F_equal_to) { *code = F_value_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_wait_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_wait_s) == F_equal_to) { *code = F_wait; return F_none; } - if (fl_string_dynamic_compare(name, f_status_wait_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_wait_not_s) == F_equal_to) { *code = F_wait_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_want_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_want_s) == F_equal_to) { *code = F_want; return F_none; } - if (fl_string_dynamic_compare(name, f_status_want_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_want_not_s) == F_equal_to) { *code = F_want_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_wish_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_wish_s) == F_equal_to) { *code = F_wish; return F_none; } - if (fl_string_dynamic_compare(name, f_status_wish_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_wish_not_s) == F_equal_to) { *code = F_wish_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_world_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_world_s) == F_equal_to) { *code = F_world; return F_none; } - if (fl_string_dynamic_compare(name, f_status_world_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_world_not_s) == F_equal_to) { *code = F_world_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_write_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_write_s) == F_equal_to) { *code = F_write; return F_none; } - if (fl_string_dynamic_compare(name, f_status_write_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_write_not_s) == F_equal_to) { *code = F_write_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_write_only_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_write_only_s) == F_equal_to) { *code = F_write_only; return F_none; } - if (fl_string_dynamic_compare(name, f_status_yes_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_yes_s) == F_equal_to) { *code = F_yes; return F_none; } - if (fl_string_dynamic_compare(name, f_status_yes_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_yes_not_s) == F_equal_to) { *code = F_yes_not; return F_none; @@ -2270,49 +2270,49 @@ extern "C" { #endif // _di_f_status_basic_s_ #ifndef _di_f_status_return_s_ - if (fl_string_dynamic_compare(name, f_status_debug_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_debug_s) == F_equal_to) { *code = F_debug; return F_none; } - if (fl_string_dynamic_compare(name, f_status_debug_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_debug_not_s) == F_equal_to) { *code = F_debug_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_error_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_error_s) == F_equal_to) { *code = F_error; return F_none; } - if (fl_string_dynamic_compare(name, f_status_error_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_error_not_s) == F_equal_to) { *code = F_error_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_fine_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_fine_s) == F_equal_to) { *code = F_fine; return F_none; } - if (fl_string_dynamic_compare(name, f_status_fine_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_fine_not_s) == F_equal_to) { *code = F_fine_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_warning_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_warning_s) == F_equal_to) { *code = F_warning; return F_none; } - if (fl_string_dynamic_compare(name, f_status_warning_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_warning_not_s) == F_equal_to) { *code = F_warning_not; return F_none; @@ -2320,25 +2320,25 @@ extern "C" { #endif // _di_f_status_return_s_ #ifndef _di_f_status_array_s_ - if (fl_string_dynamic_compare(name, f_status_array_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_array_s) == F_equal_to) { *code = F_array; return F_none; } - if (fl_string_dynamic_compare(name, f_status_array_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_array_not_s) == F_equal_to) { *code = F_array_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_array_too_large_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_array_too_large_s) == F_equal_to) { *code = F_array_too_large; return F_none; } - if (fl_string_dynamic_compare(name, f_status_array_too_small_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_array_too_small_s) == F_equal_to) { *code = F_array_too_small; return F_none; @@ -2346,55 +2346,55 @@ extern "C" { #endif // _di_f_status_array_s_ #ifndef _di_f_status_available_s_ - if (fl_string_dynamic_compare(name, f_status_available_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_available_s) == F_equal_to) { *code = F_available; return F_none; } - if (fl_string_dynamic_compare(name, f_status_available_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_available_not_s) == F_equal_to) { *code = F_available_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_available_not_address_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_available_not_address_s) == F_equal_to) { *code = F_available_not_address; return F_none; } - if (fl_string_dynamic_compare(name, f_status_available_not_buffer_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_available_not_buffer_s) == F_equal_to) { *code = F_available_not_buffer; return F_none; } - if (fl_string_dynamic_compare(name, f_status_available_not_device_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_available_not_device_s) == F_equal_to) { *code = F_available_not_device; return F_none; } - if (fl_string_dynamic_compare(name, f_status_available_not_pipe_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_available_not_pipe_s) == F_equal_to) { *code = F_available_not_pipe; return F_none; } - if (fl_string_dynamic_compare(name, f_status_available_not_port_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_available_not_port_s) == F_equal_to) { *code = F_available_not_port; return F_none; } - if (fl_string_dynamic_compare(name, f_status_available_not_process_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_available_not_process_s) == F_equal_to) { *code = F_available_not_process; return F_none; } - if (fl_string_dynamic_compare(name, f_status_available_not_socket_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_available_not_socket_s) == F_equal_to) { *code = F_available_not_socket; return F_none; @@ -2402,55 +2402,55 @@ extern "C" { #endif // _di_f_status_available_s_ #ifndef _di_f_status_busy_s_ - if (fl_string_dynamic_compare(name, f_status_busy_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_busy_s) == F_equal_to) { *code = F_busy; return F_none; } - if (fl_string_dynamic_compare(name, f_status_busy_address_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_busy_address_s) == F_equal_to) { *code = F_busy_address; return F_none; } - if (fl_string_dynamic_compare(name, f_status_busy_buffer_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_busy_buffer_s) == F_equal_to) { *code = F_busy_buffer; return F_none; } - if (fl_string_dynamic_compare(name, f_status_busy_device_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_busy_device_s) == F_equal_to) { *code = F_busy_device; return F_none; } - if (fl_string_dynamic_compare(name, f_status_busy_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_busy_not_s) == F_equal_to) { *code = F_busy_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_busy_pipe_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_busy_pipe_s) == F_equal_to) { *code = F_busy_pipe; return F_none; } - if (fl_string_dynamic_compare(name, f_status_busy_port_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_busy_port_s) == F_equal_to) { *code = F_busy_port; return F_none; } - if (fl_string_dynamic_compare(name, f_status_busy_process_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_busy_process_s) == F_equal_to) { *code = F_busy_process; return F_none; } - if (fl_string_dynamic_compare(name, f_status_busy_socket_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_busy_socket_s) == F_equal_to) { *code = F_busy_socket; return F_none; @@ -2458,133 +2458,133 @@ extern "C" { #endif // _di_f_status_busy_s_ #ifndef _di_f_status_network_s_ - if (fl_string_dynamic_compare(name, f_status_network_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_s) == F_equal_to) { *code = F_network; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_busy_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_busy_s) == F_equal_to) { *code = F_network_busy; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_busy_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_busy_not_s) == F_equal_to) { *code = F_network_busy_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_client_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_client_s) == F_equal_to) { *code = F_network_client; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_client_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_client_not_s) == F_equal_to) { *code = F_network_client_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_device_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_device_s) == F_equal_to) { *code = F_network_device; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_device_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_device_not_s) == F_equal_to) { *code = F_network_device_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_found_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_found_s) == F_equal_to) { *code = F_network_found; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_found_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_found_not_s) == F_equal_to) { *code = F_network_found_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_lost_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_lost_s) == F_equal_to) { *code = F_network_lost; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_lost_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_lost_not_s) == F_equal_to) { *code = F_network_lost_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_not_s) == F_equal_to) { *code = F_network_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_reach_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_reach_s) == F_equal_to) { *code = F_network_reach; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_reach_client_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_reach_client_s) == F_equal_to) { *code = F_network_reach_client; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_reach_client_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_reach_client_not_s) == F_equal_to) { *code = F_network_reach_client_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_reach_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_reach_not_s) == F_equal_to) { *code = F_network_reach_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_reach_server_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_reach_server_s) == F_equal_to) { *code = F_network_reach_server; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_reach_server_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_reach_server_not_s) == F_equal_to) { *code = F_network_reach_server_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_server_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_server_s) == F_equal_to) { *code = F_network_server; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_server_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_server_not_s) == F_equal_to) { *code = F_network_server_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_time_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_time_s) == F_equal_to) { *code = F_network_time; return F_none; } - if (fl_string_dynamic_compare(name, f_status_network_time_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_network_time_not_s) == F_equal_to) { *code = F_network_time_not; return F_none; @@ -2592,103 +2592,103 @@ extern "C" { #endif // _di_f_status_network_s_ #ifndef _di_f_status_number_s_ - if (fl_string_dynamic_compare(name, f_status_number_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_s) == F_equal_to) { *code = F_number; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_decimal_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_decimal_s) == F_equal_to) { *code = F_number_decimal; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_decimal_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_decimal_not_s) == F_equal_to) { *code = F_number_decimal_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_divide_by_zero_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_divide_by_zero_s) == F_equal_to) { *code = F_number_divide_by_zero; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_negative_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_negative_s) == F_equal_to) { *code = F_number_negative; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_negative_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_negative_not_s) == F_equal_to) { *code = F_number_negative_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_not_s) == F_equal_to) { *code = F_number_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_overflow_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_overflow_s) == F_equal_to) { *code = F_number_overflow; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_positive_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_positive_s) == F_equal_to) { *code = F_number_positive; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_positive_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_positive_not_s) == F_equal_to) { *code = F_number_positive_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_too_large_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_too_large_s) == F_equal_to) { *code = F_number_too_large; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_too_small_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_too_small_s) == F_equal_to) { *code = F_number_too_small; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_underflow_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_underflow_s) == F_equal_to) { *code = F_number_underflow; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_whole_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_whole_s) == F_equal_to) { *code = F_number_whole; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_whole_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_whole_not_s) == F_equal_to) { *code = F_number_whole_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_zero_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_zero_s) == F_equal_to) { *code = F_number_zero; return F_none; } - if (fl_string_dynamic_compare(name, f_status_number_zero_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_number_zero_not_s) == F_equal_to) { *code = F_number_zero_not; return F_none; @@ -2696,163 +2696,163 @@ extern "C" { #endif // _di_f_status_number_s_ #ifndef _di_f_status_buffer_s_ - if (fl_string_dynamic_compare(name, f_status_buffer_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_buffer_s) == F_equal_to) { *code = F_buffer; return F_none; } - if (fl_string_dynamic_compare(name, f_status_buffer_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_buffer_not_s) == F_equal_to) { *code = F_buffer_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_buffer_overflow_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_buffer_overflow_s) == F_equal_to) { *code = F_buffer_overflow; return F_none; } - if (fl_string_dynamic_compare(name, f_status_buffer_too_large_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_buffer_too_large_s) == F_equal_to) { *code = F_buffer_too_large; return F_none; } - if (fl_string_dynamic_compare(name, f_status_buffer_too_small_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_buffer_too_small_s) == F_equal_to) { *code = F_buffer_too_small; return F_none; } - if (fl_string_dynamic_compare(name, f_status_buffer_underflow_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_buffer_underflow_s) == F_equal_to) { *code = F_buffer_underflow; return F_none; } - if (fl_string_dynamic_compare(name, f_status_complete_not_utf_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_complete_not_utf_s) == F_equal_to) { *code = F_complete_not_utf; return F_none; } - if (fl_string_dynamic_compare(name, f_status_complete_not_utf_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_complete_not_utf_block_s) == F_equal_to) { *code = F_complete_not_utf_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_complete_not_utf_eoa_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_complete_not_utf_eoa_s) == F_equal_to) { *code = F_complete_not_utf_eoa; return F_none; } - if (fl_string_dynamic_compare(name, f_status_complete_not_utf_eof_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_complete_not_utf_eof_s) == F_equal_to) { *code = F_complete_not_utf_eof; return F_none; } - if (fl_string_dynamic_compare(name, f_status_complete_not_utf_eol_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_complete_not_utf_eol_s) == F_equal_to) { *code = F_complete_not_utf_eol; return F_none; } - if (fl_string_dynamic_compare(name, f_status_complete_not_utf_eos_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_complete_not_utf_eos_s) == F_equal_to) { *code = F_complete_not_utf_eos; return F_none; } - if (fl_string_dynamic_compare(name, f_status_complete_not_utf_stop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_complete_not_utf_stop_s) == F_equal_to) { *code = F_complete_not_utf_stop; return F_none; } - if (fl_string_dynamic_compare(name, f_status_none_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_none_block_s) == F_equal_to) { *code = F_none_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_none_eoa_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_none_eoa_s) == F_equal_to) { *code = F_none_eoa; return F_none; } - if (fl_string_dynamic_compare(name, f_status_none_eof_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_none_eof_s) == F_equal_to) { *code = F_none_eof; return F_none; } - if (fl_string_dynamic_compare(name, f_status_none_eol_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_none_eol_s) == F_equal_to) { *code = F_none_eol; return F_none; } - if (fl_string_dynamic_compare(name, f_status_none_eos_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_none_eos_s) == F_equal_to) { *code = F_none_eos; return F_none; } - if (fl_string_dynamic_compare(name, f_status_none_stop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_none_stop_s) == F_equal_to) { *code = F_none_stop; return F_none; } - if (fl_string_dynamic_compare(name, f_status_data_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_data_s) == F_equal_to) { *code = F_data; return F_none; } - if (fl_string_dynamic_compare(name, f_status_data_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_data_not_s) == F_equal_to) { *code = F_data_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_data_not_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_data_not_block_s) == F_equal_to) { *code = F_data_not_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_data_not_eoa_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_data_not_eoa_s) == F_equal_to) { *code = F_data_not_eoa; return F_none; } - if (fl_string_dynamic_compare(name, f_status_data_not_eof_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_data_not_eof_s) == F_equal_to) { *code = F_data_not_eof; return F_none; } - if (fl_string_dynamic_compare(name, f_status_data_not_eol_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_data_not_eol_s) == F_equal_to) { *code = F_data_not_eol; return F_none; } - if (fl_string_dynamic_compare(name, f_status_data_not_eos_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_data_not_eos_s) == F_equal_to) { *code = F_data_not_eos; return F_none; } - if (fl_string_dynamic_compare(name, f_status_data_not_stop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_data_not_stop_s) == F_equal_to) { *code = F_data_not_stop; return F_none; @@ -2860,133 +2860,133 @@ extern "C" { #endif // _di_f_status_buffer_s_ #ifndef _di_f_status_end_s_ - if (fl_string_dynamic_compare(name, f_status_end_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_s) == F_equal_to) { *code = F_end; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_s) == F_equal_to) { *code = F_end_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_block_s) == F_equal_to) { *code = F_end_not_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_eoa_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_eoa_s) == F_equal_to) { *code = F_end_not_eoa; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_eof_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_eof_s) == F_equal_to) { *code = F_end_not_eof; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_eol_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_eol_s) == F_equal_to) { *code = F_end_not_eol; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_eos_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_eos_s) == F_equal_to) { *code = F_end_not_eos; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_group_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_group_s) == F_equal_to) { *code = F_end_not_group; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_group_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_group_block_s) == F_equal_to) { *code = F_end_not_group_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_group_eoa_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_group_eoa_s) == F_equal_to) { *code = F_end_not_group_eoa; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_group_eof_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_group_eof_s) == F_equal_to) { *code = F_end_not_group_eof; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_group_eol_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_group_eol_s) == F_equal_to) { *code = F_end_not_group_eol; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_group_eos_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_group_eos_s) == F_equal_to) { *code = F_end_not_group_eos; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_group_stop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_group_stop_s) == F_equal_to) { *code = F_end_not_group_stop; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_nest_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_nest_s) == F_equal_to) { *code = F_end_not_nest; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_nest_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_nest_block_s) == F_equal_to) { *code = F_end_not_nest_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_nest_eoa_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_nest_eoa_s) == F_equal_to) { *code = F_end_not_nest_eoa; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_nest_eof_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_nest_eof_s) == F_equal_to) { *code = F_end_not_nest_eof; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_nest_eol_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_nest_eol_s) == F_equal_to) { *code = F_end_not_nest_eol; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_nest_eos_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_nest_eos_s) == F_equal_to) { *code = F_end_not_nest_eos; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_nest_stop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_nest_stop_s) == F_equal_to) { *code = F_end_not_nest_stop; return F_none; } - if (fl_string_dynamic_compare(name, f_status_end_not_stop_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_end_not_stop_s) == F_equal_to) { *code = F_end_not_stop; return F_none; @@ -2994,19 +2994,19 @@ extern "C" { #endif // _di_f_status_end_s_ #ifndef _di_f_status_process_s_ - if (fl_string_dynamic_compare(name, f_status_process_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_process_s) == F_equal_to) { *code = F_process; return F_none; } - if (fl_string_dynamic_compare(name, f_status_process_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_process_not_s) == F_equal_to) { *code = F_process_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_process_too_many_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_process_too_many_s) == F_equal_to) { *code = F_process_too_many; return F_none; @@ -3014,259 +3014,259 @@ extern "C" { #endif // _di_f_status_process_s_ #ifndef _di_f_status_file_s_ - if (fl_string_dynamic_compare(name, f_status_file_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_s) == F_equal_to) { *code = F_file; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_close_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_close_s) == F_equal_to) { *code = F_file_close; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_closed_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_closed_s) == F_equal_to) { *code = F_file_closed; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_descriptor_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_descriptor_s) == F_equal_to) { *code = F_file_descriptor; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_descriptor_max_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_descriptor_max_s) == F_equal_to) { *code = F_file_descriptor_max; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_descriptor_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_descriptor_not_s) == F_equal_to) { *code = F_file_descriptor_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_empty_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_empty_s) == F_equal_to) { *code = F_file_empty; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_flush_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_flush_s) == F_equal_to) { *code = F_file_flush; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_found_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_found_s) == F_equal_to) { *code = F_file_found; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_found_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_found_not_s) == F_equal_to) { *code = F_file_found_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_not_s) == F_equal_to) { *code = F_file_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_open_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_open_s) == F_equal_to) { *code = F_file_open; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_open_max_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_open_max_s) == F_equal_to) { *code = F_file_open_max; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_opened_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_opened_s) == F_equal_to) { *code = F_file_opened; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_overflow_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_overflow_s) == F_equal_to) { *code = F_file_overflow; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_purge_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_purge_s) == F_equal_to) { *code = F_file_purge; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_read_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_read_s) == F_equal_to) { *code = F_file_read; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_reallocation_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_reallocation_s) == F_equal_to) { *code = F_file_reallocation; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_seek_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_seek_s) == F_equal_to) { *code = F_file_seek; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_stat_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_stat_s) == F_equal_to) { *code = F_file_stat; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_synchronize_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_synchronize_s) == F_equal_to) { *code = F_file_synchronize; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_block_s) == F_equal_to) { *code = F_file_type_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_character_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_character_s) == F_equal_to) { *code = F_file_type_character; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_directory_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_directory_s) == F_equal_to) { *code = F_file_type_directory; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_fifo_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_fifo_s) == F_equal_to) { *code = F_file_type_fifo; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_link_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_link_s) == F_equal_to) { *code = F_file_type_link; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_not_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_not_block_s) == F_equal_to) { *code = F_file_type_not_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_not_character_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_not_character_s) == F_equal_to) { *code = F_file_type_not_character; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_not_directory_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_not_directory_s) == F_equal_to) { *code = F_file_type_not_directory; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_not_fifo_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_not_fifo_s) == F_equal_to) { *code = F_file_type_not_fifo; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_not_link_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_not_link_s) == F_equal_to) { *code = F_file_type_not_link; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_not_pipe_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_not_pipe_s) == F_equal_to) { *code = F_file_type_not_pipe; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_not_regular_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_not_regular_s) == F_equal_to) { *code = F_file_type_not_regular; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_not_socket_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_not_socket_s) == F_equal_to) { *code = F_file_type_not_socket; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_not_unknown_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_not_unknown_s) == F_equal_to) { *code = F_file_type_not_unknown; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_pipe_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_pipe_s) == F_equal_to) { *code = F_file_type_pipe; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_regular_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_regular_s) == F_equal_to) { *code = F_file_type_regular; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_socket_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_socket_s) == F_equal_to) { *code = F_file_type_socket; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_type_unknown_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_type_unknown_s) == F_equal_to) { *code = F_file_type_unknown; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_underflow_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_underflow_s) == F_equal_to) { *code = F_file_underflow; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_utf_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_utf_s) == F_equal_to) { *code = F_file_utf; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_utf_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_utf_not_s) == F_equal_to) { *code = F_file_utf_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_file_write_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_file_write_s) == F_equal_to) { *code = F_file_write; return F_none; @@ -3274,25 +3274,25 @@ extern "C" { #endif // _di_f_status_file_s_ #ifndef _di_f_status_filesystem_s_ - if (fl_string_dynamic_compare(name, f_status_filesystem_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_filesystem_s) == F_equal_to) { *code = F_filesystem; return F_none; } - if (fl_string_dynamic_compare(name, f_status_filesystem_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_filesystem_not_s) == F_equal_to) { *code = F_filesystem_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_filesystem_quota_block_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_filesystem_quota_block_s) == F_equal_to) { *code = F_filesystem_quota_block; return F_none; } - if (fl_string_dynamic_compare(name, f_status_filesystem_quota_reached_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_filesystem_quota_reached_s) == F_equal_to) { *code = F_filesystem_quota_reached; return F_none; @@ -3300,121 +3300,121 @@ extern "C" { #endif // _di_f_status_filesystem_s_ #ifndef _di_f_status_directory_s_ - if (fl_string_dynamic_compare(name, f_status_directory_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_s) == F_equal_to) { *code = F_directory; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_close_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_close_s) == F_equal_to) { *code = F_directory_close; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_closed_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_closed_s) == F_equal_to) { *code = F_directory_closed; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_descriptor_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_descriptor_s) == F_equal_to) { *code = F_directory_descriptor; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_empty_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_empty_s) == F_equal_to) { *code = F_directory_empty; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_empty_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_empty_not_s) == F_equal_to) { *code = F_directory_empty_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_found_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_found_s) == F_equal_to) { *code = F_directory_found; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_found_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_found_not_s) == F_equal_to) { *code = F_directory_found_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_flush_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_flush_s) == F_equal_to) { *code = F_directory_flush; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_link_max_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_link_max_s) == F_equal_to) { *code = F_directory_link_max; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_not_s) == F_equal_to) { *code = F_directory_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_open_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_open_s) == F_equal_to) { *code = F_directory_open; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_purge_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_purge_s) == F_equal_to) { *code = F_directory_purge; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_read_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_read_s) == F_equal_to) { *code = F_directory_read; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_stream_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_stream_s) == F_equal_to) { *code = F_directory_stream; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_support_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_support_not_s) == F_equal_to) { *code = F_directory_support_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_synchronize_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_synchronize_s) == F_equal_to) { *code = F_directory_synchronize; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_utf_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_utf_s) == F_equal_to) { *code = F_directory_utf; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_utf_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_utf_not_s) == F_equal_to) { *code = F_directory_utf_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_directory_write_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_directory_write_s) == F_equal_to) { *code = F_directory_write; return F_none; @@ -3422,37 +3422,37 @@ extern "C" { #endif // _di_f_status_directory_s_ #ifndef _di_f_status_socket_s_ - if (fl_string_dynamic_compare(name, f_status_socket_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_socket_s) == F_equal_to) { *code = F_socket; return F_none; } - if (fl_string_dynamic_compare(name, f_status_socket_client_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_socket_client_s) == F_equal_to) { *code = F_socket_client; return F_none; } - if (fl_string_dynamic_compare(name, f_status_socket_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_socket_not_s) == F_equal_to) { *code = F_socket_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_socket_receive_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_socket_receive_s) == F_equal_to) { *code = F_socket_receive; return F_none; } - if (fl_string_dynamic_compare(name, f_status_socket_send_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_socket_send_s) == F_equal_to) { *code = F_socket_send; return F_none; } - if (fl_string_dynamic_compare(name, f_status_socket_target_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_socket_target_s) == F_equal_to) { *code = F_socket_target; return F_none; @@ -3460,25 +3460,25 @@ extern "C" { #endif // _di_f_status_socket_s_ #ifndef _di_f_status_compare_s_ - if (fl_string_dynamic_compare(name, f_status_equal_to_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_equal_to_s) == F_equal_to) { *code = F_equal_to; return F_none; } - if (fl_string_dynamic_compare(name, f_status_equal_to_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_equal_to_not_s) == F_equal_to) { *code = F_equal_to_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_than_greater_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_than_greater_s) == F_equal_to) { *code = F_than_greater; return F_none; } - if (fl_string_dynamic_compare(name, f_status_than_less_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_than_less_s) == F_equal_to) { *code = F_than_less; return F_none; @@ -3486,145 +3486,145 @@ extern "C" { #endif // _di_f_status_compare_s_ #ifndef _di_f_status_access_s_ - if (fl_string_dynamic_compare(name, f_status_access_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_s) == F_equal_to) { *code = F_access; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_denied_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_denied_s) == F_equal_to) { *code = F_access_denied; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_denied_user_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_denied_user_s) == F_equal_to) { *code = F_access_denied_user; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_denied_group_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_denied_group_s) == F_equal_to) { *code = F_access_denied_group; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_denied_world_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_denied_world_s) == F_equal_to) { *code = F_access_denied_world; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_denied_read_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_denied_read_s) == F_equal_to) { *code = F_access_denied_read; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_denied_write_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_denied_write_s) == F_equal_to) { *code = F_access_denied_write; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_denied_execute_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_denied_execute_s) == F_equal_to) { *code = F_access_denied_execute; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_denied_super_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_denied_super_s) == F_equal_to) { *code = F_access_denied_super; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_s) == F_equal_to) { *code = F_access_granted; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_user_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_user_s) == F_equal_to) { *code = F_access_granted_user; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_group_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_group_s) == F_equal_to) { *code = F_access_granted_group; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_world_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_world_s) == F_equal_to) { *code = F_access_granted_world; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_read_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_read_s) == F_equal_to) { *code = F_access_granted_read; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_write_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_write_s) == F_equal_to) { *code = F_access_granted_write; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_execute_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_execute_s) == F_equal_to) { *code = F_access_granted_execute; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_group_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_group_s) == F_equal_to) { *code = F_access_granted_group; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_read_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_read_s) == F_equal_to) { *code = F_access_granted_read; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_super_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_super_s) == F_equal_to) { *code = F_access_granted_super; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_granted_user_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_granted_user_s) == F_equal_to) { *code = F_access_granted_user; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_group_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_group_s) == F_equal_to) { *code = F_access_group; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_mode_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_mode_s) == F_equal_to) { *code = F_access_mode; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_not_s) == F_equal_to) { *code = F_access_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_access_owner_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_access_owner_s) == F_equal_to) { *code = F_access_owner; return F_none; @@ -3632,68 +3632,68 @@ extern "C" { #endif // _di_f_status_access_s_ #ifndef _di_f_status_terminal_s_ - if (fl_string_dynamic_compare(name, f_status_terminal_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_s) == F_equal_to) { *code = F_terminal; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminal_access_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_access_s) == F_equal_to) { *code = F_terminal_access; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminal_known_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_known_s) == F_equal_to) { *code = F_terminal_known; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminal_known_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_known_not_s) == F_equal_to) { *code = F_terminal_known_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminal_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_not_s) == F_equal_to) { *code = F_terminal_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminal_prohibited_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_prohibited_s) == F_equal_to) { *code = F_terminal_prohibited; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminal_read_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_read_s) == F_equal_to) { *code = F_terminal_read; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminal_valid_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_valid_s) == F_equal_to) { *code = F_terminal_valid; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminal_valid_not_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_valid_not_s) == F_equal_to) { *code = F_terminal_valid_not; return F_none; } - if (fl_string_dynamic_compare(name, f_status_terminal_write_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_terminal_write_s) == F_equal_to) { *code = F_terminal_write; return F_none; } #endif // _di_f_status_terminal_s_ - if (fl_string_dynamic_compare(name, f_status_status_code_last_s) == F_equal_to) { + if (f_compare_dynamic(name, f_status_status_code_last_s) == F_equal_to) { *code = F_status_code_last; return F_none; diff --git a/level_2/fll_status_string/c/status_string.h b/level_2/fll_status_string/c/status_string.h index 13293d1..87a3c1b 100644 --- a/level_2/fll_status_string/c/status_string.h +++ b/level_2/fll_status_string/c/status_string.h @@ -16,12 +16,11 @@ #include #include #include +#include #include +#include #include -// FLL-1 includes. -#include - #ifdef __cplusplus extern "C" { #endif diff --git a/level_2/fll_status_string/data/build/dependencies b/level_2/fll_status_string/data/build/dependencies index 524d951..06e84ce 100644 --- a/level_2/fll_status_string/data/build/dependencies +++ b/level_2/fll_status_string/data/build/dependencies @@ -5,6 +5,7 @@ f_status f_memory f_string f_utf +f_compare f_conversion +f_parse f_status_string -fl_string diff --git a/level_2/fll_status_string/data/build/settings b/level_2/fll_status_string/data/build/settings index d3970d4..1411f15 100644 --- a/level_2/fll_status_string/data/build/settings +++ b/level_2/fll_status_string/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfl_string -lf_conversion -lf_memory -lf_status_string -lf_string -lf_utf +build_libraries-individual -lf_compare -lf_conversion -lf_parse -lf_memory -lf_status_string -lf_string -lf_utf build_sources_library status_string.c diff --git a/level_2/fll_status_string/data/build/settings-tests b/level_2/fll_status_string/data/build/settings-tests index 7ddb2d2..b2b0120 100644 --- a/level_2/fll_status_string/data/build/settings-tests +++ b/level_2/fll_status_string/data/build/settings-tests @@ -23,7 +23,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lcmocka -build_libraries-individual -lfl_string -lf_conversion -lf_memory -lf_status_string -lf_string -lf_utf -lfll_status_string +build_libraries-individual -lf_compare -lf_conversion -lf_memory -lf_parse -lf_status_string -lf_string -lf_utf -lfll_status_string build_sources_program test-status_string-from.c build_sources_program test-status_string.c diff --git a/level_3/byte_dump/c/byte_dump.h b/level_3/byte_dump/c/byte_dump.h index 272924c..cc2fc2f 100644 --- a/level_3/byte_dump/c/byte_dump.h +++ b/level_3/byte_dump/c/byte_dump.h @@ -28,17 +28,18 @@ #include #include #include +#include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include -#include #include // FLL-2 includes. diff --git a/level_3/byte_dump/data/build/dependencies b/level_3/byte_dump/data/build/dependencies index 6e53394..9b67302 100644 --- a/level_3/byte_dump/data/build/dependencies +++ b/level_3/byte_dump/data/build/dependencies @@ -12,11 +12,11 @@ f_conversion f_file f_pipe f_print +f_rip f_signal fl_conversion fl_print -fl_string fll_error fll_print diff --git a/level_3/byte_dump/data/build/settings b/level_3/byte_dump/data/build/settings index de67e8a..c5d010d 100644 --- a/level_3/byte_dump/data/build/settings +++ b/level_3/byte_dump/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_conversion -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_memory -lf_pipe -lf_print -lf_signal -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_conversion -lfl_print -lf_color -lf_console -lf_conversion -lf_file -lf_memory -lf_pipe -lf_print -lf_rip -lf_signal -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/control/c/common.c b/level_3/control/c/common.c index b64d50c..3195abb 100644 --- a/level_3/control/c/common.c +++ b/level_3/control/c/common.c @@ -29,55 +29,55 @@ extern "C" { #ifndef _di_control_action_type_identify_ uint8_t control_action_type_identify(const f_string_static_t action) { - if (fl_string_dynamic_compare(action, control_freeze_s) == F_equal_to) { + if (f_compare_dynamic(action, control_freeze_s) == F_equal_to) { return control_action_type_freeze_e; } - if (fl_string_dynamic_compare(action, control_kexec_s) == F_equal_to) { + if (f_compare_dynamic(action, control_kexec_s) == F_equal_to) { return control_action_type_kexec_e; } - if (fl_string_dynamic_compare(action, control_kill_s) == F_equal_to) { + if (f_compare_dynamic(action, control_kill_s) == F_equal_to) { return control_action_type_kill_e; } - if (fl_string_dynamic_compare(action, control_pause_s) == F_equal_to) { + if (f_compare_dynamic(action, control_pause_s) == F_equal_to) { return control_action_type_pause_e; } - if (fl_string_dynamic_compare(action, control_reboot_s) == F_equal_to) { + if (f_compare_dynamic(action, control_reboot_s) == F_equal_to) { return control_action_type_reboot_e; } - if (fl_string_dynamic_compare(action, control_reload_s) == F_equal_to) { + if (f_compare_dynamic(action, control_reload_s) == F_equal_to) { return control_action_type_reload_e; } - if (fl_string_dynamic_compare(action, control_rerun_s) == F_equal_to) { + if (f_compare_dynamic(action, control_rerun_s) == F_equal_to) { return control_action_type_rerun_e; } - if (fl_string_dynamic_compare(action, control_restart_s) == F_equal_to) { + if (f_compare_dynamic(action, control_restart_s) == F_equal_to) { return control_action_type_restart_e; } - if (fl_string_dynamic_compare(action, control_resume_s) == F_equal_to) { + if (f_compare_dynamic(action, control_resume_s) == F_equal_to) { return control_action_type_resume_e; } - if (fl_string_dynamic_compare(action, control_shutdown_s) == F_equal_to) { + if (f_compare_dynamic(action, control_shutdown_s) == F_equal_to) { return control_action_type_shutdown_e; } - if (fl_string_dynamic_compare(action, control_start_s) == F_equal_to) { + if (f_compare_dynamic(action, control_start_s) == F_equal_to) { return control_action_type_start_e; } - if (fl_string_dynamic_compare(action, control_stop_s) == F_equal_to) { + if (f_compare_dynamic(action, control_stop_s) == F_equal_to) { return control_action_type_stop_e; } - if (fl_string_dynamic_compare(action, control_thaw_s) == F_equal_to) { + if (f_compare_dynamic(action, control_thaw_s) == F_equal_to) { return control_action_type_thaw_e; } @@ -136,15 +136,15 @@ extern "C" { #ifndef _di_control_payload_type_identify_ uint8_t control_payload_type_identify(const f_string_static_t payload) { - if (fl_string_dynamic_compare(payload, control_controller_s) == F_equal_to) { + if (f_compare_dynamic(payload, control_controller_s) == F_equal_to) { return control_payload_type_controller_e; } - if (fl_string_dynamic_compare(payload, control_error_s) == F_equal_to) { + if (f_compare_dynamic(payload, control_error_s) == F_equal_to) { return control_payload_type_error_e; } - if (fl_string_dynamic_compare(payload, control_init_s) == F_equal_to) { + if (f_compare_dynamic(payload, control_init_s) == F_equal_to) { return control_payload_type_init_e; } diff --git a/level_3/control/c/control.h b/level_3/control/c/control.h index 0c6407b..19c7fff 100644 --- a/level_3/control/c/control.h +++ b/level_3/control/c/control.h @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -31,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -39,7 +41,6 @@ #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/control/c/private-control.c b/level_3/control/c/private-control.c index 4cb5bce..b4ff763 100644 --- a/level_3/control/c/private-control.c +++ b/level_3/control/c/private-control.c @@ -28,7 +28,7 @@ extern "C" { } if (main->parameters.remaining.used > 3) { - if (fl_string_dynamic_compare(control_at_s, data->argv[main->parameters.remaining.array[3]]) == F_equal_to) { + if (f_compare_dynamic(control_at_s, data->argv[main->parameters.remaining.array[3]]) == F_equal_to) { if (main->parameters.remaining.used < 5) { control_print_error_parameter_action_rule_too_few_with(main, data->argv[main->parameters.remaining.array[0]], control_at_s); @@ -41,14 +41,14 @@ extern "C" { return F_status_set_error(F_parameter); } } - else if (fl_string_dynamic_compare(control_in_s, data->argv[main->parameters.remaining.array[3]]) == F_equal_to) { + else if (f_compare_dynamic(control_in_s, data->argv[main->parameters.remaining.array[3]]) == F_equal_to) { if (main->parameters.remaining.used < 6) { control_print_error_parameter_action_rule_too_few_with(main, data->argv[main->parameters.remaining.array[0]], control_in_s); return F_status_set_error(F_parameter); } } - else if (fl_string_dynamic_compare(control_now_s, data->argv[main->parameters.remaining.array[3]]) == F_equal_to) { + else if (f_compare_dynamic(control_now_s, data->argv[main->parameters.remaining.array[3]]) == F_equal_to) { if (main->parameters.remaining.used > 4) { control_print_error_parameter_action_rule_too_many_with(main, data->argv[main->parameters.remaining.array[0]], control_now_s); @@ -92,7 +92,7 @@ extern "C" { return F_status_set_error(F_parameter); } - if (fl_string_dynamic_compare(control_at_s, data->argv[main->parameters.remaining.array[1]]) == F_equal_to) { + if (f_compare_dynamic(control_at_s, data->argv[main->parameters.remaining.array[1]]) == F_equal_to) { if (main->parameters.remaining.used < 3) { control_print_error_parameter_action_rule_too_few_with(main, data->argv[main->parameters.remaining.array[0]], control_at_s); @@ -105,14 +105,14 @@ extern "C" { return F_status_set_error(F_parameter); } } - else if (fl_string_dynamic_compare(control_in_s, data->argv[main->parameters.remaining.array[1]]) == F_equal_to) { + else if (f_compare_dynamic(control_in_s, data->argv[main->parameters.remaining.array[1]]) == F_equal_to) { if (main->parameters.remaining.used < 4) { control_print_error_parameter_action_rule_too_few_with(main, data->argv[main->parameters.remaining.array[0]], control_in_s); return F_status_set_error(F_parameter); } } - else if (fl_string_dynamic_compare(control_now_s, data->argv[main->parameters.remaining.array[1]]) == F_equal_to) { + else if (f_compare_dynamic(control_now_s, data->argv[main->parameters.remaining.array[1]]) == F_equal_to) { if (main->parameters.remaining.used > 2) { control_print_error_parameter_action_rule_too_many_with(main, data->argv[main->parameters.remaining.array[0]], control_now_s); @@ -349,7 +349,7 @@ extern "C" { for (; i < data->cache.packet_objects.used; ++i) { - if (fl_string_dynamic_partial_compare_string(f_fss_header_s.string, data->cache.large, f_fss_header_s.used, data->cache.packet_objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(f_fss_header_s.string, data->cache.large, f_fss_header_s.used, data->cache.packet_objects.array[i]) == F_equal_to) { // The FSS-000E (Payload) standard does not prohibit multiple "header", but such cases are not supported by the controller and the control programs. if (content_header) { @@ -360,7 +360,7 @@ extern "C" { content_header = &data->cache.packet_contents.array[i]; } - else if (fl_string_dynamic_partial_compare_string(f_fss_payload_s.string, data->cache.large, f_fss_payload_s.used, data->cache.packet_objects.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(f_fss_payload_s.string, data->cache.large, f_fss_payload_s.used, data->cache.packet_objects.array[i]) == F_equal_to) { // Only a single "payload" is supported by the FSS-000E (Payload) standard. if (content_payload) { @@ -429,7 +429,7 @@ extern "C" { for (i = 0; i < data->cache.header_objects.used; ++i) { - if (fl_string_dynamic_partial_compare_string(control_action_s.string, data->cache.large, control_action_s.used, data->cache.header_objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(control_action_s.string, data->cache.large, control_action_s.used, data->cache.header_objects.array[i]) == F_equal_to) { if (!(found & 0x1)) { const f_array_length_t action_length = (data->cache.header_contents.array[i].array[0].stop - data->cache.header_contents.array[i].array[0].start) + 1; char action_string[action_length + 1]; @@ -454,7 +454,7 @@ extern "C" { control_print_warning_packet_header_duplicate_object(main, control_action_s); } } - else if (fl_string_dynamic_partial_compare_string(control_length_s.string, data->cache.large, control_length_s.used, data->cache.header_objects.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(control_length_s.string, data->cache.large, control_length_s.used, data->cache.header_objects.array[i]) == F_equal_to) { if (!(found & 0x2)) { found |= 0x2; number = 0; @@ -481,7 +481,7 @@ extern "C" { control_print_warning_packet_header_duplicate_object(main, control_length_s); } } - else if (fl_string_dynamic_partial_compare_string(control_status_s.string, data->cache.large, control_status_s.used, data->cache.header_objects.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(control_status_s.string, data->cache.large, control_status_s.used, data->cache.header_objects.array[i]) == F_equal_to) { if (!(found & 0x4)) { found |= 0x4; number = 0; @@ -530,16 +530,16 @@ extern "C" { control_print_warning_packet_header_duplicate_object(main, control_length_s); } } - else if (fl_string_dynamic_partial_compare_string(control_type_s.string, data->cache.large, control_type_s.used, data->cache.header_objects.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(control_type_s.string, data->cache.large, control_type_s.used, data->cache.header_objects.array[i]) == F_equal_to) { if (!(found & 0x8)) { found |= 0x8; control_print_debug_packet_header_object_and_content(main, control_type_s, data->cache.large, data->cache.header_contents.array[i].array[0]); - if (fl_string_dynamic_partial_compare_string(control_controller_s.string, data->cache.large, control_controller_s.used, data->cache.header_contents.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(control_controller_s.string, data->cache.large, control_controller_s.used, data->cache.header_contents.array[i].array[0]) == F_equal_to) { header->type = control_payload_type_controller_e; } - else if (fl_string_dynamic_partial_compare_string(control_error_s.string, data->cache.large, control_error_s.used, data->cache.header_contents.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(control_error_s.string, data->cache.large, control_error_s.used, data->cache.header_contents.array[i].array[0]) == F_equal_to) { header->type = control_payload_type_error_e; } else { @@ -694,7 +694,7 @@ extern "C" { range.stop = parameter_names[j].used - 1; - if (fl_string_dynamic_partial_compare(parameter_names[j], data->cache.large, range, objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial(parameter_names[j], data->cache.large, range, objects.array[i]) == F_equal_to) { parameter_hass[j] = F_true; parameter_ats[j] = i; diff --git a/level_3/control/data/build/dependencies b/level_3/control/data/build/dependencies index 4c3de22..ec285bb 100644 --- a/level_3/control/data/build/dependencies +++ b/level_3/control/data/build/dependencies @@ -7,19 +7,21 @@ f_type_array f_string f_utf f_color +f_compare f_console f_file f_fss +f_parse f_path f_pipe f_print +f_rip f_signal f_socket f_status_string fl_fss fl_print -fl_string fll_error fll_fss diff --git a/level_3/control/data/build/settings b/level_3/control/data/build/settings index 4d6d757..9cb90d7 100644 --- a/level_3/control/data/build/settings +++ b/level_3/control/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_fss -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_socket -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_fss -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_socket -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/controller/c/common.c b/level_3/controller/c/common.c index 177abe8..cd393f3 100644 --- a/level_3/controller/c/common.c +++ b/level_3/controller/c/common.c @@ -36,15 +36,15 @@ extern "C" { #ifndef _di_controller_control_payload_type_identify_ uint8_t controller_control_payload_type_identify(const f_string_static_t payload) { - if (fl_string_dynamic_compare(payload, controller_controller_s) == F_equal_to) { + if (f_compare_dynamic(payload, controller_controller_s) == F_equal_to) { return controller_control_payload_type_controller_e; } - if (fl_string_dynamic_compare(payload, controller_error_s) == F_equal_to) { + if (f_compare_dynamic(payload, controller_error_s) == F_equal_to) { return controller_control_payload_type_error_e; } - if (fl_string_dynamic_compare(payload, controller_init_s) == F_equal_to) { + if (f_compare_dynamic(payload, controller_init_s) == F_equal_to) { return controller_control_payload_type_init_e; } @@ -73,75 +73,75 @@ extern "C" { #ifndef _di_controller_entry_action_type_identify_ uint8_t controller_entry_action_type_identify(const f_string_static_t action) { - if (fl_string_dynamic_compare(action, controller_consider_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_consider_s) == F_equal_to) { return controller_entry_action_type_consider_e; } - if (fl_string_dynamic_compare(action, controller_execute_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_execute_s) == F_equal_to) { return controller_entry_action_type_execute_e; } - if (fl_string_dynamic_compare(action, controller_failsafe_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_failsafe_s) == F_equal_to) { return controller_entry_action_type_failsafe_e; } - if (fl_string_dynamic_compare(action, controller_freeze_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_freeze_s) == F_equal_to) { return controller_entry_action_type_freeze_e; } - if (fl_string_dynamic_compare(action, controller_item_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_item_s) == F_equal_to) { return controller_entry_action_type_item_e; } - if (fl_string_dynamic_compare(action, controller_kexec_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_kexec_s) == F_equal_to) { return controller_entry_action_type_kexec_e; } - if (fl_string_dynamic_compare(action, controller_kill_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_kill_s) == F_equal_to) { return controller_entry_action_type_kill_e; } - if (fl_string_dynamic_compare(action, controller_pause_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_pause_s) == F_equal_to) { return controller_entry_action_type_pause_e; } - if (fl_string_dynamic_compare(action, controller_ready_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_ready_s) == F_equal_to) { return controller_entry_action_type_ready_e; } - if (fl_string_dynamic_compare(action, controller_reboot_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_reboot_s) == F_equal_to) { return controller_entry_action_type_reboot_e; } - if (fl_string_dynamic_compare(action, controller_reload_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_reload_s) == F_equal_to) { return controller_entry_action_type_reload_e; } - if (fl_string_dynamic_compare(action, controller_restart_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_restart_s) == F_equal_to) { return controller_entry_action_type_restart_e; } - if (fl_string_dynamic_compare(action, controller_resume_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_resume_s) == F_equal_to) { return controller_entry_action_type_resume_e; } - if (fl_string_dynamic_compare(action, controller_shutdown_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_shutdown_s) == F_equal_to) { return controller_entry_action_type_shutdown_e; } - if (fl_string_dynamic_compare(action, controller_start_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_start_s) == F_equal_to) { return controller_entry_action_type_start_e; } - if (fl_string_dynamic_compare(action, controller_stop_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_stop_s) == F_equal_to) { return controller_entry_action_type_stop_e; } - if (fl_string_dynamic_compare(action, controller_thaw_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_thaw_s) == F_equal_to) { return controller_entry_action_type_thaw_e; } - if (fl_string_dynamic_compare(action, controller_timeout_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_timeout_s) == F_equal_to) { return controller_entry_action_type_timeout_e; } @@ -229,63 +229,63 @@ extern "C" { #ifndef _di_controller_rule_action_type_identify_ uint8_t controller_rule_action_type_identify(const f_string_static_t action) { - if (fl_string_dynamic_compare(action, controller_freeze_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_freeze_s) == F_equal_to) { return controller_rule_action_type_freeze_e; } - if (fl_string_dynamic_compare(action, controller_group_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_group_s) == F_equal_to) { return controller_rule_action_type_group_e; } - if (fl_string_dynamic_compare(action, controller_kill_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_kill_s) == F_equal_to) { return controller_rule_action_type_kill_e; } - if (fl_string_dynamic_compare(action, controller_pause_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_pause_s) == F_equal_to) { return controller_rule_action_type_pause_e; } - if (fl_string_dynamic_compare(action, controller_pid_file_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_pid_file_s) == F_equal_to) { return controller_rule_action_type_pid_file_e; } - if (fl_string_dynamic_compare(action, controller_reload_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_reload_s) == F_equal_to) { return controller_rule_action_type_reload_e; } - if (fl_string_dynamic_compare(action, controller_rerun_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_rerun_s) == F_equal_to) { return controller_rule_action_type_rerun_e; } - if (fl_string_dynamic_compare(action, controller_restart_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_restart_s) == F_equal_to) { return controller_rule_action_type_restart_e; } - if (fl_string_dynamic_compare(action, controller_resume_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_resume_s) == F_equal_to) { return controller_rule_action_type_resume_e; } - if (fl_string_dynamic_compare(action, controller_start_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_start_s) == F_equal_to) { return controller_rule_action_type_start_e; } - if (fl_string_dynamic_compare(action, controller_stop_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_stop_s) == F_equal_to) { return controller_rule_action_type_stop_e; } - if (fl_string_dynamic_compare(action, controller_start_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_start_s) == F_equal_to) { return controller_rule_action_type_start_e; } - if (fl_string_dynamic_compare(action, controller_thaw_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_thaw_s) == F_equal_to) { return controller_rule_action_type_thaw_e; } - if (fl_string_dynamic_compare(action, controller_user_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_user_s) == F_equal_to) { return controller_rule_action_type_user_e; } - if (fl_string_dynamic_compare(action, controller_with_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_with_s) == F_equal_to) { return controller_rule_action_type_with_e; } @@ -347,39 +347,39 @@ extern "C" { #ifndef _di_controller_rule_action_execute_type_identify_ uint8_t controller_rule_action_execute_type_identify(const f_string_static_t action) { - if (fl_string_dynamic_compare(action, controller_freeze_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_freeze_s) == F_equal_to) { return controller_rule_action_execute_type_freeze_e; } - if (fl_string_dynamic_compare(action, controller_kill_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_kill_s) == F_equal_to) { return controller_rule_action_execute_type_kill_e; } - if (fl_string_dynamic_compare(action, controller_pause_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_pause_s) == F_equal_to) { return controller_rule_action_execute_type_pause_e; } - if (fl_string_dynamic_compare(action, controller_reload_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_reload_s) == F_equal_to) { return controller_rule_action_execute_type_reload_e; } - if (fl_string_dynamic_compare(action, controller_restart_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_restart_s) == F_equal_to) { return controller_rule_action_execute_type_restart_e; } - if (fl_string_dynamic_compare(action, controller_resume_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_resume_s) == F_equal_to) { return controller_rule_action_execute_type_resume_e; } - if (fl_string_dynamic_compare(action, controller_start_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_start_s) == F_equal_to) { return controller_rule_action_execute_type_start_e; } - if (fl_string_dynamic_compare(action, controller_stop_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_stop_s) == F_equal_to) { return controller_rule_action_execute_type_stop_e; } - if (fl_string_dynamic_compare(action, controller_thaw_s) == F_equal_to) { + if (f_compare_dynamic(action, controller_thaw_s) == F_equal_to) { return controller_rule_action_execute_type_thaw_e; } @@ -426,23 +426,23 @@ extern "C" { #ifndef _di_controller_rule_item_type_identify_ uint8_t controller_rule_item_type_identify(const f_string_static_t item) { - if (fl_string_dynamic_compare(item, controller_command_s) == F_equal_to) { + if (f_compare_dynamic(item, controller_command_s) == F_equal_to) { return controller_rule_item_type_command_e; } - if (fl_string_dynamic_compare(item, controller_script_s) == F_equal_to) { + if (f_compare_dynamic(item, controller_script_s) == F_equal_to) { return controller_rule_item_type_script_e; } - if (fl_string_dynamic_compare(item, controller_service_s) == F_equal_to) { + if (f_compare_dynamic(item, controller_service_s) == F_equal_to) { return controller_rule_item_type_service_e; } - if (fl_string_dynamic_compare(item, controller_settings_s) == F_equal_to) { + if (f_compare_dynamic(item, controller_settings_s) == F_equal_to) { return controller_rule_item_type_settings_e; } - if (fl_string_dynamic_compare(item, controller_utility_s) == F_equal_to) { + if (f_compare_dynamic(item, controller_utility_s) == F_equal_to) { return controller_rule_item_type_utility_e; } @@ -477,67 +477,67 @@ extern "C" { #ifndef _di_controller_rule_setting_limit_type_identify_ uint8_t controller_rule_setting_limit_type_identify(const f_string_static_t limit) { - if (fl_string_dynamic_compare(limit, controller_as_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_as_s) == F_equal_to) { return controller_resource_limit_type_as_e; } - if (fl_string_dynamic_compare(limit, controller_core_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_core_s) == F_equal_to) { return controller_resource_limit_type_core_e; } - if (fl_string_dynamic_compare(limit, controller_cpu_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_cpu_s) == F_equal_to) { return controller_resource_limit_type_cpu_e; } - if (fl_string_dynamic_compare(limit, controller_data_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_data_s) == F_equal_to) { return controller_resource_limit_type_data_e; } - if (fl_string_dynamic_compare(limit, controller_fsize_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_fsize_s) == F_equal_to) { return controller_resource_limit_type_fsize_e; } - if (fl_string_dynamic_compare(limit, controller_locks_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_locks_s) == F_equal_to) { return controller_resource_limit_type_locks_e; } - if (fl_string_dynamic_compare(limit, controller_memlock_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_memlock_s) == F_equal_to) { return controller_resource_limit_type_memlock_e; } - if (fl_string_dynamic_compare(limit, controller_msgqueue_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_msgqueue_s) == F_equal_to) { return controller_resource_limit_type_msgqueue_e; } - if (fl_string_dynamic_compare(limit, controller_nice_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_nice_s) == F_equal_to) { return controller_resource_limit_type_nice_e; } - if (fl_string_dynamic_compare(limit, controller_nofile_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_nofile_s) == F_equal_to) { return controller_resource_limit_type_nofile_e; } - if (fl_string_dynamic_compare(limit, controller_nproc_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_nproc_s) == F_equal_to) { return controller_resource_limit_type_nproc_e; } - if (fl_string_dynamic_compare(limit, controller_rss_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_rss_s) == F_equal_to) { return controller_resource_limit_type_rss_e; } - if (fl_string_dynamic_compare(limit, controller_rtprio_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_rtprio_s) == F_equal_to) { return controller_resource_limit_type_rtprio_e; } - if (fl_string_dynamic_compare(limit, controller_rttime_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_rttime_s) == F_equal_to) { return controller_resource_limit_type_rttime_e; } - if (fl_string_dynamic_compare(limit, controller_sigpending_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_sigpending_s) == F_equal_to) { return controller_resource_limit_type_sigpending_e; } - if (fl_string_dynamic_compare(limit, controller_stack_s) == F_equal_to) { + if (f_compare_dynamic(limit, controller_stack_s) == F_equal_to) { return controller_resource_limit_type_stack_e; } diff --git a/level_3/controller/c/controller.h b/level_3/controller/c/controller.h index 12b3f19..0faa89f 100644 --- a/level_3/controller/c/controller.h +++ b/level_3/controller/c/controller.h @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -50,6 +51,7 @@ #include #include #include +#include #include #include #include @@ -61,7 +63,6 @@ #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/controller/c/controller/private-controller.c b/level_3/controller/c/controller/private-controller.c index 18946da..0936fb4 100644 --- a/level_3/controller/c/controller/private-controller.c +++ b/level_3/controller/c/controller/private-controller.c @@ -305,7 +305,7 @@ extern "C" { if (F_status_set_fine(status) == F_number) { cache->action.generic.used = 0; - status = fl_string_dynamic_partial_rip_nulless(buffer, range, &cache->action.generic); + status = f_rip_dynamic_partial_nulless(buffer, range, &cache->action.generic); if (F_status_is_error(status)) return status; status = f_account_id_by_name(cache->action.generic, id); @@ -340,7 +340,7 @@ extern "C" { if (F_status_set_fine(status) == F_number) { cache->action.generic.used = 0; - status = fl_string_dynamic_partial_rip_nulless(buffer, range, &cache->action.generic); + status = f_rip_dynamic_partial_nulless(buffer, range, &cache->action.generic); if (F_status_is_error(status)) return status; status = f_account_group_id_by_name(cache->action.generic, id); @@ -375,7 +375,7 @@ extern "C" { if (destination->used >= setting->path_current.used) { const f_string_range_t range = macro_f_string_range_t_initialize2(setting->path_current.used); - if (fl_string_dynamic_partial_compare_string(destination->string, setting->path_current, destination->used, range) == F_equal_to) { + if (f_compare_dynamic_partial_string(destination->string, setting->path_current, destination->used, range) == F_equal_to) { f_array_length_t length = destination->used - setting->path_current.used; if (length) { diff --git a/level_3/controller/c/controller/private-controller.h b/level_3/controller/c/controller/private-controller.h index 84bbd72..7004d4a 100644 --- a/level_3/controller/c/controller/private-controller.h +++ b/level_3/controller/c/controller/private-controller.h @@ -158,11 +158,11 @@ extern "C" { * * Errors (with error bit) from: f_account_id_by_name(). * Errors (with error bit) from: fl_conversion_dynamic_partial_to_unsigned_detect(). - * Errors (with error bit) from: fl_string_dynamic_partial_rip_nulless(). + * Errors (with error bit) from: f_rip_dynamic_partial_nulless(). * * @see f_account_id_by_name() * @see fl_conversion_dynamic_partial_to_unsigned_detect() - * @see fl_string_dynamic_partial_rip_nulless() + * @see f_rip_dynamic_partial_nulless() */ #ifndef _di_controller_get_id_user_ f_status_t controller_get_id_user(const f_string_static_t buffer, const f_string_range_t range, controller_cache_t * const cache, uid_t * const id) F_attribute_visibility_internal_d; @@ -187,11 +187,11 @@ extern "C" { * * Errors (with error bit) from: f_account_group_id_by_name(). * Errors (with error bit) from: fl_conversion_dynamic_partial_to_unsigned_detect(). - * Errors (with error bit) from: fl_string_dynamic_partial_rip_nulless(). + * Errors (with error bit) from: f_rip_dynamic_partial_nulless(). * * @see f_account_group_id_by_name() * @see fl_conversion_dynamic_partial_to_unsigned_detect() - * @see fl_string_dynamic_partial_rip_nulless() + * @see f_rip_dynamic_partial_nulless() */ #ifndef _di_controller_get_id_group_ f_status_t controller_get_id_group(const f_string_static_t buffer, const f_string_range_t range, controller_cache_t * const cache, gid_t * const id) F_attribute_visibility_internal_d; diff --git a/level_3/controller/c/entry/private-entry.c b/level_3/controller/c/entry/private-entry.c index 7b5a62a..d0d4707 100644 --- a/level_3/controller/c/entry/private-entry.c +++ b/level_3/controller/c/entry/private-entry.c @@ -159,57 +159,57 @@ extern "C" { action->line = ++cache->action.line_action; - status = fl_string_dynamic_partial_rip_nulless(cache->buffer_file, cache->object_actions.array[i], &cache->action.name_action); + status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->object_actions.array[i], &cache->action.name_action); if (F_status_is_error(status)) { - controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "fl_string_dynamic_partial_rip_nulless", F_true, global.thread); + controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "f_rip_dynamic_partial_nulless", F_true, global.thread); break; } - if (fl_string_dynamic_compare(controller_consider_s, cache->action.name_action) == F_equal_to) { + if (f_compare_dynamic(controller_consider_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_consider_e; } - else if (fl_string_dynamic_compare(controller_execute_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_execute_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_execute_e; } - else if (fl_string_dynamic_compare(controller_failsafe_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_failsafe_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_failsafe_e; } - else if (fl_string_dynamic_compare(controller_freeze_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_freeze_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_freeze_e; } - else if (fl_string_dynamic_compare(controller_item_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_item_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_item_e; } - else if (fl_string_dynamic_compare(controller_kill_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_kill_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_kill_e; } - else if (fl_string_dynamic_compare(controller_pause_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_pause_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_pause_e; } - else if (fl_string_dynamic_compare(controller_ready_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_ready_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_ready_e; } - else if (fl_string_dynamic_compare(controller_reload_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_reload_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_reload_e; } - else if (fl_string_dynamic_compare(controller_restart_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_restart_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_restart_e; } - else if (fl_string_dynamic_compare(controller_resume_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_resume_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_resume_e; } - else if (fl_string_dynamic_compare(controller_start_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_start_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_start_e; } - else if (fl_string_dynamic_compare(controller_stop_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_stop_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_stop_e; } - else if (fl_string_dynamic_compare(controller_thaw_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_thaw_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_thaw_e; } - else if (fl_string_dynamic_compare(controller_timeout_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_timeout_s, cache->action.name_action) == F_equal_to) { actions->array[actions->used].type = controller_entry_action_type_timeout_e; } else { @@ -399,7 +399,7 @@ extern "C" { } } else { - if (fl_string_dynamic_compare(action->parameters.array[1], cache->buffer_path) == F_equal_to_not) { + if (f_compare_dynamic(action->parameters.array[1], cache->buffer_path) == F_equal_to_not) { if (global.main->error.verbosity > f_console_verbosity_quiet_e) { f_file_stream_lock(global.main->error.to); @@ -434,13 +434,13 @@ extern "C" { for (j = 2; j < action->parameters.used; ++j) { - if (fl_string_dynamic_compare(controller_asynchronous_s, action->parameters.array[j]) == F_equal_to) { + if (f_compare_dynamic(controller_asynchronous_s, action->parameters.array[j]) == F_equal_to) { action->code |= controller_entry_rule_code_asynchronous_d; } - else if (fl_string_dynamic_compare(controller_require_s, action->parameters.array[j]) == F_equal_to) { + else if (f_compare_dynamic(controller_require_s, action->parameters.array[j]) == F_equal_to) { action->code |= controller_entry_rule_code_require_d; } - else if (fl_string_dynamic_compare(controller_wait_s, action->parameters.array[j]) == F_equal_to) { + else if (f_compare_dynamic(controller_wait_s, action->parameters.array[j]) == F_equal_to) { action->code |= controller_entry_rule_code_wait_d; } else { @@ -471,7 +471,7 @@ extern "C" { } // for } else if (action->type == controller_entry_action_type_failsafe_e || action->type == controller_entry_action_type_item_e) { - if (fl_string_dynamic_compare(controller_main_s, action->parameters.array[0]) == F_equal_to) { + if (f_compare_dynamic(controller_main_s, action->parameters.array[0]) == F_equal_to) { action->status = F_status_set_error(F_support_not); if (F_status_is_error_not(status_action)) { @@ -491,13 +491,13 @@ extern "C" { } else if (action->type == controller_entry_action_type_timeout_e) { - if (fl_string_dynamic_compare(controller_kill_s, action->parameters.array[0]) == F_equal_to) { + if (f_compare_dynamic(controller_kill_s, action->parameters.array[0]) == F_equal_to) { action->code = controller_entry_timeout_code_kill_d; } - else if (fl_string_dynamic_compare(controller_start_s, action->parameters.array[0]) == F_equal_to) { + else if (f_compare_dynamic(controller_start_s, action->parameters.array[0]) == F_equal_to) { action->code = controller_entry_timeout_code_start_d; } - else if (fl_string_dynamic_compare(controller_stop_s, action->parameters.array[0]) == F_equal_to) { + else if (f_compare_dynamic(controller_stop_s, action->parameters.array[0]) == F_equal_to) { action->code = controller_entry_timeout_code_stop_d; } else { @@ -568,7 +568,7 @@ extern "C" { } else if (action->type == controller_entry_action_type_ready_e) { if (action->parameters.used) { - if (fl_string_dynamic_compare(controller_wait_s, action->parameters.array[0]) == F_equal_to) { + if (f_compare_dynamic(controller_wait_s, action->parameters.array[0]) == F_equal_to) { action->code |= controller_entry_rule_code_wait_d; } else { @@ -693,17 +693,17 @@ extern "C" { error_has = F_false; // "main" is not allowed to be used for an "item" and "setting" is not an executable "item". - if (fl_string_dynamic_compare(controller_main_s, actions->array[cache->ats.array[at_j]].parameters.array[0]) == F_equal_to) { + if (f_compare_dynamic(controller_main_s, actions->array[cache->ats.array[at_j]].parameters.array[0]) == F_equal_to) { continue; } - else if (fl_string_dynamic_compare(controller_settings_s, actions->array[cache->ats.array[at_j]].parameters.array[0]) == F_equal_to) { + else if (f_compare_dynamic(controller_settings_s, actions->array[cache->ats.array[at_j]].parameters.array[0]) == F_equal_to) { continue; } // Walk though each items and check to see if the item actually exists. for (i = 1; i < entry->items.used && controller_thread_is_enabled(is_entry, global.thread); ++i) { - if (fl_string_dynamic_compare(entry->items.array[i].name, actions->array[cache->ats.array[at_j]].parameters.array[0]) == F_equal_to) { + if (f_compare_dynamic(entry->items.array[i].name, actions->array[cache->ats.array[at_j]].parameters.array[0]) == F_equal_to) { // Check to see if "i" is already in the stack (to prevent recursion) (skipping main). for (j = 2; j < cache->ats.used; j += 2) { @@ -1678,7 +1678,7 @@ extern "C" { for (j = (code & 0x1) ? 1 : 0; j < entry->items.used; ++j) { - if (fl_string_dynamic_compare(entry->items.array[j].name, cache->action.name_item) == F_equal_to) { + if (f_compare_dynamic(entry->items.array[j].name, cache->action.name_item) == F_equal_to) { if (global.main->warning.verbosity == f_console_verbosity_debug_e) { controller_lock_print(global.main->warning.to, global.thread); @@ -1701,7 +1701,7 @@ extern "C" { range = &cache->content_items.array[i].array[0]; - if (fl_string_dynamic_compare(controller_main_s, cache->action.name_item) == F_equal_to) { + if (f_compare_dynamic(controller_main_s, cache->action.name_item) == F_equal_to) { code |= 0x1; at = 0; @@ -1710,7 +1710,7 @@ extern "C" { entry->items.used = 1; } } - else if (fl_string_dynamic_compare(controller_settings_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_settings_s, cache->action.name_item) == F_equal_to) { status = controller_entry_settings_read(global, is_entry, *range, cache); continue; @@ -1802,7 +1802,7 @@ extern "C" { for (k = 0; k < entry->items.used; ++k) { - if (fl_string_dynamic_compare(action->parameters.array[0], entry->items.array[k].name) == F_equal_to) { + if (f_compare_dynamic(action->parameters.array[0], entry->items.array[k].name) == F_equal_to) { if (missing & 0x1) { missing -= 0x1; } @@ -1922,15 +1922,15 @@ extern "C" { ++cache->action.line_action; cache->action.name_action.used = 0; - status = fl_string_dynamic_partial_rip_nulless(cache->buffer_file, cache->object_actions.array[i], &cache->action.name_action); + status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->object_actions.array[i], &cache->action.name_action); if (F_status_is_error(status)) { - controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "fl_string_dynamic_partial_rip_nulless", F_true, global.thread); + controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "f_rip_dynamic_partial_nulless", F_true, global.thread); break; } - if (is_entry && fl_string_dynamic_compare(controller_control_s, cache->action.name_action) == F_equal_to) { + if (is_entry && f_compare_dynamic(controller_control_s, cache->action.name_action) == F_equal_to) { if (cache->content_actions.array[i].used < 1 || cache->content_actions.array[i].used > 2) { controller_entry_settings_read_print_setting_requires_between(global, is_entry, *cache, 1, 2); @@ -1938,7 +1938,7 @@ extern "C" { } if (cache->content_actions.array[i].used == 2) { - if (fl_string_dynamic_partial_compare_string(controller_readonly_s.string, cache->buffer_file, controller_readonly_s.used, cache->content_actions.array[i].array[1]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_readonly_s.string, cache->buffer_file, controller_readonly_s.used, cache->content_actions.array[i].array[1]) == F_equal_to) { global.setting->control.flag |= controller_control_flag_readonly_e; } else { @@ -1970,10 +1970,10 @@ extern "C" { cache->action.generic.used = 0; global.setting->path_control.used = 0; - status = fl_string_dynamic_partial_rip_nulless(cache->buffer_file, cache->content_actions.array[i].array[0], &cache->action.generic); + status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->content_actions.array[i].array[0], &cache->action.generic); if (F_status_is_error(status)) { - controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "fl_string_dynamic_partial_rip_nulless", F_true, global.thread); + controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "f_rip_dynamic_partial_nulless", F_true, global.thread); break; } @@ -1988,7 +1988,7 @@ extern "C" { continue; } } - else if (is_entry && fl_string_dynamic_compare(controller_control_group_s, cache->action.name_action) == F_equal_to) { + else if (is_entry && f_compare_dynamic(controller_control_group_s, cache->action.name_action) == F_equal_to) { gid_t number = 0; status = controller_get_id_group(cache->buffer_file, cache->content_actions.array[i].array[0], cache, &number); @@ -2015,17 +2015,17 @@ extern "C" { global.setting->control.group = number; global.setting->control.flag |= controller_control_flag_has_group_e; } - else if (is_entry && fl_string_dynamic_compare(controller_control_mode_s, cache->action.name_action) == F_equal_to) { + else if (is_entry && f_compare_dynamic(controller_control_mode_s, cache->action.name_action) == F_equal_to) { mode_t mode = 0; uint8_t replace = 0; f_file_mode_t mode_file = f_file_mode_t_initialize; cache->action.generic.used = 0; - status = fl_string_dynamic_partial_rip_nulless(cache->buffer_file, cache->content_actions.array[i].array[0], &cache->action.generic); + status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->content_actions.array[i].array[0], &cache->action.generic); if (F_status_is_error(status)) { - controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "fl_string_dynamic_partial_rip_nulless", F_true, global.thread); + controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "f_rip_dynamic_partial_nulless", F_true, global.thread); break; } @@ -2049,7 +2049,7 @@ extern "C" { global.setting->control.mode = mode; global.setting->control.flag |= controller_control_flag_has_mode_e; } - else if (is_entry && fl_string_dynamic_compare(controller_control_user_s, cache->action.name_action) == F_equal_to) { + else if (is_entry && f_compare_dynamic(controller_control_user_s, cache->action.name_action) == F_equal_to) { uid_t number = 0; status = controller_get_id_user(cache->buffer_file, cache->content_actions.array[i].array[0], cache, &number); @@ -2076,7 +2076,7 @@ extern "C" { global.setting->control.user = number; global.setting->control.flag |= controller_control_flag_has_user_e; } - else if (fl_string_dynamic_compare(controller_define_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_define_s, cache->action.name_action) == F_equal_to) { if (cache->content_actions.array[i].used != 2) { controller_entry_settings_read_print_setting_requires_exactly(global, is_entry, *cache, 2); @@ -2091,20 +2091,20 @@ extern "C" { continue; } } - else if (is_entry && fl_string_dynamic_compare(controller_mode_s, cache->action.name_action) == F_equal_to) { + else if (is_entry && f_compare_dynamic(controller_mode_s, cache->action.name_action) == F_equal_to) { if (cache->content_actions.array[i].used != 1) { controller_entry_settings_read_print_setting_requires_exactly(global, is_entry, *cache, 1); continue; } - if (fl_string_dynamic_partial_compare_string(controller_service_s.string, cache->buffer_file, controller_service_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_service_s.string, cache->buffer_file, controller_service_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { global.setting->mode = controller_setting_mode_service_e; } - else if (fl_string_dynamic_partial_compare_string(controller_helper_s.string, cache->buffer_file, controller_helper_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_helper_s.string, cache->buffer_file, controller_helper_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { global.setting->mode = controller_setting_mode_helper_e; } - else if (fl_string_dynamic_partial_compare_string(controller_program_s.string, cache->buffer_file, controller_program_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_program_s.string, cache->buffer_file, controller_program_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { global.setting->mode = controller_setting_mode_program_e; } else { @@ -2113,7 +2113,7 @@ extern "C" { continue; } } - else if (fl_string_dynamic_compare(controller_parameter_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_parameter_s, cache->action.name_action) == F_equal_to) { if (cache->content_actions.array[i].used != 2) { controller_entry_settings_read_print_setting_requires_exactly(global, is_entry, *cache, 2); @@ -2128,20 +2128,20 @@ extern "C" { continue; } } - else if (fl_string_dynamic_compare(controller_pid_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_pid_s, cache->action.name_action) == F_equal_to) { if (cache->content_actions.array[i].used != 1) { controller_entry_settings_read_print_setting_requires_exactly(global, is_entry, *cache, 1); continue; } - if (fl_string_dynamic_partial_compare_string(controller_disable_s.string, cache->buffer_file, controller_disable_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_disable_s.string, cache->buffer_file, controller_disable_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { entry->pid = controller_entry_pid_disable_e; } - else if (fl_string_dynamic_partial_compare_string(controller_ready_s.string, cache->buffer_file, controller_ready_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_ready_s.string, cache->buffer_file, controller_ready_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { entry->pid = controller_entry_pid_ready_e; } - else if (fl_string_dynamic_partial_compare_string(controller_require_s.string, cache->buffer_file, controller_require_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_require_s.string, cache->buffer_file, controller_require_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { entry->pid = controller_entry_pid_require_e; } else { @@ -2150,7 +2150,7 @@ extern "C" { continue; } } - else if (is_entry && fl_string_dynamic_compare(controller_pid_file_s, cache->action.name_action) == F_equal_to) { + else if (is_entry && f_compare_dynamic(controller_pid_file_s, cache->action.name_action) == F_equal_to) { if (cache->content_actions.array[i].used != 1) { controller_entry_settings_read_print_setting_requires_exactly(global, is_entry, *cache, 1); @@ -2163,10 +2163,10 @@ extern "C" { else { cache->action.generic.used = 0; - status = fl_string_dynamic_partial_rip_nulless(cache->buffer_file, cache->content_actions.array[i].array[0], &cache->action.generic); + status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->content_actions.array[i].array[0], &cache->action.generic); if (F_status_is_error(status)) { - controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "fl_string_dynamic_partial_rip_nulless", F_true, global.thread); + controller_entry_print_error(is_entry, global.main->error, cache->action, F_status_set_fine(status), "f_rip_dynamic_partial_nulless", F_true, global.thread); continue; } @@ -2182,17 +2182,17 @@ extern "C" { } } } - else if (fl_string_dynamic_compare(controller_session_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_session_s, cache->action.name_action) == F_equal_to) { if (cache->content_actions.array[i].used != 1) { controller_entry_settings_read_print_setting_requires_exactly(global, is_entry, *cache, 1); continue; } - if (fl_string_dynamic_partial_compare_string(controller_new_s.string, cache->buffer_file, controller_new_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_new_s.string, cache->buffer_file, controller_new_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { entry->session = controller_entry_session_new_e; } - else if (fl_string_dynamic_partial_compare_string(controller_same_s.string, cache->buffer_file, controller_same_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_same_s.string, cache->buffer_file, controller_same_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { entry->session = controller_entry_session_same_e; } else { @@ -2201,17 +2201,17 @@ extern "C" { continue; } } - else if (fl_string_dynamic_compare(controller_show_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_show_s, cache->action.name_action) == F_equal_to) { if (cache->content_actions.array[i].used != 1) { controller_entry_settings_read_print_setting_requires_exactly(global, is_entry, *cache, 1); continue; } - if (fl_string_dynamic_partial_compare_string(controller_normal_s.string, cache->buffer_file, controller_normal_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_normal_s.string, cache->buffer_file, controller_normal_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { entry->show = controller_entry_show_normal_e; } - else if (fl_string_dynamic_partial_compare_string(controller_init_s.string, cache->buffer_file, controller_init_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_init_s.string, cache->buffer_file, controller_init_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { entry->show = controller_entry_show_init_e; } else { @@ -2220,7 +2220,7 @@ extern "C" { continue; } } - else if (fl_string_dynamic_compare(controller_timeout_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_timeout_s, cache->action.name_action) == F_equal_to) { if (cache->content_actions.array[i].used < 1 || cache->content_actions.array[i].used > 2) { controller_entry_settings_read_print_setting_requires_between(global, is_entry, *cache, 1, 2); @@ -2229,7 +2229,7 @@ extern "C" { f_number_unsigned_t *time = 0; - if (fl_string_dynamic_partial_compare_string(controller_exit_s.string, cache->buffer_file, controller_exit_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_exit_s.string, cache->buffer_file, controller_exit_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { if (cache->content_actions.array[i].used == 1) { entry->flag |= controller_entry_flag_timeout_exit_no_e; @@ -2242,7 +2242,7 @@ extern "C" { time = &entry->timeout_exit; } - else if (fl_string_dynamic_partial_compare_string(controller_kill_s.string, cache->buffer_file, controller_kill_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_kill_s.string, cache->buffer_file, controller_kill_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { if (cache->content_actions.array[i].used == 1) { entry->flag |= controller_entry_flag_timeout_kill_no_e; @@ -2255,7 +2255,7 @@ extern "C" { time = &entry->timeout_kill; } - else if (fl_string_dynamic_partial_compare_string(controller_start_s.string, cache->buffer_file, controller_start_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_start_s.string, cache->buffer_file, controller_start_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { if (cache->content_actions.array[i].used == 1) { entry->flag |= controller_entry_flag_timeout_start_no_e; @@ -2268,7 +2268,7 @@ extern "C" { time = &entry->timeout_start; } - else if (fl_string_dynamic_partial_compare_string(controller_stop_s.string, cache->buffer_file, controller_stop_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_stop_s.string, cache->buffer_file, controller_stop_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { if (cache->content_actions.array[i].used == 1) { entry->flag |= controller_entry_flag_timeout_stop_no_e; diff --git a/level_3/controller/c/entry/private-entry.h b/level_3/controller/c/entry/private-entry.h index 8fcd216..53b5acc 100644 --- a/level_3/controller/c/entry/private-entry.h +++ b/level_3/controller/c/entry/private-entry.h @@ -62,7 +62,7 @@ extern "C" { * Errors (with error bit) from: f_fss_count_lines(). * Errors (with error bit) from: f_fss_apply_delimit(). * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_rip_nulless(). + * Errors (with error bit) from: f_rip_dynamic_partial_nulless(). * Errors (with error bit) from: f_string_dynamics_increase_by(). * Errors (with error bit) from: fll_fss_extended_read(). * @@ -71,7 +71,7 @@ extern "C" { * @see f_string_dynamic_partial_append_nulless() * @see f_string_dynamics_increase_by() * @see f_fss_apply_delimit() - * @see fl_string_dynamic_partial_rip_nulless() + * @see f_rip_dynamic_partial_nulless() * @see fll_fss_extended_read() */ #ifndef _di_controller_entry_actions_read_ diff --git a/level_3/controller/c/process/private-process.c b/level_3/controller/c/process/private-process.c index ea8d85e..600cb15 100644 --- a/level_3/controller/c/process/private-process.c +++ b/level_3/controller/c/process/private-process.c @@ -20,7 +20,7 @@ extern "C" { for (f_array_length_t i = 0; i < processs.used; ++i) { - if (processs.array[i] && processs.array[i]->action == action && fl_string_dynamic_compare(alias, processs.array[i]->rule.alias) == F_equal_to) { + if (processs.array[i] && processs.array[i]->action == action && f_compare_dynamic(alias, processs.array[i]->rule.alias) == F_equal_to) { if (at) *at = i; return F_true; diff --git a/level_3/controller/c/rule/private-rule.c b/level_3/controller/c/rule/private-rule.c index 1c6c408..cc2e2e9 100644 --- a/level_3/controller/c/rule/private-rule.c +++ b/level_3/controller/c/rule/private-rule.c @@ -48,7 +48,7 @@ extern "C" { for (f_array_length_t i = 0; i < rules.used; ++i) { - if (fl_string_dynamic_compare(alias, rules.array[i].alias) == F_equal_to) { + if (f_compare_dynamic(alias, rules.array[i].alias) == F_equal_to) { if (at) *at = i; return F_true; @@ -395,41 +395,41 @@ extern "C" { else if (type == controller_rule_action_type_pid_file_e) { item->pid_file.used = 0; - status = fl_string_dynamic_partial_rip(cache->buffer_item, cache->content_action.array[0], &item->pid_file); + status = f_rip_dynamic_partial(cache->buffer_item, cache->content_action.array[0], &item->pid_file); if (F_status_is_error(status)) { - controller_print_error(global.thread, global.main->error, F_status_set_fine(status), "fl_string_dynamic_partial_rip", F_true); + controller_print_error(global.thread, global.main->error, F_status_set_fine(status), "f_rip_dynamic_partial", F_true); } } else if (type == controller_rule_action_type_rerun_e) { uint8_t type_rerun = 0; if (cache->content_action.used) { - if (fl_string_dynamic_partial_compare_string(controller_freeze_s.string, cache->buffer_item, controller_freeze_s.used, cache->content_action.array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_freeze_s.string, cache->buffer_item, controller_freeze_s.used, cache->content_action.array[0]) == F_equal_to) { type_rerun = controller_rule_action_execute_type_freeze_e; } - if (fl_string_dynamic_partial_compare_string(controller_kill_s.string, cache->buffer_item, controller_kill_s.used, cache->content_action.array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_kill_s.string, cache->buffer_item, controller_kill_s.used, cache->content_action.array[0]) == F_equal_to) { type_rerun = controller_rule_action_execute_type_kill_e; } - else if (fl_string_dynamic_partial_compare_string(controller_pause_s.string, cache->buffer_item, controller_pause_s.used, cache->content_action.array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_pause_s.string, cache->buffer_item, controller_pause_s.used, cache->content_action.array[0]) == F_equal_to) { type_rerun = controller_rule_action_execute_type_pause_e; } - else if (fl_string_dynamic_partial_compare_string(controller_reload_s.string, cache->buffer_item, controller_reload_s.used, cache->content_action.array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_reload_s.string, cache->buffer_item, controller_reload_s.used, cache->content_action.array[0]) == F_equal_to) { type_rerun = controller_rule_action_execute_type_reload_e; } - else if (fl_string_dynamic_partial_compare_string(controller_restart_s.string, cache->buffer_item, controller_restart_s.used, cache->content_action.array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_restart_s.string, cache->buffer_item, controller_restart_s.used, cache->content_action.array[0]) == F_equal_to) { type_rerun = controller_rule_action_execute_type_restart_e; } - else if (fl_string_dynamic_partial_compare_string(controller_resume_s.string, cache->buffer_item, controller_resume_s.used, cache->content_action.array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_resume_s.string, cache->buffer_item, controller_resume_s.used, cache->content_action.array[0]) == F_equal_to) { type_rerun = controller_rule_action_execute_type_resume_e; } - else if (fl_string_dynamic_partial_compare_string(controller_start_s.string, cache->buffer_item, controller_start_s.used, cache->content_action.array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_start_s.string, cache->buffer_item, controller_start_s.used, cache->content_action.array[0]) == F_equal_to) { type_rerun = controller_rule_action_execute_type_start_e; } - else if (fl_string_dynamic_partial_compare_string(controller_stop_s.string, cache->buffer_item, controller_stop_s.used, cache->content_action.array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_stop_s.string, cache->buffer_item, controller_stop_s.used, cache->content_action.array[0]) == F_equal_to) { type_rerun = controller_rule_action_execute_type_stop_e; } - else if (fl_string_dynamic_partial_compare_string(controller_thaw_s.string, cache->buffer_item, controller_thaw_s.used, cache->content_action.array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_thaw_s.string, cache->buffer_item, controller_thaw_s.used, cache->content_action.array[0]) == F_equal_to) { type_rerun = controller_rule_action_execute_type_thaw_e; } } @@ -465,11 +465,11 @@ extern "C" { controller_rule_rerun_item_t *rerun_item = 0; if (cache->content_action.used > 1) { - if (fl_string_dynamic_partial_compare_string(controller_failure_s.string, cache->buffer_item, controller_failure_s.used, cache->content_action.array[1]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_failure_s.string, cache->buffer_item, controller_failure_s.used, cache->content_action.array[1]) == F_equal_to) { rerun_item = &item->reruns[type_rerun].failure; item->reruns[type_rerun].is |= controller_rule_rerun_is_failure_d; } - else if (fl_string_dynamic_partial_compare_string(controller_success_s.string, cache->buffer_item, controller_success_s.used, cache->content_action.array[1]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_success_s.string, cache->buffer_item, controller_success_s.used, cache->content_action.array[1]) == F_equal_to) { rerun_item = &item->reruns[type_rerun].success; item->reruns[type_rerun].is |= controller_rule_rerun_is_success_d; } @@ -497,13 +497,13 @@ extern "C" { for (i = 2; i < cache->content_action.used; ++i) { - if (fl_string_dynamic_partial_compare_string(controller_delay_s.string, cache->buffer_item, controller_delay_s.used, cache->content_action.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_delay_s.string, cache->buffer_item, controller_delay_s.used, cache->content_action.array[i]) == F_equal_to) { status = controller_rule_action_read_rerun_number(global, controller_delay_s.string, cache, &i, &rerun_item->delay); } - else if (fl_string_dynamic_partial_compare_string(controller_max_s.string, cache->buffer_item, controller_max_s.used, cache->content_action.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_max_s.string, cache->buffer_item, controller_max_s.used, cache->content_action.array[i]) == F_equal_to) { status = controller_rule_action_read_rerun_number(global, controller_max_s.string, cache, &i, &rerun_item->max); } - else if (fl_string_dynamic_partial_compare_string(controller_reset_s.string, cache->buffer_item, controller_reset_s.used, cache->content_action.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_reset_s.string, cache->buffer_item, controller_reset_s.used, cache->content_action.array[i]) == F_equal_to) { item->reruns[type_rerun].is |= rerun_item == &item->reruns[type_rerun].failure ? controller_rule_rerun_is_failure_reset_d : controller_rule_rerun_is_success_reset_d; } else { @@ -528,10 +528,10 @@ extern "C" { else if (type == controller_rule_action_type_with_e) { for (i = 0; i < cache->content_action.used; ++i) { - if (fl_string_dynamic_partial_compare_string(controller_full_path_s.string, cache->buffer_item, controller_full_path_s.used, cache->content_action.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_full_path_s.string, cache->buffer_item, controller_full_path_s.used, cache->content_action.array[i]) == F_equal_to) { item->with |= controller_with_full_path_d; } - else if (fl_string_dynamic_partial_compare_string(controller_session_new_s.string, cache->buffer_item, controller_session_new_s.used, cache->content_action.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_session_new_s.string, cache->buffer_item, controller_session_new_s.used, cache->content_action.array[i]) == F_equal_to) { item->with |= controller_with_session_new_d; // The "session_new" and "session_same" are mutually exclusive. @@ -539,7 +539,7 @@ extern "C" { item->with -= controller_with_session_same_d; } } - else if (fl_string_dynamic_partial_compare_string(controller_session_same_s.string, cache->buffer_item, controller_session_same_s.used, cache->content_action.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_session_same_s.string, cache->buffer_item, controller_session_same_s.used, cache->content_action.array[i]) == F_equal_to) { item->with |= controller_with_session_same_d; // The "session_new" and "session_same" are mutually exclusive. @@ -1035,11 +1035,11 @@ extern "C" { for (j = 0; j < process->rule.environment.used; ++j) { - if (fl_string_dynamic_compare(entry->define.array[i].name, process->rule.environment.array[j]) == F_equal_to) { + if (f_compare_dynamic(entry->define.array[i].name, process->rule.environment.array[j]) == F_equal_to) { for (k = 0; k < environment.used; ++k) { - if (fl_string_dynamic_compare(entry->define.array[i].name, environment.array[k].name) == F_equal_to) { + if (f_compare_dynamic(entry->define.array[i].name, environment.array[k].name) == F_equal_to) { environment.array[k].value.used = 0; @@ -1076,11 +1076,11 @@ extern "C" { for (j = 0; j < process->rule.environment.used; ++j) { - if (fl_string_dynamic_compare(process->rule.define.array[i].name, process->rule.environment.array[j]) == F_equal_to) { + if (f_compare_dynamic(process->rule.define.array[i].name, process->rule.environment.array[j]) == F_equal_to) { for (k = 0; k < environment.used; ++k) { - if (fl_string_dynamic_compare(process->rule.define.array[i].name, environment.array[k].name) == F_equal_to) { + if (f_compare_dynamic(process->rule.define.array[i].name, environment.array[k].name) == F_equal_to) { environment.array[k].value.used = 0; @@ -2021,13 +2021,13 @@ extern "C" { f_status_t status = F_none; - if (fl_string_dynamic_partial_compare_string(controller_define_s.string, source, controller_define_s.used, vocabulary) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_define_s.string, source, controller_define_s.used, vocabulary) == F_equal_to) { f_array_length_t i = 0; // First check to see if the environment variable is overwritten by a "define". for (; i < process->rule.define.used; ++i) { - if (fl_string_dynamic_partial_compare_string(process->rule.define.array[i].name.string, source, process->rule.define.array[i].name.used, content) == F_equal_to) { + if (f_compare_dynamic_partial_string(process->rule.define.array[i].name.string, source, process->rule.define.array[i].name.used, content) == F_equal_to) { status = f_string_dynamic_append(process->rule.define.array[i].value, destination); if (F_status_is_error(status)) return status; @@ -2040,7 +2040,7 @@ extern "C" { for (i = 0; i < entry->define.used; ++i) { - if (fl_string_dynamic_partial_compare_string(entry->define.array[i].name.string, source, entry->define.array[i].name.used, content) == F_equal_to) { + if (f_compare_dynamic_partial_string(entry->define.array[i].name.string, source, entry->define.array[i].name.used, content) == F_equal_to) { status = f_string_dynamic_append(entry->define.array[i].value, destination); if (F_status_is_error(status)) return status; @@ -2071,12 +2071,12 @@ extern "C" { if (F_status_is_error(status)) return status; } } - else if (fl_string_dynamic_partial_compare_string(controller_parameter_s.string, source, controller_parameter_s.used, vocabulary) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_parameter_s.string, source, controller_parameter_s.used, vocabulary) == F_equal_to) { f_array_length_t i = 0; for (; i < process->rule.parameter.used; ++i) { - if (fl_string_dynamic_partial_compare_string(process->rule.parameter.array[i].name.string, source, process->rule.parameter.array[i].name.used, content) == F_equal_to) { + if (f_compare_dynamic_partial_string(process->rule.parameter.array[i].name.string, source, process->rule.parameter.array[i].name.used, content) == F_equal_to) { status = f_string_dynamic_append(process->rule.parameter.array[i].value, destination); if (F_status_is_error(status)) return status; @@ -2089,7 +2089,7 @@ extern "C" { for (i = 0; i < entry->parameter.used; ++i) { - if (fl_string_dynamic_partial_compare_string(entry->parameter.array[i].name.string, source, entry->parameter.array[i].name.used, content) == F_equal_to) { + if (f_compare_dynamic_partial_string(entry->parameter.array[i].name.string, source, entry->parameter.array[i].name.used, content) == F_equal_to) { status = f_string_dynamic_append(entry->parameter.array[i].value, destination); if (F_status_is_error(status)) return status; @@ -2098,7 +2098,7 @@ extern "C" { } // for } } - else if (fl_string_dynamic_partial_compare_string(controller_program_s.string, source, controller_program_s.used, vocabulary) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_program_s.string, source, controller_program_s.used, vocabulary) == F_equal_to) { f_string_static_t * const argv = ((controller_main_t *) process->main_data)->parameters.arguments.array; f_console_parameters_t * const parameters = &((controller_main_t *) process->main_data)->parameters; @@ -2215,7 +2215,7 @@ extern "C" { for (f_array_length_t i = 0; i < 17; ++i) { - if (fl_string_dynamic_partial_compare_string(options[i].string, source, options[i].used, content) == F_equal_to) { + if (f_compare_dynamic_partial_string(options[i].string, source, options[i].used, content) == F_equal_to) { if (values[i]) { if (parameters->array[codes[i]].result & f_console_result_value_e) { const f_array_length_t index = parameters->array[codes[i]].values.array[parameters->array[codes[i]].values.used - 1]; @@ -2262,7 +2262,7 @@ extern "C" { memcpy(buffer_string, options[i].string, sizeof(f_char_t) * options[i].used); memcpy(buffer_string + options[i].used, controller_parameter_map_option_s.string, sizeof(f_char_t) * controller_parameter_map_option_s.used); - if (fl_string_dynamic_partial_compare_string(buffer.string, source, buffer.used, content) == F_equal_to) { + if (f_compare_dynamic_partial_string(buffer.string, source, buffer.used, content) == F_equal_to) { if (values[i] && parameters->array[codes[i]].result & f_console_result_value_e || !values[i] && (parameters->array[codes[i]].result & f_console_result_found_e)) { status = f_string_dynamic_increase_by(symbols[i].used + expands[i].used + 1, destination); if (F_status_is_error(status)) return status; @@ -2288,7 +2288,7 @@ extern "C" { memcpy(buffer_string, options[i].string, sizeof(f_char_t) * options[i].used); memcpy(buffer_string + options[i].used, controller_parameter_map_value_s.string, sizeof(f_char_t) * controller_parameter_map_value_s.used); - if (fl_string_dynamic_partial_compare_string(buffer.string, source, buffer.used, content) == F_equal_to) { + if (f_compare_dynamic_partial_string(buffer.string, source, buffer.used, content) == F_equal_to) { if (parameters->array[codes[i]].result & f_console_result_value_e) { const f_array_length_t index = parameters->array[codes[i]].values.array[parameters->array[codes[i]].values.used - 1]; @@ -2420,54 +2420,54 @@ extern "C" { cache->action.line_action += ++item->line; cache->action.name_action.used = 0; - status = fl_string_dynamic_partial_rip_nulless(cache->buffer_item, cache->range_action, &cache->action.name_action); + status = f_rip_dynamic_partial_nulless(cache->buffer_item, cache->range_action, &cache->action.name_action); if (F_status_is_error(status)) { - controller_print_error(global.thread, global.main->error, F_status_set_fine(status), "fl_string_dynamic_partial_rip_nulless", F_true); + controller_print_error(global.thread, global.main->error, F_status_set_fine(status), "f_rip_dynamic_partial_nulless", F_true); break; } - if (fl_string_dynamic_compare(controller_freeze_s, cache->action.name_action) == F_equal_to) { + if (f_compare_dynamic(controller_freeze_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_freeze_e; } - else if (fl_string_dynamic_compare(controller_group_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_group_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_group_e; } - else if (fl_string_dynamic_compare(controller_kill_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_kill_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_kill_e; } - else if (fl_string_dynamic_compare(controller_pause_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_pause_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_pause_e; } - else if (fl_string_dynamic_compare(controller_pid_file_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_pid_file_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_pid_file_e; } - else if (fl_string_dynamic_compare(controller_reload_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_reload_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_reload_e; } - else if (fl_string_dynamic_compare(controller_rerun_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_rerun_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_rerun_e; } - else if (fl_string_dynamic_compare(controller_restart_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_restart_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_restart_e; } - else if (fl_string_dynamic_compare(controller_resume_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_resume_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_resume_e; } - else if (fl_string_dynamic_compare(controller_start_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_start_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_start_e; } - else if (fl_string_dynamic_compare(controller_stop_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_stop_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_stop_e; } - else if (fl_string_dynamic_compare(controller_thaw_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_thaw_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_thaw_e; } - else if (fl_string_dynamic_compare(controller_user_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_user_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_user_e; } - else if (fl_string_dynamic_compare(controller_with_s, cache->action.name_action) == F_equal_to) { + else if (f_compare_dynamic(controller_with_s, cache->action.name_action) == F_equal_to) { type = controller_rule_action_type_with_e; } else { @@ -3852,27 +3852,27 @@ extern "C" { rule->items.array[rule->items.used].line = ++cache->action.line_item; - status = fl_string_dynamic_partial_rip_nulless(cache->buffer_file, cache->object_items.array[i], &cache->action.name_item); + status = f_rip_dynamic_partial_nulless(cache->buffer_file, cache->object_items.array[i], &cache->action.name_item); if (F_status_is_error(status)) { - controller_print_error(global.thread, global.main->error, F_status_set_fine(status), "fl_string_dynamic_partial_rip_nulless", F_true); + controller_print_error(global.thread, global.main->error, F_status_set_fine(status), "f_rip_dynamic_partial_nulless", F_true); break; } - if (fl_string_dynamic_compare(controller_settings_s, cache->action.name_item) == F_equal_to) { + if (f_compare_dynamic(controller_settings_s, cache->action.name_item) == F_equal_to) { rule->items.array[rule->items.used].type = 0; } - else if (fl_string_dynamic_compare(controller_command_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_command_s, cache->action.name_item) == F_equal_to) { rule->items.array[rule->items.used].type = controller_rule_item_type_command_e; } - else if (fl_string_dynamic_compare(controller_script_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_script_s, cache->action.name_item) == F_equal_to) { rule->items.array[rule->items.used].type = controller_rule_item_type_script_e; } - else if (fl_string_dynamic_compare(controller_service_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_service_s, cache->action.name_item) == F_equal_to) { rule->items.array[rule->items.used].type = controller_rule_item_type_service_e; } - else if (fl_string_dynamic_compare(controller_utility_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_utility_s, cache->action.name_item) == F_equal_to) { rule->items.array[rule->items.used].type = controller_rule_item_type_utility_e; } else { @@ -4016,53 +4016,53 @@ extern "C" { empty_disallow = F_true; - if (fl_string_dynamic_compare(controller_affinity_s, cache->action.name_item) == F_equal_to) { + if (f_compare_dynamic(controller_affinity_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_affinity_e; } - else if (fl_string_dynamic_compare(controller_capability_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_capability_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_capability_e; } - else if (fl_string_dynamic_compare(controller_cgroup_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_cgroup_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_cgroup_e; } - else if (fl_string_dynamic_compare(controller_define_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_define_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_define_e; } - else if (fl_string_dynamic_compare(controller_engine_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_engine_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_engine_e; } - else if (fl_string_dynamic_compare(controller_environment_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_environment_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_environment_e; empty_disallow = F_false; } - else if (fl_string_dynamic_compare(controller_group_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_group_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_group_e; } - else if (fl_string_dynamic_compare(controller_limit_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_limit_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_limit_e; } - else if (fl_string_dynamic_compare(controller_name_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_name_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_name_e; } - else if (fl_string_dynamic_compare(controller_nice_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_nice_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_nice_e; } - else if (fl_string_dynamic_compare(controller_on_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_on_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_on_e; } - else if (fl_string_dynamic_compare(controller_parameter_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_parameter_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_parameter_e; } - else if (fl_string_dynamic_compare(controller_path_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_path_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_path_e; } - else if (fl_string_dynamic_compare(controller_scheduler_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_scheduler_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_scheduler_e; } - else if (fl_string_dynamic_compare(controller_timeout_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_timeout_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_timeout_e; } - else if (fl_string_dynamic_compare(controller_user_s, cache->action.name_item) == F_equal_to) { + else if (f_compare_dynamic(controller_user_s, cache->action.name_item) == F_equal_to) { type = controller_rule_setting_type_user_e; } else { @@ -4334,10 +4334,10 @@ extern "C" { continue; } - if (fl_string_dynamic_partial_compare_string(controller_existing_s.string, cache->buffer_item, controller_existing_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_existing_s.string, cache->buffer_item, controller_existing_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { rule->cgroup.as_new = F_false; } - else if (fl_string_dynamic_partial_compare_string(controller_new_s.string, cache->buffer_item, controller_new_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_new_s.string, cache->buffer_item, controller_new_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { rule->cgroup.as_new = F_true; } else { @@ -4425,52 +4425,52 @@ extern "C" { continue; } - if (fl_string_dynamic_partial_compare_string(controller_as_s.string, cache->buffer_item, controller_as_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_as_s.string, cache->buffer_item, controller_as_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_as_e; } - else if (fl_string_dynamic_partial_compare_string(controller_core_s.string, cache->buffer_item, controller_core_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_core_s.string, cache->buffer_item, controller_core_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_core_e; } - else if (fl_string_dynamic_partial_compare_string(controller_cpu_s.string, cache->buffer_item, controller_cpu_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_cpu_s.string, cache->buffer_item, controller_cpu_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_cpu_e; } - else if (fl_string_dynamic_partial_compare_string(controller_data_s.string, cache->buffer_item, controller_data_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_data_s.string, cache->buffer_item, controller_data_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_data_e; } - else if (fl_string_dynamic_partial_compare_string(controller_fsize_s.string, cache->buffer_item, controller_fsize_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_fsize_s.string, cache->buffer_item, controller_fsize_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_fsize_e; } - else if (fl_string_dynamic_partial_compare_string(controller_locks_s.string, cache->buffer_item, controller_locks_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_locks_s.string, cache->buffer_item, controller_locks_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_locks_e; } - else if (fl_string_dynamic_partial_compare_string(controller_memlock_s.string, cache->buffer_item, controller_memlock_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_memlock_s.string, cache->buffer_item, controller_memlock_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_memlock_e; } - else if (fl_string_dynamic_partial_compare_string(controller_msgqueue_s.string, cache->buffer_item, controller_msgqueue_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_msgqueue_s.string, cache->buffer_item, controller_msgqueue_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_msgqueue_e; } - else if (fl_string_dynamic_partial_compare_string(controller_nice_s.string, cache->buffer_item, controller_nice_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_nice_s.string, cache->buffer_item, controller_nice_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_nice_e; } - else if (fl_string_dynamic_partial_compare_string(controller_nofile_s.string, cache->buffer_item, controller_nofile_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_nofile_s.string, cache->buffer_item, controller_nofile_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_nofile_e; } - else if (fl_string_dynamic_partial_compare_string(controller_nproc_s.string, cache->buffer_item, controller_nproc_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_nproc_s.string, cache->buffer_item, controller_nproc_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_nproc_e; } - else if (fl_string_dynamic_partial_compare_string(controller_rss_s.string, cache->buffer_item, controller_rss_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_rss_s.string, cache->buffer_item, controller_rss_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_rss_e; } - else if (fl_string_dynamic_partial_compare_string(controller_rtprio_s.string, cache->buffer_item, controller_rtprio_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_rtprio_s.string, cache->buffer_item, controller_rtprio_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_rtprio_e; } - else if (fl_string_dynamic_partial_compare_string(controller_rttime_s.string, cache->buffer_item, controller_rttime_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_rttime_s.string, cache->buffer_item, controller_rttime_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_rttime_e; } - else if (fl_string_dynamic_partial_compare_string(controller_sigpending_s.string, cache->buffer_item, controller_sigpending_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_sigpending_s.string, cache->buffer_item, controller_sigpending_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_sigpending_e; } - else if (fl_string_dynamic_partial_compare_string(controller_stack_s.string, cache->buffer_item, controller_stack_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_stack_s.string, cache->buffer_item, controller_stack_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { type = controller_resource_limit_type_stack_e; } else { @@ -4644,7 +4644,7 @@ extern "C" { } if (type == controller_rule_setting_type_name_e || type == controller_rule_setting_type_engine_e) { - status = fl_string_dynamic_partial_rip_nulless(cache->buffer_item, cache->content_actions.array[i].array[0], setting_value); + status = f_rip_dynamic_partial_nulless(cache->buffer_item, cache->content_actions.array[i].array[0], setting_value); if (type == controller_rule_setting_type_engine_e) { rule->engine_arguments.used = 0; @@ -4783,27 +4783,27 @@ extern "C" { continue; } - if (fl_string_dynamic_partial_compare_string(controller_batch_s.string, cache->buffer_item, controller_batch_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_batch_s.string, cache->buffer_item, controller_batch_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { rule->scheduler.policy = SCHED_BATCH; rule->scheduler.priority = 0; } - else if (fl_string_dynamic_partial_compare_string(controller_deadline_s.string, cache->buffer_item, controller_deadline_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_deadline_s.string, cache->buffer_item, controller_deadline_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { rule->scheduler.policy = SCHED_DEADLINE; rule->scheduler.priority = 49; } - else if (fl_string_dynamic_partial_compare_string(controller_fifo_s.string, cache->buffer_item, controller_fifo_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_fifo_s.string, cache->buffer_item, controller_fifo_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { rule->scheduler.policy = SCHED_FIFO; rule->scheduler.priority = 49; } - else if (fl_string_dynamic_partial_compare_string(controller_idle_s.string, cache->buffer_item, controller_idle_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_idle_s.string, cache->buffer_item, controller_idle_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { rule->scheduler.policy = SCHED_IDLE; rule->scheduler.priority = 0; } - else if (fl_string_dynamic_partial_compare_string(controller_other_s.string, cache->buffer_item, controller_other_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_other_s.string, cache->buffer_item, controller_other_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { rule->scheduler.policy = SCHED_OTHER; rule->scheduler.priority = 0; } - else if (fl_string_dynamic_partial_compare_string(controller_round_robin_s.string, cache->buffer_item, controller_round_robin_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_round_robin_s.string, cache->buffer_item, controller_round_robin_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { rule->scheduler.policy = SCHED_RR; rule->scheduler.priority = 49; } @@ -4906,13 +4906,13 @@ extern "C" { uint8_t timeout_code = 0; - if (fl_string_dynamic_partial_compare_string(controller_kill_s.string, cache->buffer_item, controller_kill_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_kill_s.string, cache->buffer_item, controller_kill_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { timeout_code = controller_rule_timeout_code_kill_d; } - else if (fl_string_dynamic_partial_compare_string(controller_start_s.string, cache->buffer_item, controller_start_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_start_s.string, cache->buffer_item, controller_start_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { timeout_code = controller_rule_timeout_code_start_d; } - else if (fl_string_dynamic_partial_compare_string(controller_stop_s.string, cache->buffer_item, controller_stop_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_stop_s.string, cache->buffer_item, controller_stop_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { timeout_code = controller_rule_timeout_code_stop_d; } else { @@ -5002,10 +5002,10 @@ extern "C" { cache->action.generic.used = 0; - status = fl_string_dynamic_partial_rip_nulless(cache->buffer_item, cache->content_actions.array[i].array[1], &cache->action.generic); + status = f_rip_dynamic_partial_nulless(cache->buffer_item, cache->content_actions.array[i].array[1], &cache->action.generic); if (F_status_is_error(status)) { - controller_print_error(global.thread, global.main->error, F_status_set_fine(status), "fl_string_dynamic_partial_rip_nulless", F_true); + controller_print_error(global.thread, global.main->error, F_status_set_fine(status), "f_rip_dynamic_partial_nulless", F_true); break; } @@ -5469,31 +5469,31 @@ extern "C" { continue; } - if (fl_string_dynamic_partial_compare_string(controller_freeze_s.string, cache->buffer_item, controller_freeze_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_freeze_s.string, cache->buffer_item, controller_freeze_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { action = controller_rule_action_type_freeze_e; } - else if (fl_string_dynamic_partial_compare_string(controller_kill_s.string, cache->buffer_item, controller_kill_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_kill_s.string, cache->buffer_item, controller_kill_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { action = controller_rule_action_type_kill_e; } - else if (fl_string_dynamic_partial_compare_string(controller_pause_s.string, cache->buffer_item, controller_pause_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_pause_s.string, cache->buffer_item, controller_pause_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { action = controller_rule_action_type_pause_e; } - else if (fl_string_dynamic_partial_compare_string(controller_reload_s.string, cache->buffer_item, controller_reload_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_reload_s.string, cache->buffer_item, controller_reload_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { action = controller_rule_action_type_reload_e; } - else if (fl_string_dynamic_partial_compare_string(controller_restart_s.string, cache->buffer_item, controller_restart_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_restart_s.string, cache->buffer_item, controller_restart_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { action = controller_rule_action_type_restart_e; } - else if (fl_string_dynamic_partial_compare_string(controller_resume_s.string, cache->buffer_item, controller_resume_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_resume_s.string, cache->buffer_item, controller_resume_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { action = controller_rule_action_type_resume_e; } - else if (fl_string_dynamic_partial_compare_string(controller_start_s.string, cache->buffer_item, controller_start_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_start_s.string, cache->buffer_item, controller_start_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { action = controller_rule_action_type_start_e; } - else if (fl_string_dynamic_partial_compare_string(controller_stop_s.string, cache->buffer_item, controller_stop_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_stop_s.string, cache->buffer_item, controller_stop_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { action = controller_rule_action_type_stop_e; } - else if (fl_string_dynamic_partial_compare_string(controller_thaw_s.string, cache->buffer_item, controller_thaw_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_thaw_s.string, cache->buffer_item, controller_thaw_s.used, cache->content_actions.array[i].array[0]) == F_equal_to) { action = controller_rule_action_type_thaw_e; } else { @@ -5538,13 +5538,13 @@ extern "C" { controller_rule_print_error(global.thread, global.main->error, cache->action, F_status_set_fine(status), "controller_rule_ons_increase", F_true, F_false); } else { - if (fl_string_dynamic_partial_compare_string(controller_need_s.string, cache->buffer_item, controller_need_s.used, cache->content_actions.array[i].array[1]) == F_equal_to) { + if (f_compare_dynamic_partial_string(controller_need_s.string, cache->buffer_item, controller_need_s.used, cache->content_actions.array[i].array[1]) == F_equal_to) { setting_values = &rule->ons.array[j].need; } - else if (fl_string_dynamic_partial_compare_string(controller_want_s.string, cache->buffer_item, controller_want_s.used, cache->content_actions.array[i].array[1]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_want_s.string, cache->buffer_item, controller_want_s.used, cache->content_actions.array[i].array[1]) == F_equal_to) { setting_values = &rule->ons.array[j].want; } - else if (fl_string_dynamic_partial_compare_string(controller_wish_s.string, cache->buffer_item, controller_wish_s.used, cache->content_actions.array[i].array[1]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(controller_wish_s.string, cache->buffer_item, controller_wish_s.used, cache->content_actions.array[i].array[1]) == F_equal_to) { setting_values = &rule->ons.array[j].wish; } else { diff --git a/level_3/controller/c/rule/private-rule.h b/level_3/controller/c/rule/private-rule.h index f47e311..2aca99b 100644 --- a/level_3/controller/c/rule/private-rule.h +++ b/level_3/controller/c/rule/private-rule.h @@ -703,7 +703,7 @@ extern "C" { * F_valid_not (with error bit) on success but there were one or more invalid settings encountered. * * Errors (with error bit) from: f_string_dynamic_partial_append_nulless(). - * Errors (with error bit) from: fl_string_dynamic_partial_rip_nulless(). + * Errors (with error bit) from: f_rip_dynamic_partial_nulless(). * Errors (with error bit) from: f_string_dynamics_increase(). * Errors (with error bit) from: f_string_maps_increase(). * Errors (with error bit) from: fll_fss_extended_read(). @@ -713,7 +713,7 @@ extern "C" { * @see f_string_dynamic_partial_append_nulless() * @see f_string_dynamics_increase() * @see f_string_maps_increase() - * @see fl_string_dynamic_partial_rip_nulless() + * @see f_rip_dynamic_partial_nulless() * @see fll_fss_extended_read() * * @see controller_path_canonical_relative() diff --git a/level_3/controller/data/build/dependencies b/level_3/controller/data/build/dependencies index 9ec2ee2..ca0cecf 100644 --- a/level_3/controller/data/build/dependencies +++ b/level_3/controller/data/build/dependencies @@ -9,6 +9,7 @@ f_utf f_account f_capability f_color +f_compare f_console f_control_group f_conversion @@ -19,9 +20,11 @@ f_file f_fss f_iki f_limit +f_parse f_path f_pipe f_print +f_rip f_signal f_socket f_status_string @@ -35,7 +38,6 @@ fl_fss fl_iki fl_path fl_print -fl_string fll_control_group fll_error diff --git a/level_3/controller/data/build/settings b/level_3/controller/data/build/settings index c410e17..021e214 100644 --- a/level_3/controller/data/build/settings +++ b/level_3/controller/data/build/settings @@ -19,8 +19,8 @@ build_language c build_libraries -lc -lcap build_libraries-individual -lfll_control_group -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program -lfll_status_string -build_libraries-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_fss -lfl_iki -lfl_path -lfl_print -lfl_string -build_libraries-individual -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_socket -lf_status_string -lf_string -lf_thread -lf_type_array -lf_utf +build_libraries-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_fss -lfl_iki -lfl_path -lfl_print +build_libraries-individual -lf_account -lf_capability -lf_color -lf_compare -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_socket -lf_status_string -lf_string -lf_thread -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fake/c/main/build/load.c b/level_3/fake/c/main/build/load.c index e4b9f02..4f7fcb2 100644 --- a/level_3/fake/c/main/build/load.c +++ b/level_3/fake/c/main/build/load.c @@ -567,7 +567,7 @@ extern "C" { for (j = 0; j < setting->modes.used; ++j) { - if (fl_string_dynamic_compare_trim(modes->array[i], setting->modes.array[j]) == F_equal_to) { + if (f_compare_dynamic_trim(modes->array[i], setting->modes.array[j]) == F_equal_to) { found = F_true; break; @@ -1111,10 +1111,10 @@ extern "C" { if (!settings_single_source[i]->used) continue; if (settings_single_type[i] == 1) { - if (fl_string_dynamic_compare_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_common_setting_bool_yes_s) == F_equal_to) { + if (f_compare_dynamic_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_common_setting_bool_yes_s) == F_equal_to) { *settings_single_bool[i] = F_true; } - else if (fl_string_dynamic_compare_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_common_setting_bool_no_s) == F_equal_to) { + else if (f_compare_dynamic_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_common_setting_bool_no_s) == F_equal_to) { *settings_single_bool[i] = F_false; } else { @@ -1124,13 +1124,13 @@ extern "C" { } } else if (settings_single_type[i] == 4) { - if (fl_string_dynamic_compare_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_language_bash_s) == F_equal_to) { + if (f_compare_dynamic_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_language_bash_s) == F_equal_to) { *settings_single_language[i] = fake_build_language_bash_e; } - else if (fl_string_dynamic_compare_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_language_c_s) == F_equal_to) { + else if (f_compare_dynamic_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_language_c_s) == F_equal_to) { *settings_single_language[i] = fake_build_language_c_e; } - else if (fl_string_dynamic_compare_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_language_cpp_s) == F_equal_to) { + else if (f_compare_dynamic_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_language_cpp_s) == F_equal_to) { *settings_single_language[i] = fake_build_language_cpp_e; } else { @@ -1140,16 +1140,16 @@ extern "C" { } } else if (settings_single_type[i] == 5) { - if (fl_string_dynamic_compare_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_version_major_s) == F_equal_to) { + if (f_compare_dynamic_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_version_major_s) == F_equal_to) { *settings_single_version[i] = fake_build_version_major_e; } - else if (fl_string_dynamic_compare_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_version_minor_s) == F_equal_to) { + else if (f_compare_dynamic_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_version_minor_s) == F_equal_to) { *settings_single_version[i] = fake_build_version_minor_e; } - else if (fl_string_dynamic_compare_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_version_micro_s) == F_equal_to) { + else if (f_compare_dynamic_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_version_micro_s) == F_equal_to) { *settings_single_version[i] = fake_build_version_micro_e; } - else if (fl_string_dynamic_compare_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_version_nano_s) == F_equal_to) { + else if (f_compare_dynamic_trim(settings_single_source[i]->array[settings_single_source[i]->used - 1], fake_build_version_nano_s) == F_equal_to) { *settings_single_version[i] = fake_build_version_nano_e; } else { diff --git a/level_3/fake/c/main/common/print.c b/level_3/fake/c/main/common/print.c index 8a65b32..26e5995 100644 --- a/level_3/fake/c/main/common/print.c +++ b/level_3/fake/c/main/common/print.c @@ -73,7 +73,7 @@ extern "C" { "fl_environment_load_name", "fl_environment_load_names", "fl_iki_read", - "fl_string_dynamic_partial_compare", + "f_compare_dynamic_partial", "fll_execute_arguments_add", "fll_execute_arguments_add_parameter_set", "fll_execute_program", diff --git a/level_3/fake/c/main/common/print.h b/level_3/fake/c/main/common/print.h index 19e4ce4..b9ec7b0 100644 --- a/level_3/fake/c/main/common/print.h +++ b/level_3/fake/c/main/common/print.h @@ -106,7 +106,7 @@ extern "C" { fake_f_fl_environment_load_name_e, fake_f_fl_environment_load_names_e, fake_f_fl_iki_read_e, - fake_f_fl_string_dynamic_partial_compare_e, + fake_f_f_compare_dynamic_partial_e, fake_f_fll_execute_arguments_add_e, fake_f_fll_execute_arguments_add_parameter_set_e, fake_f_fll_execute_program_e, diff --git a/level_3/fake/c/main/fake.h b/level_3/fake/c/main/fake.h index a157756..c783a1e 100644 --- a/level_3/fake/c/main/fake.h +++ b/level_3/fake/c/main/fake.h @@ -65,6 +65,7 @@ #include #include #include +#include #include #include #include @@ -74,6 +75,7 @@ #include #include #include +#include #include // FLL-1 includes. @@ -85,7 +87,6 @@ #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fake/c/main/make.c b/level_3/fake/c/main/make.c index b1a916b..9c950f7 100644 --- a/level_3/fake/c/main/make.c +++ b/level_3/fake/c/main/make.c @@ -23,7 +23,7 @@ extern "C" { const f_string_range_t range = macro_f_string_range_t_initialize2(data_make->path.stack.array[0].used); if (range.start <= range.stop) { - data_make->main->setting.state.status = fl_string_dynamic_partial_compare(data_make->path.stack.array[0], data_make->cache_path, range, range); + data_make->main->setting.state.status = f_compare_dynamic_partial(data_make->path.stack.array[0], data_make->cache_path, range, range); if (F_status_is_error(data_make->main->setting.state.status)) return; if (data_make->main->setting.state.status) { diff --git a/level_3/fake/c/main/make.h b/level_3/fake/c/main/make.h index 03e4140..f6d3655 100644 --- a/level_3/fake/c/main/make.h +++ b/level_3/fake/c/main/make.h @@ -27,12 +27,12 @@ extern "C" { * F_true if inside the project. * F_false (with error bit) if path exists outside of the root project path. * - * Errors (with error bit) from: fl_string_dynamic_partial_compare() + * Errors (with error bit) from: f_compare_dynamic_partial() * Errors (with error bit) from: fl_path_canonical() * @param path * file path to get the real path of. * - * @see fl_string_dynamic_partial_compare() + * @see f_compare_dynamic_partial() * @see fl_path_canonical() */ #ifndef _di_fake_make_assure_inside_project_ diff --git a/level_3/fake/c/main/make/load_fakefile.c b/level_3/fake/c/main/make/load_fakefile.c index 0738dd5..6c24be1 100644 --- a/level_3/fake/c/main/make/load_fakefile.c +++ b/level_3/fake/c/main/make/load_fakefile.c @@ -115,7 +115,7 @@ extern "C" { data_make->main->program.signal_check = 0; } - if (fl_string_dynamic_partial_compare_string(fake_make_item_settings_s.string, data_make->buffer, fake_make_item_settings_s.used, list_objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(fake_make_item_settings_s.string, data_make->buffer, fake_make_item_settings_s.used, list_objects.array[i]) == F_equal_to) { if (!missing_settings) { fake_make_print_warning_setting_object_multiple(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, fake_make_item_settings_s); @@ -146,7 +146,7 @@ extern "C" { continue; } - if (fl_string_dynamic_partial_compare_string(fake_make_item_main_s.string, data_make->buffer, fake_make_item_main_s.used, list_objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(fake_make_item_main_s.string, data_make->buffer, fake_make_item_main_s.used, list_objects.array[i]) == F_equal_to) { if (!missing_main) { fake_make_print_warning_setting_object_multiple(&data_make->main->program.warning, data_make->data->file_data_build_fakefile, fake_make_item_main_s); @@ -244,23 +244,23 @@ extern "C" { if (settings.objects.used) { for (f_array_length_t i = 0; i < settings.objects.used; ++i) { - if (fl_string_dynamic_partial_compare_string(fake_make_setting_load_build_s.string, data_make->buffer, fake_make_setting_load_build_s.used, settings.objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(fake_make_setting_load_build_s.string, data_make->buffer, fake_make_setting_load_build_s.used, settings.objects.array[i]) == F_equal_to) { fake_make_load_fakefile_setting_build(data_make, &settings.objects.array[i], &settings.contents.array[i]); } - else if (fl_string_dynamic_partial_compare_string(fake_make_setting_compiler_s.string, data_make->buffer, fake_make_setting_compiler_s.used, settings.objects.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_make_setting_compiler_s.string, data_make->buffer, fake_make_setting_compiler_s.used, settings.objects.array[i]) == F_equal_to) { fake_make_load_fakefile_setting_compiler(data_make, &settings.objects.array[i], &settings.contents.array[i], &range_compiler); } - else if (fl_string_dynamic_partial_compare_string(fake_make_setting_environment_s.string, data_make->buffer, fake_make_setting_environment_s.used, settings.objects.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_make_setting_environment_s.string, data_make->buffer, fake_make_setting_environment_s.used, settings.objects.array[i]) == F_equal_to) { fake_make_load_fakefile_setting_environment(data_make, &settings.contents.array[i]); if (F_status_is_error(data_make->main->setting.state.status)) break; } - else if (fl_string_dynamic_partial_compare_string(fake_make_setting_fail_s.string, data_make->buffer, fake_make_setting_fail_s.used, settings.objects.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_make_setting_fail_s.string, data_make->buffer, fake_make_setting_fail_s.used, settings.objects.array[i]) == F_equal_to) { fake_make_load_fakefile_setting_fail(data_make, &settings.objects.array[i], &settings.contents.array[i]); } - else if (fl_string_dynamic_partial_compare_string(fake_make_setting_indexer_s.string, data_make->buffer, fake_make_setting_indexer_s.used, settings.objects.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_make_setting_indexer_s.string, data_make->buffer, fake_make_setting_indexer_s.used, settings.objects.array[i]) == F_equal_to) { fake_make_load_fakefile_setting_indexer(data_make, &settings.objects.array[i], &settings.contents.array[i], &range_indexer); } - else if (fl_string_dynamic_partial_compare_string(fake_make_setting_parameter_s.string, data_make->buffer, fake_make_setting_parameter_s.used, settings.objects.array[i]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_make_setting_parameter_s.string, data_make->buffer, fake_make_setting_parameter_s.used, settings.objects.array[i]) == F_equal_to) { fake_make_load_fakefile_setting_parameter(data_make, &settings.objects.array[i], &settings.contents.array[i]); if (F_status_is_error(data_make->main->setting.state.status)) break; } @@ -325,10 +325,10 @@ extern "C" { if (!data_make || !data_make->data || !data_make->main || !object || !content) return; if (content->used) { - if (fl_string_dynamic_partial_compare_string(fake_common_setting_bool_yes_s.string, data_make->buffer, fake_common_setting_bool_yes_s.used, content->array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(fake_common_setting_bool_yes_s.string, data_make->buffer, fake_common_setting_bool_yes_s.used, content->array[0]) == F_equal_to) { data_make->setting_make.load_build = F_true; } - else if (fl_string_dynamic_partial_compare_string(fake_common_setting_bool_no_s.string, data_make->buffer, fake_common_setting_bool_no_s.used, content->array[0]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_common_setting_bool_no_s.string, data_make->buffer, fake_common_setting_bool_no_s.used, content->array[0]) == F_equal_to) { data_make->setting_make.load_build = F_false; } else { @@ -474,7 +474,7 @@ extern "C" { // The environment settings are stored in the build settings rather than the make settings. if (fake_make_operate_validate_define_name(name_define) == F_true) { for (j = 0; j < data_make->setting_build.environment.used; ++j) { - if (fl_string_dynamic_compare(name_define, data_make->setting_build.environment.array[j]) == F_equal_to) break; + if (f_compare_dynamic(name_define, data_make->setting_build.environment.array[j]) == F_equal_to) break; } // for if (j == data_make->setting_build.environment.used) { @@ -541,13 +541,13 @@ extern "C" { if (!data_make || !data_make->data || !data_make->data || !data_make->main || !object || !content) return; if (content->used) { - if (fl_string_dynamic_partial_compare_string(fake_make_operation_argument_exit_s.string, data_make->buffer, fake_make_operation_argument_exit_s.used, content->array[content->used - 1]) == F_equal_to) { + if (f_compare_dynamic_partial_string(fake_make_operation_argument_exit_s.string, data_make->buffer, fake_make_operation_argument_exit_s.used, content->array[content->used - 1]) == F_equal_to) { data_make->setting_make.fail = fake_make_operation_fail_exit_e; } - else if (fl_string_dynamic_partial_compare_string(fake_make_operation_argument_warn_s.string, data_make->buffer, fake_make_operation_argument_warn_s.used, content->array[content->used - 1]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_make_operation_argument_warn_s.string, data_make->buffer, fake_make_operation_argument_warn_s.used, content->array[content->used - 1]) == F_equal_to) { data_make->setting_make.fail = fake_make_operation_fail_warn_e; } - else if (fl_string_dynamic_partial_compare_string(fake_make_operation_argument_ignore_s.string, data_make->buffer, fake_make_operation_argument_ignore_s.used, content->array[content->used - 1]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_make_operation_argument_ignore_s.string, data_make->buffer, fake_make_operation_argument_ignore_s.used, content->array[content->used - 1]) == F_equal_to) { data_make->setting_make.fail = fake_make_operation_fail_ignore_e; } else { @@ -588,7 +588,7 @@ extern "C" { if (!data_make || !data_make->data || !data_make->data || !data_make->main || !object || !content) return; if (content->used) { - if (fl_string_dynamic_partial_compare_string(fake_make_setting_return_s.string, data_make->buffer, fake_make_setting_return_s.used, content->array[0]) == F_equal_to) { + if (f_compare_dynamic_partial_string(fake_make_setting_return_s.string, data_make->buffer, fake_make_setting_return_s.used, content->array[0]) == F_equal_to) { if (content->used > 1) { // Each "return" define replaces the previous "return" define. diff --git a/level_3/fake/c/main/make/operate.c b/level_3/fake/c/main/make/operate.c index b68446c..09f92c1 100644 --- a/level_3/fake/c/main/make/operate.c +++ b/level_3/fake/c/main/make/operate.c @@ -127,7 +127,7 @@ extern "C" { range.stop = data->main->program.parameters.arguments.array[index].used - 1; for (j = 0; j < data_make.fakefile.used; ++j) { - if (fl_string_dynamic_partial_compare(data->main->program.parameters.arguments.array[index], data_make.buffer, range, data_make.fakefile.array[j].name) == F_equal_to) break; + if (f_compare_dynamic_partial(data->main->program.parameters.arguments.array[index], data_make.buffer, range, data_make.fakefile.array[j].name) == F_equal_to) break; } // for if (j == data_make.fakefile.used) { @@ -151,7 +151,7 @@ extern "C" { for (j = 0; j < data_make.fakefile.used; ++j) { - if (fl_string_dynamic_partial_compare(data->main->program.parameters.arguments.array[index], data_make.buffer, range, data_make.fakefile.array[j].name) == F_equal_to) { + if (f_compare_dynamic_partial(data->main->program.parameters.arguments.array[index], data_make.buffer, range, data_make.fakefile.array[j].name) == F_equal_to) { { int result = fake_make_operate_section(&data_make, j, §ion_stack); @@ -420,21 +420,21 @@ extern "C" { is = 0; - data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(vocabulary_define.string, data_make->buffer, vocabulary_define.used, iki_data->vocabulary.array[j]); + data_make->main->setting.state.status = f_compare_dynamic_partial_string(vocabulary_define.string, data_make->buffer, vocabulary_define.used, iki_data->vocabulary.array[j]); if (data_make->main->setting.state.status == F_equal_to) { is = 2; iki_type |= 0x2; } else if (data_make->main->setting.state.status == F_equal_to_not) { - data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(vocabulary_parameter.string, data_make->buffer, vocabulary_parameter.used, iki_data->vocabulary.array[j]); + data_make->main->setting.state.status = f_compare_dynamic_partial_string(vocabulary_parameter.string, data_make->buffer, vocabulary_parameter.used, iki_data->vocabulary.array[j]); if (data_make->main->setting.state.status == F_equal_to) { is = 1; iki_type |= 0x1; } else if (data_make->main->setting.state.status == F_equal_to_not) { - data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(vocabulary_context.string, data_make->buffer, vocabulary_context.used, iki_data->vocabulary.array[j]); + data_make->main->setting.state.status = f_compare_dynamic_partial_string(vocabulary_context.string, data_make->buffer, vocabulary_context.used, iki_data->vocabulary.array[j]); if (data_make->main->setting.state.status == F_equal_to) { is = 3; @@ -444,7 +444,7 @@ extern "C" { } if (F_status_is_error(data_make->main->setting.state.status)) { - fake_print_error(&data_make->main->program.error, macro_fake_f(fl_string_dynamic_partial_compare)); + fake_print_error(&data_make->main->program.error, macro_fake_f(f_compare_dynamic_partial)); break; } @@ -453,7 +453,7 @@ extern "C" { unmatched = F_true; // Check against reserved parameter names and if matches use them instead. - if (fl_string_dynamic_partial_compare_string(fake_make_parameter_variable_return_s.string, data_make->buffer, fake_make_parameter_variable_return_s.used, iki_data->content.array[j]) == F_equal_to) { + if (f_compare_dynamic_partial_string(fake_make_parameter_variable_return_s.string, data_make->buffer, fake_make_parameter_variable_return_s.used, iki_data->content.array[j]) == F_equal_to) { if (data_make->setting_make.parameter.array[0].value.array[0].used) { data_make->main->setting.state.status = f_string_dynamic_append_nulless(data_make->setting_make.parameter.array[0].value.array[0], &data_make->cache_arguments.array[data_make->cache_arguments.used]); @@ -476,7 +476,7 @@ extern "C" { unmatched = F_false; } - else if (fl_string_dynamic_partial_compare_string(fake_make_parameter_variable_top_s.string, data_make->buffer, fake_make_parameter_variable_top_s.used, iki_data->content.array[j]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_make_parameter_variable_top_s.string, data_make->buffer, fake_make_parameter_variable_top_s.used, iki_data->content.array[j]) == F_equal_to) { if (data_make->path.stack.used) { data_make->main->setting.state.status = f_string_dynamic_increase_by(data_make->path.stack.array[0].used + f_path_separator_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]); @@ -507,7 +507,7 @@ extern "C" { unmatched = F_false; } - else if (fl_string_dynamic_partial_compare_string(fake_make_parameter_variable_current_s.string, data_make->buffer, fake_make_parameter_variable_current_s.used, iki_data->content.array[j]) == F_equal_to) { + else if (f_compare_dynamic_partial_string(fake_make_parameter_variable_current_s.string, data_make->buffer, fake_make_parameter_variable_current_s.used, iki_data->content.array[j]) == F_equal_to) { if (data_make->path.stack.used) { data_make->main->setting.state.status = f_string_dynamic_increase_by(data_make->path.stack.array[data_make->path.stack.used - 1].used + f_path_separator_s.used + 1, &data_make->cache_arguments.array[data_make->cache_arguments.used]); @@ -541,7 +541,7 @@ extern "C" { else { for (k = 0; k < 39; ++k) { - if (fl_string_dynamic_partial_compare_string(reserved_name[k].string, data_make->buffer, reserved_name[k].used, iki_data->content.array[j]) != F_equal_to) { + if (f_compare_dynamic_partial_string(reserved_name[k].string, data_make->buffer, reserved_name[k].used, iki_data->content.array[j]) != F_equal_to) { continue; } @@ -639,7 +639,7 @@ extern "C" { for (k = 0; k < parameter->used; ++k) { // Check against IKI variable list. - if (fl_string_dynamic_partial_compare_dynamic(parameter->array[k].name, data_make->buffer, iki_data->content.array[j]) != F_equal_to) { + if (f_compare_dynamic_partial_dynamic(parameter->array[k].name, data_make->buffer, iki_data->content.array[j]) != F_equal_to) { continue; } @@ -853,7 +853,7 @@ extern "C" { for (; i < 3; ++i) { - data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(uint8_name[i].string, data_make->buffer, uint8_name[i].used, range_name); + data_make->main->setting.state.status = f_compare_dynamic_partial_string(uint8_name[i].string, data_make->buffer, uint8_name[i].used, range_name); if (data_make->main->setting.state.status == F_equal_to) { unmatched = F_false; @@ -888,7 +888,7 @@ extern "C" { for (i = 0; i < 7; ++i) { - data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(bool_name[i].string, data_make->buffer, bool_name[i].used, range_name); + data_make->main->setting.state.status = f_compare_dynamic_partial_string(bool_name[i].string, data_make->buffer, bool_name[i].used, range_name); if (data_make->main->setting.state.status == F_equal_to) { unmatched = F_false; @@ -948,7 +948,7 @@ extern "C" { for (i = 0; i < 17; ++i) { - data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(dynamic_name[i].string, data_make->buffer, dynamic_name[i].used, range_name); + data_make->main->setting.state.status = f_compare_dynamic_partial_string(dynamic_name[i].string, data_make->buffer, dynamic_name[i].used, range_name); if (data_make->main->setting.state.status == F_equal_to) { unmatched = F_false; @@ -1082,7 +1082,7 @@ extern "C" { for (i = 0; i < 36; ++i) { - data_make->main->setting.state.status = fl_string_dynamic_partial_compare_string(dynamics_name[i].string, data_make->buffer, dynamics_name[i].used, range_name); + data_make->main->setting.state.status = f_compare_dynamic_partial_string(dynamics_name[i].string, data_make->buffer, dynamics_name[i].used, range_name); if (data_make->main->setting.state.status == F_equal_to) { unmatched = F_false; @@ -1163,7 +1163,7 @@ extern "C" { for (f_array_length_t i = 0; i < 9; ++i) { - if (fl_string_dynamic_partial_compare_string(context_name[i].string, data_make->buffer, context_name[i].used, range_name) == F_equal_to) { + if (f_compare_dynamic_partial_string(context_name[i].string, data_make->buffer, context_name[i].used, range_name) == F_equal_to) { context = context_value[i].before; break; @@ -1372,7 +1372,7 @@ extern "C" { for (j = 0; j < fake_max_operation_d; ++j) { - if (fl_string_dynamic_partial_compare_string(operations_name[j].string, data_make->buffer, operations_name[j].used, section->objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(operations_name[j].string, data_make->buffer, operations_name[j].used, section->objects.array[i]) == F_equal_to) { state_process.operation = operations_type[j]; break; diff --git a/level_3/fake/c/main/make/operate.h b/level_3/fake/c/main/make/operate.h index 4760546..372a961 100644 --- a/level_3/fake/c/main/make/operate.h +++ b/level_3/fake/c/main/make/operate.h @@ -76,7 +76,7 @@ extern "C" { * Errors (with error bit) from: f_string_dynamics_increase() * Errors (with error bit) from: f_string_dynamics_increase_by() * Errors (with error bit) from: fl_iki_read() - * Errors (with error bit) from: fl_string_dynamic_partial_compare_string() + * Errors (with error bit) from: f_compare_dynamic_partial_string() * * Errors (with error bit) from: fake_make_operate_expand_build() * Errors (with error bit) from: fake_make_operate_expand_context() @@ -96,7 +96,7 @@ extern "C" { * @see f_string_dynamics_increase() * @see f_string_dynamics_increase_by() * @see fl_iki_read() - * @see fl_string_dynamic_partial_compare_string() + * @see f_compare_dynamic_partial_string() * * @see fake_make_operate_expand_build() * @see fake_make_operate_expand_context() diff --git a/level_3/fake/c/main/make/operate_process_type.c b/level_3/fake/c/main/make/operate_process_type.c index b290718..f2183f8 100644 --- a/level_3/fake/c/main/make/operate_process_type.c +++ b/level_3/fake/c/main/make/operate_process_type.c @@ -11,10 +11,10 @@ extern "C" { data_make->main->setting.state.status = F_none; - if (!data_make->cache_arguments.used || fl_string_dynamic_compare(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to) { + if (!data_make->cache_arguments.used || f_compare_dynamic(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to) { data_make->main->setting.state.status = F_signal_abort; } - else if (fl_string_dynamic_compare(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to) { + else if (f_compare_dynamic(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to) { data_make->main->setting.state.status = F_status_set_error(F_signal_abort); } else { @@ -86,7 +86,7 @@ extern "C" { for (f_array_length_t i = 2; i < data_make->cache_arguments.used; ++i) { - if (fl_string_dynamic_compare(data_make->cache_arguments.array[1], data_make->cache_arguments.array[i]) == F_equal_to_not) { + if (f_compare_dynamic(data_make->cache_arguments.array[1], data_make->cache_arguments.array[i]) == F_equal_to_not) { state_process->condition_result = fake_condition_result_false_e; break; @@ -103,7 +103,7 @@ extern "C" { for (j = i + 1; j < data_make->cache_arguments.used; ++j) { - if (fl_string_dynamic_compare(data_make->cache_arguments.array[i], data_make->cache_arguments.array[j]) == F_equal_to) { + if (f_compare_dynamic(data_make->cache_arguments.array[i], data_make->cache_arguments.array[j]) == F_equal_to) { state_process->condition_result = fake_condition_result_false_e; i = data_make->cache_arguments.used; @@ -216,7 +216,7 @@ extern "C" { bool existing = F_true; f_array_length_t i = 0; - if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { ++i; recurse.flag |= f_file_stat_flag_reference_e; } @@ -450,10 +450,10 @@ extern "C" { data_make->main->setting.state.status = F_none; - if (!data_make->cache_arguments.used || fl_string_dynamic_compare(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to) { + if (!data_make->cache_arguments.used || f_compare_dynamic(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to) { data_make->main->setting.state.status = F_signal_quit; } - else if (fl_string_dynamic_compare(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to) { + else if (f_compare_dynamic(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to) { data_make->main->setting.state.status = F_status_set_error(F_signal_quit); // Forcing exit forces fail mode. @@ -481,7 +481,7 @@ extern "C" { if (!data_make || !data_make->main) return; - if (fl_string_dynamic_compare(fake_make_operation_argument_exit_s, data_make->cache_arguments.array[0]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_exit_s, data_make->cache_arguments.array[0]) == F_equal_to) { data_make->setting_make.fail = fake_make_operation_fail_exit_e; data_make->error.prefix = fl_print_error_s; data_make->error.suffix = f_string_empty_s; @@ -491,7 +491,7 @@ extern "C" { data_make->main->program.error.to.id = F_type_descriptor_error_d; data_make->error.set = &data_make->main->program.context.set; } - else if (fl_string_dynamic_compare(fake_make_operation_argument_warn_s, data_make->cache_arguments.array[0]) == F_equal_to) { + else if (f_compare_dynamic(fake_make_operation_argument_warn_s, data_make->cache_arguments.array[0]) == F_equal_to) { data_make->setting_make.fail = fake_make_operation_fail_warn_e; data_make->error.prefix = fl_print_warning_s; data_make->error.suffix = f_string_empty_s; @@ -522,7 +522,7 @@ extern "C" { data_make->main->setting.state.status = F_none; - if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { ++i; dereference = F_false; } @@ -621,7 +621,7 @@ extern "C" { state_process->condition_result = fake_condition_result_true_e; - if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { ++i; dereference = F_false; } @@ -676,7 +676,7 @@ extern "C" { data_make->main->setting.state.status = F_none; - if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { ++i; dereference = F_false; } @@ -696,31 +696,31 @@ extern "C" { for (; i < data_make->cache_arguments.used; ++i) { - if (fl_string_dynamic_compare(fake_make_operation_argument_if_is_for_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_if_is_for_s, data_make->cache_arguments.array[i]) == F_equal_to) { ++i; break; } - if (fl_string_dynamic_compare(f_file_type_name_block_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(f_file_type_name_block_s, data_make->cache_arguments.array[i]) == F_equal_to) { type |= 0x1; } - else if (fl_string_dynamic_compare(f_file_type_name_character_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_character_s, data_make->cache_arguments.array[i]) == F_equal_to) { type |= 0x2; } - else if (fl_string_dynamic_compare(f_file_type_name_directory_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_directory_s, data_make->cache_arguments.array[i]) == F_equal_to) { type |= 0x4; } - else if (fl_string_dynamic_compare(f_file_type_name_fifo_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_fifo_s, data_make->cache_arguments.array[i]) == F_equal_to) { type |= 0x8; } - else if (fl_string_dynamic_compare(f_file_type_name_link_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_link_s, data_make->cache_arguments.array[i]) == F_equal_to) { type |= 0x10; } - else if (fl_string_dynamic_compare(f_file_type_name_regular_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_regular_s, data_make->cache_arguments.array[i]) == F_equal_to) { type |= 0x20; } - else if (fl_string_dynamic_compare(f_file_type_name_socket_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_socket_s, data_make->cache_arguments.array[i]) == F_equal_to) { type |= 0x40; } } // for @@ -943,7 +943,7 @@ extern "C" { data_make->main->setting.state.status = F_none; - if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { ++i; dereference = F_false; } @@ -1005,7 +1005,7 @@ extern "C" { mode_t mode_match = 0; bool is = F_false; - if (fl_string_dynamic_compare(fake_make_operation_argument_is_s, data_make->cache_arguments.array[if_not ? 2 : 1]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_is_s, data_make->cache_arguments.array[if_not ? 2 : 1]) == F_equal_to) { is = F_true; } @@ -1104,7 +1104,7 @@ extern "C" { data_make->main->setting.state.status = F_none; - if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { ++i; dereference = F_false; } @@ -1247,7 +1247,7 @@ extern "C" { for (j = 0; j < 33; ++j) { - if (fl_string_dynamic_compare(reserved_name[j], data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(reserved_name[j], data_make->cache_arguments.array[i]) == F_equal_to) { result = reserved_parameter[j] ? 2 : 1; break; @@ -1257,7 +1257,7 @@ extern "C" { if (!result) { for (j = 0; j < data_make->setting_make.parameter.used; ++j) { - if (fl_string_dynamic_compare(data_make->cache_arguments.array[i], data_make->setting_make.parameter.array[j].name) == F_equal_to) { + if (f_compare_dynamic(data_make->cache_arguments.array[i], data_make->setting_make.parameter.array[j].name) == F_equal_to) { result = 2; break; @@ -1319,18 +1319,18 @@ extern "C" { uint8_t flag = 0; if (data_make->cache_arguments.used > 2) { - if (fl_string_dynamic_compare(fake_make_operation_argument_force_s, data_make->cache_arguments.array[1]) != F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_force_s, data_make->cache_arguments.array[1]) != F_equal_to) { flag |= 0x1; } - else if (fl_string_dynamic_compare(fake_make_operation_argument_strict_s, data_make->cache_arguments.array[1]) == F_equal_to) { + else if (f_compare_dynamic(fake_make_operation_argument_strict_s, data_make->cache_arguments.array[1]) == F_equal_to) { flag |= 0x2; } if (data_make->cache_arguments.used > 3) { - if (fl_string_dynamic_compare(fake_make_operation_argument_force_s, data_make->cache_arguments.array[2]) != F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_force_s, data_make->cache_arguments.array[2]) != F_equal_to) { flag |= 0x1; } - else if (fl_string_dynamic_compare(fake_make_operation_argument_strict_s, data_make->cache_arguments.array[2]) == F_equal_to) { + else if (f_compare_dynamic(fake_make_operation_argument_strict_s, data_make->cache_arguments.array[2]) == F_equal_to) { flag |= 0x2; } } @@ -1556,7 +1556,7 @@ extern "C" { for (; id_section < data_make->fakefile.used; ++id_section) { - if (fl_string_dynamic_partial_compare_string(data_make->cache_arguments.array[0].string, data_make->buffer, data_make->cache_arguments.array[0].used, data_make->fakefile.array[id_section].name) == F_equal_to) { + if (f_compare_dynamic_partial_string(data_make->cache_arguments.array[0].string, data_make->buffer, data_make->cache_arguments.array[0].used, data_make->fakefile.array[id_section].name) == F_equal_to) { break; } } // for @@ -1586,7 +1586,7 @@ extern "C" { bool dereference = F_true; f_array_length_t i = 0; - if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { ++i; dereference = F_false; } @@ -1643,7 +1643,7 @@ extern "C" { for (; i < data_make->setting_make.parameter.used; ++i) { - if (fl_string_dynamic_compare(data_make->cache_arguments.array[0], data_make->setting_make.parameter.array[i].name) == F_equal_to) { + if (f_compare_dynamic(data_make->cache_arguments.array[0], data_make->setting_make.parameter.array[i].name) == F_equal_to) { found = F_true; break; @@ -1967,7 +1967,7 @@ extern "C" { for (f_array_length_t i = 1; i < data_make->cache_arguments.used; ++i) { - if (fl_string_dynamic_compare(fake_make_operation_argument_file_s, data_make->cache_arguments.array[0]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_file_s, data_make->cache_arguments.array[0]) == F_equal_to) { data_make->main->setting.state.status = f_file_touch(data_make->cache_arguments.array[i], mode.regular, F_false); if (F_status_is_error(data_make->main->setting.state.status)) { @@ -1983,7 +1983,7 @@ extern "C" { return; } } - else if (fl_string_dynamic_compare(fake_make_operation_argument_directory_s, data_make->cache_arguments.array[0]) == F_equal_to) { + else if (f_compare_dynamic(fake_make_operation_argument_directory_s, data_make->cache_arguments.array[0]) == F_equal_to) { data_make->main->setting.state.status = f_directory_touch(data_make->cache_arguments.array[i], mode.directory); if (F_status_is_error(data_make->main->setting.state.status)) { diff --git a/level_3/fake/c/main/make/operate_validate_type.c b/level_3/fake/c/main/make/operate_validate_type.c index 235ef28..adccd5f 100644 --- a/level_3/fake/c/main/make/operate_validate_type.c +++ b/level_3/fake/c/main/make/operate_validate_type.c @@ -18,8 +18,8 @@ extern "C" { } if (data_make->cache_arguments.used) { - if (fl_string_dynamic_compare(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { - if (fl_string_dynamic_compare(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { fake_make_print_error_unsupported_type(&data_make->main->program.error, fake_make_operation_break_s, data_make->cache_arguments.array[0]); data_make->main->setting.state.status = F_status_set_error(F_failure); @@ -303,7 +303,7 @@ extern "C" { if_and_or = fake_make_operation_if_s; } - if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[k]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[k]) == F_equal_to) { ++k; dereference = F_false; } @@ -349,7 +349,7 @@ extern "C" { // Skip the "if not XXX" types as they are determined later on. if (i > 12 && i < 21) continue; - if (fl_string_dynamic_compare(if_type_strings[i], data_make->cache_arguments.array[k]) == F_equal_to) { + if (f_compare_dynamic(if_type_strings[i], data_make->cache_arguments.array[k]) == F_equal_to) { state_process->condition = if_type_codes[i]; break; @@ -380,7 +380,7 @@ extern "C" { for (; j < 7; ++j) { - if (fl_string_dynamic_compare(if_not_type_strings[j], data_make->cache_arguments.array[k]) == F_equal_to) { + if (f_compare_dynamic(if_not_type_strings[j], data_make->cache_arguments.array[k]) == F_equal_to) { state_process->condition = if_not_type_codes[j]; break; @@ -437,8 +437,8 @@ extern "C" { if (state_process->condition == fake_make_operation_if_type_if_group_e || state_process->condition == fake_make_operation_if_type_if_is_e || state_process->condition == fake_make_operation_if_type_if_mode_e || state_process->condition > fake_make_operation_if_type_if_not_exist_e && state_process->condition < fake_make_operation_if_type_if_success_e) { if (state_process->condition == fake_make_operation_if_type_if_mode_e || state_process->condition == fake_make_operation_if_type_if_not_mode_e) { - if (fl_string_dynamic_compare(fake_make_operation_argument_is_s, data_make->cache_arguments.array[k]) == F_equal_to_not) { - if (fl_string_dynamic_compare(fake_make_operation_argument_has_s, data_make->cache_arguments.array[k]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_is_s, data_make->cache_arguments.array[k]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_has_s, data_make->cache_arguments.array[k]) == F_equal_to_not) { if (j == 6) { fake_make_print_error_unsupported_type(&data_make->main->program.error, fake_make_operation_mode_s, data_make->cache_arguments.array[k]); @@ -494,31 +494,31 @@ extern "C" { for (i = k; i < data_make->cache_arguments.used; ++i) { - if (fl_string_dynamic_compare(fake_make_operation_argument_if_is_for_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_if_is_for_s, data_make->cache_arguments.array[i]) == F_equal_to) { ++i; break; } - if (fl_string_dynamic_compare(f_file_type_name_block_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(f_file_type_name_block_s, data_make->cache_arguments.array[i]) == F_equal_to) { type_file |= 0x1; } - else if (fl_string_dynamic_compare(f_file_type_name_character_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_character_s, data_make->cache_arguments.array[i]) == F_equal_to) { type_file |= 0x2; } - else if (fl_string_dynamic_compare(f_file_type_name_directory_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_directory_s, data_make->cache_arguments.array[i]) == F_equal_to) { type_file |= 0x4; } - else if (fl_string_dynamic_compare(f_file_type_name_fifo_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_fifo_s, data_make->cache_arguments.array[i]) == F_equal_to) { type_file |= 0x8; } - else if (fl_string_dynamic_compare(f_file_type_name_link_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_link_s, data_make->cache_arguments.array[i]) == F_equal_to) { type_file |= 0x10; } - else if (fl_string_dynamic_compare(f_file_type_name_regular_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_regular_s, data_make->cache_arguments.array[i]) == F_equal_to) { type_file |= 0x20; } - else if (fl_string_dynamic_compare(f_file_type_name_socket_s, data_make->cache_arguments.array[i]) == F_equal_to) { + else if (f_compare_dynamic(f_file_type_name_socket_s, data_make->cache_arguments.array[i]) == F_equal_to) { type_file |= 0x40; } else { @@ -835,8 +835,8 @@ extern "C" { } if (data_make->cache_arguments.used) { - if (fl_string_dynamic_compare(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { - if (fl_string_dynamic_compare(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_success_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_failure_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { fake_make_print_error_unsupported_type(&data_make->main->program.error, fake_make_operation_exit_s, data_make->cache_arguments.array[0]); data_make->main->setting.state.status = F_status_set_error(F_failure); @@ -856,9 +856,9 @@ extern "C" { if (!data_make || !data_make->main) return; if (data_make->cache_arguments.used) { - if (fl_string_dynamic_compare(fake_make_operation_argument_exit_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { - if (fl_string_dynamic_compare(fake_make_operation_argument_warn_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { - if (fl_string_dynamic_compare(fake_make_operation_argument_ignore_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_exit_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_warn_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_ignore_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { fake_make_print_error_unsupported_type(&data_make->main->program.error, fake_make_operation_fail_s, data_make->cache_arguments.array[0]); data_make->main->setting.state.status = F_status_set_error(F_failure); @@ -919,10 +919,10 @@ extern "C" { uint8_t flag = 0; if (data_make->cache_arguments.used > 2) { - if (fl_string_dynamic_compare(fake_make_operation_argument_force_s, data_make->cache_arguments.array[0]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_force_s, data_make->cache_arguments.array[0]) == F_equal_to) { flag |= 0x1; } - else if (fl_string_dynamic_compare(fake_make_operation_argument_strict_s, data_make->cache_arguments.array[0]) == F_equal_to) { + else if (f_compare_dynamic(fake_make_operation_argument_strict_s, data_make->cache_arguments.array[0]) == F_equal_to) { flag |= 0x2; } else { @@ -932,10 +932,10 @@ extern "C" { } if (data_make->cache_arguments.used > 3) { - if (fl_string_dynamic_compare(fake_make_operation_argument_force_s, data_make->cache_arguments.array[1]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_force_s, data_make->cache_arguments.array[1]) == F_equal_to) { flag |= 0x1; } - else if (fl_string_dynamic_compare(fake_make_operation_argument_strict_s, data_make->cache_arguments.array[1]) == F_equal_to) { + else if (f_compare_dynamic(fake_make_operation_argument_strict_s, data_make->cache_arguments.array[1]) == F_equal_to) { flag |= 0x2; } else { @@ -1165,7 +1165,7 @@ extern "C" { for (; id_section < data_make->fakefile.used; ++id_section) { - if (fl_string_dynamic_partial_compare_string(data_make->cache_arguments.array[0].string, data_make->buffer, data_make->cache_arguments.array[0].used, data_make->fakefile.array[id_section].name) == F_equal_to) { + if (f_compare_dynamic_partial_string(data_make->cache_arguments.array[0].string, data_make->buffer, data_make->cache_arguments.array[0].used, data_make->fakefile.array[id_section].name) == F_equal_to) { break; } } // for @@ -1245,7 +1245,7 @@ extern "C" { for (f_array_length_t i = 0; i < 33; ++i) { - if (fl_string_dynamic_compare(reserved_name[i], data_make->cache_arguments.array[0]) == F_equal_to) { + if (f_compare_dynamic(reserved_name[i], data_make->cache_arguments.array[0]) == F_equal_to) { fake_make_print_error_reserved_parameter_name(&data_make->main->program.error, reserved_name[i]); status = F_status_set_error(F_failure); @@ -1271,7 +1271,7 @@ extern "C" { f_array_length_t i = 1; if (state_process->operation == fake_make_operation_type_group_e || state_process->operation == fake_make_operation_type_groups_e || state_process->operation == fake_make_operation_type_owner_e || state_process->operation == fake_make_operation_type_owners_e) { - if (fl_string_dynamic_compare(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { + if (f_compare_dynamic(fake_make_operation_argument_no_dereference_s, data_make->cache_arguments.array[i]) == F_equal_to) { i = 2; } } @@ -1413,8 +1413,8 @@ extern "C" { if (!data_make || !data_make->main) return; if (data_make->cache_arguments.used > 1) { - if (fl_string_dynamic_compare(fake_make_operation_argument_file_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { - if (fl_string_dynamic_compare(fake_make_operation_argument_directory_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_file_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { + if (f_compare_dynamic(fake_make_operation_argument_directory_s, data_make->cache_arguments.array[0]) == F_equal_to_not) { fake_make_print_error_unsupported_type(&data_make->main->program.error, f_file_type_name_file_s, data_make->cache_arguments.array[0]); data_make->main->setting.state.status = F_status_set_error(F_failure); diff --git a/level_3/fake/data/build/dependencies b/level_3/fake/data/build/dependencies index 755823c..447774b 100644 --- a/level_3/fake/data/build/dependencies +++ b/level_3/fake/data/build/dependencies @@ -9,6 +9,7 @@ f_utf f_account f_capability f_color +f_compare f_console f_control_group f_conversion @@ -19,9 +20,11 @@ f_file f_fss f_iki f_limit +f_parse f_path f_pipe f_print +f_rip f_signal f_thread @@ -34,7 +37,6 @@ fl_fss fl_iki fl_path fl_print -fl_string fll_error fll_execute diff --git a/level_3/fake/data/build/settings b/level_3/fake/data/build/settings index 43b1e4f..ffa6a65 100644 --- a/level_3/fake/data/build/settings +++ b/level_3/fake/data/build/settings @@ -22,8 +22,8 @@ build_language c build_libraries -lc -lcap build_libraries-individual -lfll_error -lfll_execute -lfll_file -lfll_fss -lfll_print -lfll_program -build_libraries-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_fss -lfl_iki -lfl_path -lfl_print -lfl_string -build_libraries-individual -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_thread -lf_type_array -lf_utf +build_libraries-individual -lfl_control_group -lfl_conversion -lfl_directory -lfl_environment -lfl_fss -lfl_iki -lfl_path -lfl_print +build_libraries-individual -lf_account -lf_capability -lf_color -lf_compare -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_iki -lf_limit -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_thread -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/firewall/c/firewall.c b/level_3/firewall/c/firewall.c index a3d6be4..3e4fb7c 100644 --- a/level_3/firewall/c/firewall.c +++ b/level_3/firewall/c/firewall.c @@ -178,15 +178,15 @@ extern "C" { index = main->parameters.remaining.array[i]; - if (fl_string_dynamic_compare(firewall_show_nat_s, data.argv[index]) == F_equal_to) { + if (f_compare_dynamic(firewall_show_nat_s, data.argv[index]) == F_equal_to) { show_nat = F_true; } else { - if (fl_string_dynamic_compare(firewall_show_mangle_s, data.argv[index]) == F_equal_to) { + if (f_compare_dynamic(firewall_show_mangle_s, data.argv[index]) == F_equal_to) { show_mangle = F_true; } else { - if (fl_string_dynamic_compare(firewall_show_ports_s, data.argv[index]) == F_equal_to) { + if (f_compare_dynamic(firewall_show_ports_s, data.argv[index]) == F_equal_to) { show_ports = F_true; } else { @@ -331,7 +331,7 @@ extern "C" { for (; i < data.devices.used; ++i) { - if (fl_string_dynamic_compare(firewall_device_loop_s, data.devices.array[i]) == F_equal_to) { + if (f_compare_dynamic(firewall_device_loop_s, data.devices.array[i]) == F_equal_to) { f_string_static_t swap_string = data.devices.array[i]; --data.devices.used; @@ -367,11 +367,11 @@ extern "C" { for (f_array_length_t i = 0; i < local.chain_objects.used; ++i) { - if (!reserved.has_stop && fl_string_dynamic_partial_compare_string(firewall_group_stop_s.string, local.buffer, firewall_group_stop_s.used, local.chain_objects.array[i]) == F_equal_to) { + if (!reserved.has_stop && f_compare_dynamic_partial_string(firewall_group_stop_s.string, local.buffer, firewall_group_stop_s.used, local.chain_objects.array[i]) == F_equal_to) { reserved.stop_at = i; reserved.has_stop = F_true; } - else if (!reserved.has_lock && fl_string_dynamic_partial_compare_string(firewall_group_lock_s.string, local.buffer, firewall_group_lock_s.used, local.chain_objects.array[i]) == F_equal_to) { + else if (!reserved.has_lock && f_compare_dynamic_partial_string(firewall_group_lock_s.string, local.buffer, firewall_group_lock_s.used, local.chain_objects.array[i]) == F_equal_to) { reserved.lock_at = i; reserved.has_lock = F_true; } diff --git a/level_3/firewall/c/firewall.h b/level_3/firewall/c/firewall.h index 3fc3b5f..eb92ecd 100644 --- a/level_3/firewall/c/firewall.h +++ b/level_3/firewall/c/firewall.h @@ -26,16 +26,17 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. -#include #include // FLL-2 includes. diff --git a/level_3/firewall/c/private-firewall.c b/level_3/firewall/c/private-firewall.c index 8bc53df..031c2ea 100644 --- a/level_3/firewall/c/private-firewall.c +++ b/level_3/firewall/c/private-firewall.c @@ -83,7 +83,7 @@ f_status_t firewall_perform_commands(firewall_data_t * const data, firewall_loca ip_list.used = 0; // Process chain rule. - if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_objects.array[i].start, firewall_chain_s, length) == F_equal_to) { + if (f_compare_dynamic_string(local->buffer.string + local->rule_objects.array[i].start, firewall_chain_s, length) == F_equal_to) { if (chain == firewall_chain_custom_id_e) { // Custom chains can only apply to themselves, so silently ignore chain commands specified within a custom chain. @@ -97,22 +97,22 @@ f_status_t firewall_perform_commands(firewall_data_t * const data, firewall_loca if (local->rule_contents.array[i].used <= 0 || local->rule_contents.array[i].used > 1) { invalid = F_true; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_input_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_input_s, length) == F_equal_to) { chain = firewall_chain_input_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_output_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_output_s, length) == F_equal_to) { chain = firewall_chain_output_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_forward_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_forward_s, length) == F_equal_to) { chain = firewall_chain_forward_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_postrouting_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_postrouting_s, length) == F_equal_to) { chain = firewall_chain_postrouting_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_prerouting_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_prerouting_s, length) == F_equal_to) { chain = firewall_chain_prerouting_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_none_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_chain_none_s, length) == F_equal_to) { chain = firewall_chain_none_id_e; } else { @@ -123,19 +123,19 @@ f_status_t firewall_perform_commands(firewall_data_t * const data, firewall_loca } // Process direction rule - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_objects.array[i].start, firewall_direction_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_objects.array[i].start, firewall_direction_s, length) == F_equal_to) { length = (local->rule_contents.array[i].array[0].stop - local->rule_contents.array[i].array[0].start) + 1; if (local->rule_contents.array[i].used <= 0 || local->rule_contents.array[i].used > 1) { invalid = F_true; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_direction_input_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_direction_input_s, length) == F_equal_to) { direction = firewall_direction_input_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_direction_output_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_direction_output_s, length) == F_equal_to) { direction = firewall_direction_output_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_direction_none_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_direction_none_s, length) == F_equal_to) { direction = firewall_direction_none_id_e; } else { @@ -148,18 +148,18 @@ f_status_t firewall_perform_commands(firewall_data_t * const data, firewall_loca } // Process device rule. - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_objects.array[i].start, firewall_device_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_objects.array[i].start, firewall_device_s, length) == F_equal_to) { length = (local->rule_contents.array[i].array[0].stop - local->rule_contents.array[i].array[0].start) + 1; if (local->rule_contents.array[i].used <= 0 || local->rule_contents.array[i].used > 1) { invalid = F_true; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_device_all_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_device_all_s, length) == F_equal_to) { f_string_dynamic_resize(0, &device); continue; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_device_this_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_device_this_s, length) == F_equal_to) { if (data->devices.array[local->device].used) { if (data->devices.array[local->device].used > device.size) { status = f_string_dynamic_resize(data->devices.array[local->device].used, &device); @@ -191,22 +191,22 @@ f_status_t firewall_perform_commands(firewall_data_t * const data, firewall_loca } // Process action rule. - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_objects.array[i].start, firewall_action_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_objects.array[i].start, firewall_action_s, length) == F_equal_to) { length = (local->rule_contents.array[i].array[0].stop - local->rule_contents.array[i].array[0].start) + 1; if (local->rule_contents.array[i].used <= 0 || local->rule_contents.array[i].used > 1) { invalid = F_true; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_action_append_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_action_append_s, length) == F_equal_to) { action = firewall_action_append_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_action_insert_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_action_insert_s, length) == F_equal_to) { action = firewall_action_insert_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_action_policy_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_action_policy_s, length) == F_equal_to) { action = firewall_action_policy_id_e; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_action_none_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_action_none_s, length) == F_equal_to) { action = firewall_action_none_id_e; } else { @@ -217,28 +217,28 @@ f_status_t firewall_perform_commands(firewall_data_t * const data, firewall_loca } // Process ip_list rule. - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_objects.array[i].start, firewall_ip_list, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_objects.array[i].start, firewall_ip_list, length) == F_equal_to) { length = (local->rule_contents.array[i].array[0].stop - local->rule_contents.array[i].array[0].start) + 1; is_ip_list = F_true; - if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_ip_list_source_s, length) == F_equal_to) { + if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_ip_list_source_s, length) == F_equal_to) { ip_list_direction = F_false; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_ip_list_destination_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_ip_list_destination_s, length) == F_equal_to) { ip_list_direction = F_true; } else { invalid = F_true; } } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_objects.array[i].start, firewall_protocol_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_objects.array[i].start, firewall_protocol_s, length) == F_equal_to) { length = (local->rule_contents.array[i].array[0].stop - local->rule_contents.array[i].array[0].start) + 1; if (local->rule_contents.array[i].used <= 0 || local->rule_contents.array[i].used > 1) { invalid = F_true; } else { - if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_protocol_none_s, length) == F_equal_to) { + if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_protocol_none_s, length) == F_equal_to) { use_protocol = F_false; } else if (length) { @@ -259,24 +259,24 @@ f_status_t firewall_perform_commands(firewall_data_t * const data, firewall_loca } // Process tool rule. - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_objects.array[i].start, firewall_tool_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_objects.array[i].start, firewall_tool_s, length) == F_equal_to) { length = (local->rule_contents.array[i].array[0].stop - local->rule_contents.array[i].array[0].start) + 1; if (local->rule_contents.array[i].used <= 0 || local->rule_contents.array[i].used > 1) { invalid = F_true; } else { - if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_tool_iptables_s, length) == F_equal_to) { + if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_tool_iptables_s, length) == F_equal_to) { tool = firewall_program_iptables_e; current_tool = firewall_tool_iptables_s; repeat = 1; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_tool_ip6tables_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_tool_ip6tables_s, length) == F_equal_to) { tool = firewall_program_ip6tables_e; current_tool = firewall_tool_ip6tables_s; repeat = 1; } - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_tool_ip46tables_s, length) == F_equal_to) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_tool_ip46tables_s, length) == F_equal_to) { tool = firewall_program_ip46tables_e; current_tool = firewall_tool_iptables_s; repeat = 2; @@ -290,7 +290,7 @@ f_status_t firewall_perform_commands(firewall_data_t * const data, firewall_loca } // If the remaining rule does not match as firewall_rule_s, then it is an invalid rule. - else if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_objects.array[i].start, firewall_rule_s, length) == F_equal_to_not) { + else if (f_compare_dynamic_string(local->buffer.string + local->rule_objects.array[i].start, firewall_rule_s, length) == F_equal_to_not) { if (length) { f_file_stream_lock(data->main->warning.to); @@ -406,7 +406,7 @@ f_status_t firewall_perform_commands(firewall_data_t * const data, firewall_loca // Add the device if and only if a non-none direction is specified. if (device.used && (direction == firewall_direction_input_id_e || direction == firewall_direction_output_id_e)) { - if (fl_string_dynamic_compare_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_device_all_s, length) == F_equal_to_not) { + if (f_compare_dynamic_string(local->buffer.string + local->rule_contents.array[i].array[0].start, firewall_device_all_s, length) == F_equal_to_not) { status = f_string_dynamics_increase(firewall_default_allocation_step_d, &arguments); if (F_status_is_error(status)) break; @@ -832,35 +832,35 @@ f_status_t firewall_create_custom_chains(firewall_data_t * const data, firewall_ } // Skip globally reserved chain name: main. - if (fl_string_dynamic_partial_compare_string(firewall_group_main_s.string, local->buffer, firewall_group_main_s.used, local->chain_objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(firewall_group_main_s.string, local->buffer, firewall_group_main_s.used, local->chain_objects.array[i]) == F_equal_to) { new_chain = F_false; reserved->has_main = F_true; reserved->main_at = i; } // Skip globally reserved chain name: stop. - if (fl_string_dynamic_partial_compare_string(firewall_group_stop_s.string, local->buffer, firewall_group_stop_s.used, local->chain_objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(firewall_group_stop_s.string, local->buffer, firewall_group_stop_s.used, local->chain_objects.array[i]) == F_equal_to) { new_chain = F_false; reserved->has_stop = F_true; reserved->stop_at = i; } // Skip globally reserved chain name: lock. - if (fl_string_dynamic_partial_compare_string(firewall_group_lock_s.string, local->buffer, firewall_group_lock_s.used, local->chain_objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(firewall_group_lock_s.string, local->buffer, firewall_group_lock_s.used, local->chain_objects.array[i]) == F_equal_to) { new_chain = F_false; reserved->has_lock = F_true; reserved->lock_at = i; } // Skip globally reserved chain name: none. - if (fl_string_dynamic_partial_compare_string(firewall_chain_none_s.string, local->buffer, firewall_chain_none_s.used, local->chain_objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(firewall_chain_none_s.string, local->buffer, firewall_chain_none_s.used, local->chain_objects.array[i]) == F_equal_to) { new_chain = F_false; } if (new_chain) { for (; j < data->chains.used; ++j) { - if (fl_string_dynamic_partial_compare_string(data->chains.array[j].string, local->buffer, data->chains.array[j].used, local->chain_objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(data->chains.array[j].string, local->buffer, data->chains.array[j].used, local->chain_objects.array[i]) == F_equal_to) { new_chain = F_false; local->chain_ids.array[i] = j; @@ -899,19 +899,19 @@ f_status_t firewall_create_custom_chains(firewall_data_t * const data, firewall_ arguments.array[1].string[arguments.array[1].used] = 0; data->chains.array[data->chains.used].string[data->chains.array[data->chains.used].used] = 0; - if (fl_string_dynamic_compare(arguments.array[1], firewall_chain_forward_s) == F_equal_to) { + if (f_compare_dynamic(arguments.array[1], firewall_chain_forward_s) == F_equal_to) { create_chain = F_false; } - else if (fl_string_dynamic_compare(arguments.array[1], firewall_chain_input_s) == F_equal_to) { + else if (f_compare_dynamic(arguments.array[1], firewall_chain_input_s) == F_equal_to) { create_chain = F_false; } - else if (fl_string_dynamic_compare(arguments.array[1], firewall_chain_output_s) == F_equal_to) { + else if (f_compare_dynamic(arguments.array[1], firewall_chain_output_s) == F_equal_to) { create_chain = F_false; } - else if (fl_string_dynamic_compare(arguments.array[1], firewall_chain_postrouting_s) == F_equal_to) { + else if (f_compare_dynamic(arguments.array[1], firewall_chain_postrouting_s) == F_equal_to) { create_chain = F_false; } - else if (fl_string_dynamic_compare(arguments.array[1], firewall_chain_prerouting_s) == F_equal_to) { + else if (f_compare_dynamic(arguments.array[1], firewall_chain_prerouting_s) == F_equal_to) { create_chain = F_false; } diff --git a/level_3/firewall/data/build/dependencies b/level_3/firewall/data/build/dependencies index 8c3a847..d106085 100644 --- a/level_3/firewall/data/build/dependencies +++ b/level_3/firewall/data/build/dependencies @@ -9,6 +9,7 @@ f_utf f_account f_capability f_color +f_compare f_console f_control_group f_conversion @@ -18,9 +19,11 @@ f_execute f_file f_fss f_limit +f_parse f_path f_pipe f_print +f_rip f_status_string f_signal f_thread @@ -30,7 +33,6 @@ fl_conversion fl_environment fl_fss fl_print -fl_string fll_error fll_execute diff --git a/level_3/firewall/data/build/settings b/level_3/firewall/data/build/settings index 745694a..7d13812 100644 --- a/level_3/firewall/data/build/settings +++ b/level_3/firewall/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lcap -build_libraries-individual -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program -lfl_control_group -lfl_conversion -lfl_environment -lfl_fss -lfl_print -lfl_string -lf_account -lf_capability -lf_color -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_limit -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_thread -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_execute -lfll_fss -lfll_print -lfll_program -lfl_control_group -lfl_conversion -lfl_environment -lfl_fss -lfl_print -lf_account -lf_capability -lf_color -lf_compare -lf_console -lf_control_group -lf_conversion -lf_directory -lf_environment -lf_execute -lf_file -lf_fss -lf_limit -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_thread -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_basic_list_read/c/fss_basic_list_read.c b/level_3/fss_basic_list_read/c/fss_basic_list_read.c index 6eb506e..af37969 100644 --- a/level_3/fss_basic_list_read/c/fss_basic_list_read.c +++ b/level_3/fss_basic_list_read/c/fss_basic_list_read.c @@ -243,13 +243,13 @@ extern "C" { break; } - else if (fl_string_dynamic_compare_string(fss_basic_list_read_delimit_mode_name_none_s.string, data.argv[index], fss_basic_list_read_delimit_mode_name_none_s.used) == F_equal_to) { + else if (f_compare_dynamic_string(fss_basic_list_read_delimit_mode_name_none_s.string, data.argv[index], fss_basic_list_read_delimit_mode_name_none_s.used) == F_equal_to) { data.delimit_mode = fss_basic_list_read_delimit_mode_none_e; } - else if (fl_string_dynamic_compare_string(fss_basic_list_read_delimit_mode_name_all_s.string, data.argv[index], fss_basic_list_read_delimit_mode_name_all_s.used) == F_equal_to) { + else if (f_compare_dynamic_string(fss_basic_list_read_delimit_mode_name_all_s.string, data.argv[index], fss_basic_list_read_delimit_mode_name_all_s.used) == F_equal_to) { data.delimit_mode = fss_basic_list_read_delimit_mode_all_e; } - else if (fl_string_dynamic_compare_string(fss_basic_list_read_delimit_mode_name_object_s.string, data.argv[index], fss_basic_list_read_delimit_mode_name_object_s.used) == F_equal_to) { + else if (f_compare_dynamic_string(fss_basic_list_read_delimit_mode_name_object_s.string, data.argv[index], fss_basic_list_read_delimit_mode_name_object_s.used) == F_equal_to) { switch (data.delimit_mode) { case 0: data.delimit_mode = fss_basic_list_read_delimit_mode_object_e; diff --git a/level_3/fss_basic_list_read/c/fss_basic_list_read.h b/level_3/fss_basic_list_read/c/fss_basic_list_read.h index 2433f82..e73a8f5 100644 --- a/level_3/fss_basic_list_read/c/fss_basic_list_read.h +++ b/level_3/fss_basic_list_read/c/fss_basic_list_read.h @@ -28,17 +28,18 @@ #include #include #include +#include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_basic_list_read/c/private-read.c b/level_3/fss_basic_list_read/c/private-read.c index 0945035..204237f 100644 --- a/level_3/fss_basic_list_read/c/private-read.c +++ b/level_3/fss_basic_list_read/c/private-read.c @@ -155,14 +155,14 @@ extern "C" { data->depths.array[i].index_name = main->parameters.array[fss_basic_list_read_parameter_name_e].values.array[position_name]; if (main->parameters.array[fss_basic_list_read_parameter_trim_e].result & f_console_result_found_e) { - status = fl_string_dynamic_rip(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); + status = f_rip_dynamic(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } else { status = f_string_dynamic_append(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } if (F_status_is_error(status)) { - fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_basic_list_read_parameter_trim_e].result & f_console_result_found_e) ? "fl_string_dynamic_rip" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); + fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_basic_list_read_parameter_trim_e].result & f_console_result_found_e) ? "f_rip_dynamic" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); return status; } @@ -650,7 +650,7 @@ extern "C" { // This standard should always treat selected names as trimmed. for (f_array_length_t i = 0; i < data->objects.used; ++i) { - if (fl_string_dynamic_partial_compare_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_object) == F_equal_to) { + if (f_compare_dynamic_partial_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_object) == F_equal_to) { names[i] = F_true; } } // for diff --git a/level_3/fss_basic_list_read/c/private-read.h b/level_3/fss_basic_list_read/c/private-read.h index 03ce268..6c9b008 100644 --- a/level_3/fss_basic_list_read/c/private-read.h +++ b/level_3/fss_basic_list_read/c/private-read.h @@ -61,13 +61,13 @@ extern "C" { * * Errors (with error bit) from: f_string_append(). * Errors (with error bit) from: fl_conversion_dynamic_partial_to_unsigned_detect(). - * Errors (with error bit) from: fl_string_dynamic_rip(). + * Errors (with error bit) from: f_rip_dynamic(). * * Errors (with error bit) from: fss_basic_list_read_depths_resize(). * * @see f_string_append() * @see fl_conversion_dynamic_partial_to_unsigned_detect() - * @see fl_string_dynamic_rip() + * @see f_rip_dynamic() * * @see fss_basic_list_read_depths_resize() */ diff --git a/level_3/fss_basic_list_read/data/build/dependencies b/level_3/fss_basic_list_read/data/build/dependencies index 501d568..22cdeb6 100644 --- a/level_3/fss_basic_list_read/data/build/dependencies +++ b/level_3/fss_basic_list_read/data/build/dependencies @@ -7,20 +7,22 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_directory f_environment f_file f_fss +f_parse f_pipe f_print +f_rip f_signal fl_conversion fl_fss fl_print -fl_string fll_error fll_file diff --git a/level_3/fss_basic_list_read/data/build/settings b/level_3/fss_basic_list_read/data/build/settings index a86aba4..8ef54e0 100644 --- a/level_3/fss_basic_list_read/data/build/settings +++ b/level_3/fss_basic_list_read/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_basic_read/c/fss_basic_read.c b/level_3/fss_basic_read/c/fss_basic_read.c index afc1f47..f1c320c 100644 --- a/level_3/fss_basic_read/c/fss_basic_read.c +++ b/level_3/fss_basic_read/c/fss_basic_read.c @@ -243,13 +243,13 @@ extern "C" { break; } - else if (fl_string_dynamic_compare(fss_basic_read_delimit_mode_name_none_s, data.argv[index]) == F_equal_to) { + else if (f_compare_dynamic(fss_basic_read_delimit_mode_name_none_s, data.argv[index]) == F_equal_to) { data.delimit_mode = fss_basic_read_delimit_mode_none_e; } - else if (fl_string_dynamic_compare(fss_basic_read_delimit_mode_name_all_s, data.argv[index]) == F_equal_to) { + else if (f_compare_dynamic(fss_basic_read_delimit_mode_name_all_s, data.argv[index]) == F_equal_to) { data.delimit_mode = fss_basic_read_delimit_mode_all_e; } - else if (fl_string_dynamic_compare(fss_basic_read_delimit_mode_name_object_s, data.argv[index]) == F_equal_to) { + else if (f_compare_dynamic(fss_basic_read_delimit_mode_name_object_s, data.argv[index]) == F_equal_to) { switch (data.delimit_mode) { case 0: data.delimit_mode = fss_basic_read_delimit_mode_object_e; diff --git a/level_3/fss_basic_read/c/fss_basic_read.h b/level_3/fss_basic_read/c/fss_basic_read.h index 7ce305d..e9b6973 100644 --- a/level_3/fss_basic_read/c/fss_basic_read.h +++ b/level_3/fss_basic_read/c/fss_basic_read.h @@ -28,17 +28,18 @@ #include #include #include +#include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_basic_read/c/private-read.c b/level_3/fss_basic_read/c/private-read.c index f53644e..2818718 100644 --- a/level_3/fss_basic_read/c/private-read.c +++ b/level_3/fss_basic_read/c/private-read.c @@ -132,14 +132,14 @@ extern "C" { data->depths.array[i].index_name = main->parameters.array[fss_basic_read_parameter_name_e].values.array[position_name]; if (main->parameters.array[fss_basic_read_parameter_trim_e].result & f_console_result_found_e) { - status = fl_string_dynamic_rip(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); + status = f_rip_dynamic(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } else { status = f_string_dynamic_append(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } if (F_status_is_error(status)) { - fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_basic_read_parameter_trim_e].result & f_console_result_found_e) ? "fl_string_dynamic_rip" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); + fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_basic_read_parameter_trim_e].result & f_console_result_found_e) ? "f_rip_dynamic" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); return status; } @@ -544,7 +544,7 @@ extern "C" { if (data->option & fss_basic_read_data_option_trim_d) { for (i = 0; i < data->objects.used; ++i) { - if (fl_string_dynamic_partial_compare_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits) == F_equal_to) { + if (f_compare_dynamic_partial_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits) == F_equal_to) { names[i] = F_true; } } // for @@ -552,7 +552,7 @@ extern "C" { else { for (i = 0; i < data->objects.used; ++i) { - if (fl_string_dynamic_partial_compare_except_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits) == F_equal_to) { + if (f_compare_dynamic_partial_except_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits) == F_equal_to) { names[i] = F_true; } } // for diff --git a/level_3/fss_basic_read/c/private-read.h b/level_3/fss_basic_read/c/private-read.h index 0599b5a..c9b2128 100644 --- a/level_3/fss_basic_read/c/private-read.h +++ b/level_3/fss_basic_read/c/private-read.h @@ -45,13 +45,13 @@ extern "C" { * * Errors (with error bit) from: f_string_append(). * Errors (with error bit) from: fl_conversion_dynamic_partial_to_unsigned_detect(). - * Errors (with error bit) from: fl_string_dynamic_rip(). + * Errors (with error bit) from: f_rip_dynamic(). * * Errors (with error bit) from: fss_basic_read_depths_resize(). * * @see f_string_append() * @see fl_conversion_dynamic_partial_to_unsigned_detect() - * @see fl_string_dynamic_rip() + * @see f_rip_dynamic() * * @see fss_basic_read_depths_resize() */ diff --git a/level_3/fss_basic_read/data/build/dependencies b/level_3/fss_basic_read/data/build/dependencies index 501d568..22cdeb6 100644 --- a/level_3/fss_basic_read/data/build/dependencies +++ b/level_3/fss_basic_read/data/build/dependencies @@ -7,20 +7,22 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_directory f_environment f_file f_fss +f_parse f_pipe f_print +f_rip f_signal fl_conversion fl_fss fl_print -fl_string fll_error fll_file diff --git a/level_3/fss_basic_read/data/build/settings b/level_3/fss_basic_read/data/build/settings index cdcd002..93b37a2 100644 --- a/level_3/fss_basic_read/data/build/settings +++ b/level_3/fss_basic_read/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_rip -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_compare -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_embedded_list_read/c/fss_embedded_list_read.c b/level_3/fss_embedded_list_read/c/fss_embedded_list_read.c index 8451edf..035e9ef 100644 --- a/level_3/fss_embedded_list_read/c/fss_embedded_list_read.c +++ b/level_3/fss_embedded_list_read/c/fss_embedded_list_read.c @@ -209,10 +209,10 @@ extern "C" { status = F_status_set_error(F_parameter); } - else if (fl_string_dynamic_compare_string(fss_embedded_list_read_delimit_mode_name_none_s.string, data.argv[index], fss_embedded_list_read_delimit_mode_name_none_s.used) == F_equal_to) { + else if (f_compare_dynamic_string(fss_embedded_list_read_delimit_mode_name_none_s.string, data.argv[index], fss_embedded_list_read_delimit_mode_name_none_s.used) == F_equal_to) { data.delimit_mode = fss_embedded_list_read_delimit_mode_none_e; } - else if (fl_string_dynamic_compare_string(fss_embedded_list_read_delimit_mode_name_all_s.string, data.argv[index], fss_embedded_list_read_delimit_mode_name_all_s.used) == F_equal_to) { + else if (f_compare_dynamic_string(fss_embedded_list_read_delimit_mode_name_all_s.string, data.argv[index], fss_embedded_list_read_delimit_mode_name_all_s.used) == F_equal_to) { data.delimit_mode = fss_embedded_list_read_delimit_mode_all_e; } else { diff --git a/level_3/fss_embedded_list_read/c/fss_embedded_list_read.h b/level_3/fss_embedded_list_read/c/fss_embedded_list_read.h index 8d59c0c..e8d2e89 100644 --- a/level_3/fss_embedded_list_read/c/fss_embedded_list_read.h +++ b/level_3/fss_embedded_list_read/c/fss_embedded_list_read.h @@ -28,17 +28,18 @@ #include #include #include +#include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_embedded_list_read/c/private-read.c b/level_3/fss_embedded_list_read/c/private-read.c index db269db..1929502 100644 --- a/level_3/fss_embedded_list_read/c/private-read.c +++ b/level_3/fss_embedded_list_read/c/private-read.c @@ -177,10 +177,10 @@ extern "C" { depths->array[depths->used].value_name.used = 0; if (data->main->parameters.array[fss_embedded_list_read_parameter_trim_e].result & f_console_result_found_e) { - status = fl_string_dynamic_rip(argv[values_order[i]], &depths->array[depths->used].value_name); + status = f_rip_dynamic(argv[values_order[i]], &depths->array[depths->used].value_name); if (F_status_is_error(status)) { - fll_error_print(data->main->error, F_status_set_fine(status), "fl_string_dynamic_rip", fll_error_file_flag_fallback_e); + fll_error_print(data->main->error, F_status_set_fine(status), "f_rip_dynamic", fll_error_file_flag_fallback_e); return status; } @@ -389,12 +389,12 @@ extern "C" { if (data->main->parameters.array[fss_embedded_list_read_parameter_trim_e].result & f_console_result_found_e) { - if (fl_string_dynamic_partial_compare_except_trim_dynamic(depths.array[depths_index].value_name, data->buffer, items->array[depths.array[depths_index].value_at].object, except_none, *objects_delimits) != F_equal_to) { + if (f_compare_dynamic_partial_except_trim_dynamic(depths.array[depths_index].value_name, data->buffer, items->array[depths.array[depths_index].value_at].object, except_none, *objects_delimits) != F_equal_to) { skip[depths.array[depths_index].value_at] = F_true; } } else { - if (fl_string_dynamic_partial_compare_except_dynamic(depths.array[depths_index].value_name, data->buffer, items->array[depths.array[depths_index].value_at].object, except_none, *objects_delimits) != F_equal_to) { + if (f_compare_dynamic_partial_except_dynamic(depths.array[depths_index].value_name, data->buffer, items->array[depths.array[depths_index].value_at].object, except_none, *objects_delimits) != F_equal_to) { skip[depths.array[depths_index].value_at] = F_true; } } @@ -407,7 +407,7 @@ extern "C" { if (skip[i]) continue; - if (fl_string_dynamic_partial_compare_except_trim_dynamic(depths.array[depths_index].value_name, data->buffer, items->array[i].object, except_none, *objects_delimits) != F_equal_to) { + if (f_compare_dynamic_partial_except_trim_dynamic(depths.array[depths_index].value_name, data->buffer, items->array[i].object, except_none, *objects_delimits) != F_equal_to) { skip[i] = F_true; } } // for @@ -417,7 +417,7 @@ extern "C" { if (skip[i]) continue; - if (fl_string_dynamic_partial_compare_except_dynamic(depths.array[depths_index].value_name, data->buffer, items->array[i].object, except_none, *objects_delimits) != F_equal_to) { + if (f_compare_dynamic_partial_except_dynamic(depths.array[depths_index].value_name, data->buffer, items->array[i].object, except_none, *objects_delimits) != F_equal_to) { skip[i] = F_true; } } // for diff --git a/level_3/fss_embedded_list_read/data/build/dependencies b/level_3/fss_embedded_list_read/data/build/dependencies index 501d568..22cdeb6 100644 --- a/level_3/fss_embedded_list_read/data/build/dependencies +++ b/level_3/fss_embedded_list_read/data/build/dependencies @@ -7,20 +7,22 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_directory f_environment f_file f_fss +f_parse f_pipe f_print +f_rip f_signal fl_conversion fl_fss fl_print -fl_string fll_error fll_file diff --git a/level_3/fss_embedded_list_read/data/build/settings b/level_3/fss_embedded_list_read/data/build/settings index 6fddecc..8d2a9d3 100644 --- a/level_3/fss_embedded_list_read/data/build/settings +++ b/level_3/fss_embedded_list_read/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_extended_list_read/c/fss_extended_list_read.c b/level_3/fss_extended_list_read/c/fss_extended_list_read.c index b03c7c7..fa53424 100644 --- a/level_3/fss_extended_list_read/c/fss_extended_list_read.c +++ b/level_3/fss_extended_list_read/c/fss_extended_list_read.c @@ -243,13 +243,13 @@ extern "C" { break; } - else if (fl_string_dynamic_compare_string(fss_extended_list_read_delimit_mode_name_none_s.string, data.argv[index], fss_extended_list_read_delimit_mode_name_none_s.used) == F_equal_to) { + else if (f_compare_dynamic_string(fss_extended_list_read_delimit_mode_name_none_s.string, data.argv[index], fss_extended_list_read_delimit_mode_name_none_s.used) == F_equal_to) { data.delimit_mode = fss_extended_list_read_delimit_mode_none_e; } - else if (fl_string_dynamic_compare_string(fss_extended_list_read_delimit_mode_name_all_s.string, data.argv[index], fss_extended_list_read_delimit_mode_name_all_s.used) == F_equal_to) { + else if (f_compare_dynamic_string(fss_extended_list_read_delimit_mode_name_all_s.string, data.argv[index], fss_extended_list_read_delimit_mode_name_all_s.used) == F_equal_to) { data.delimit_mode = fss_extended_list_read_delimit_mode_all_e; } - else if (fl_string_dynamic_compare_string(fss_extended_list_read_delimit_mode_name_object_s.string, data.argv[index], fss_extended_list_read_delimit_mode_name_object_s.used) == F_equal_to) { + else if (f_compare_dynamic_string(fss_extended_list_read_delimit_mode_name_object_s.string, data.argv[index], fss_extended_list_read_delimit_mode_name_object_s.used) == F_equal_to) { switch (data.delimit_mode) { case 0: data.delimit_mode = fss_extended_list_read_delimit_mode_object_e; diff --git a/level_3/fss_extended_list_read/c/fss_extended_list_read.h b/level_3/fss_extended_list_read/c/fss_extended_list_read.h index b0fb05e..e2c2bcb 100644 --- a/level_3/fss_extended_list_read/c/fss_extended_list_read.h +++ b/level_3/fss_extended_list_read/c/fss_extended_list_read.h @@ -28,17 +28,18 @@ #include #include #include +#include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_extended_list_read/c/private-read.c b/level_3/fss_extended_list_read/c/private-read.c index f7b1d34..b186670 100644 --- a/level_3/fss_extended_list_read/c/private-read.c +++ b/level_3/fss_extended_list_read/c/private-read.c @@ -155,14 +155,14 @@ extern "C" { data->depths.array[i].index_name = main->parameters.array[fss_extended_list_read_parameter_name_e].values.array[position_name]; if (main->parameters.array[fss_extended_list_read_parameter_trim_e].result & f_console_result_found_e) { - status = fl_string_dynamic_rip(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); + status = f_rip_dynamic(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } else { status = f_string_dynamic_append(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } if (F_status_is_error(status)) { - fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_extended_list_read_parameter_trim_e].result & f_console_result_found_e) ? "fl_string_dynamic_rip" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); + fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_extended_list_read_parameter_trim_e].result & f_console_result_found_e) ? "f_rip_dynamic" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); return status; } @@ -636,7 +636,7 @@ extern "C" { // This standard should always treat selected names as trimmed. for (i = 0; i < data->objects.used; ++i) { - if (fl_string_dynamic_partial_compare_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_object) == F_equal_to) { + if (f_compare_dynamic_partial_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_object) == F_equal_to) { names[i] = F_true; } } // for diff --git a/level_3/fss_extended_list_read/c/private-read.h b/level_3/fss_extended_list_read/c/private-read.h index e169488..5790704 100644 --- a/level_3/fss_extended_list_read/c/private-read.h +++ b/level_3/fss_extended_list_read/c/private-read.h @@ -59,13 +59,13 @@ extern "C" { * * Errors (with error bit) from: f_string_append(). * Errors (with error bit) from: fl_conversion_dynamic_partial_to_unsigned_detect(). - * Errors (with error bit) from: fl_string_dynamic_rip(). + * Errors (with error bit) from: f_rip_dynamic(). * * Errors (with error bit) from: fss_extended_list_read_depths_resize(). * * @see f_string_append() * @see fl_conversion_dynamic_partial_to_unsigned_detect() - * @see fl_string_dynamic_rip() + * @see f_rip_dynamic() * * @see fss_extended_list_read_depths_resize() */ diff --git a/level_3/fss_extended_list_read/data/build/dependencies b/level_3/fss_extended_list_read/data/build/dependencies index 501d568..22cdeb6 100644 --- a/level_3/fss_extended_list_read/data/build/dependencies +++ b/level_3/fss_extended_list_read/data/build/dependencies @@ -7,20 +7,22 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_directory f_environment f_file f_fss +f_parse f_pipe f_print +f_rip f_signal fl_conversion fl_fss fl_print -fl_string fll_error fll_file diff --git a/level_3/fss_extended_list_read/data/build/settings b/level_3/fss_extended_list_read/data/build/settings index 79e0fea..cbc1498 100644 --- a/level_3/fss_extended_list_read/data/build/settings +++ b/level_3/fss_extended_list_read/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_extended_read/c/fss_extended_read.c b/level_3/fss_extended_read/c/fss_extended_read.c index ab76451..5b352b0 100644 --- a/level_3/fss_extended_read/c/fss_extended_read.c +++ b/level_3/fss_extended_read/c/fss_extended_read.c @@ -242,13 +242,13 @@ extern "C" { break; } - else if (fl_string_dynamic_compare(data.argv[index], fss_extended_read_delimit_mode_name_none_s) == F_equal_to) { + else if (f_compare_dynamic(data.argv[index], fss_extended_read_delimit_mode_name_none_s) == F_equal_to) { data.delimit_mode = fss_extended_read_delimit_mode_none_e; } - else if (fl_string_dynamic_compare(data.argv[index], fss_extended_read_delimit_mode_name_all_s) == F_equal_to) { + else if (f_compare_dynamic(data.argv[index], fss_extended_read_delimit_mode_name_all_s) == F_equal_to) { data.delimit_mode = fss_extended_read_delimit_mode_all_e; } - else if (fl_string_dynamic_compare(data.argv[index], fss_extended_read_delimit_mode_name_object_s) == F_equal_to) { + else if (f_compare_dynamic(data.argv[index], fss_extended_read_delimit_mode_name_object_s) == F_equal_to) { switch (data.delimit_mode) { case 0: data.delimit_mode = fss_extended_read_delimit_mode_object_e; diff --git a/level_3/fss_extended_read/c/fss_extended_read.h b/level_3/fss_extended_read/c/fss_extended_read.h index be4fe40..5d03807 100644 --- a/level_3/fss_extended_read/c/fss_extended_read.h +++ b/level_3/fss_extended_read/c/fss_extended_read.h @@ -28,17 +28,18 @@ #include #include #include +#include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_extended_read/c/private-read.c b/level_3/fss_extended_read/c/private-read.c index 84d2c9c..30a18a3 100644 --- a/level_3/fss_extended_read/c/private-read.c +++ b/level_3/fss_extended_read/c/private-read.c @@ -159,14 +159,14 @@ extern "C" { data->depths.array[i].index_name = main->parameters.array[fss_extended_read_parameter_name_e].values.array[position_name]; if (main->parameters.array[fss_extended_read_parameter_trim_e].result & f_console_result_found_e) { - status = fl_string_dynamic_rip(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); + status = f_rip_dynamic(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } else { status = f_string_dynamic_append(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } if (F_status_is_error(status)) { - fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_extended_read_parameter_trim_e].result & f_console_result_found_e) ? "fl_string_dynamic_rip" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); + fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_extended_read_parameter_trim_e].result & f_console_result_found_e) ? "f_rip_dynamic" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); return status; } @@ -576,7 +576,7 @@ extern "C" { if (data->option & fss_extended_read_data_option_trim_d) { for (i = 0; i < data->objects.used; ++i) { - if (fl_string_dynamic_partial_compare_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_object) == F_equal_to) { + if (f_compare_dynamic_partial_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_object) == F_equal_to) { names[i] = F_true; } } // for @@ -584,7 +584,7 @@ extern "C" { else { for (i = 0; i < data->objects.used; ++i) { - if (fl_string_dynamic_partial_compare_except_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_content) == F_equal_to) { + if (f_compare_dynamic_partial_except_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_content) == F_equal_to) { names[i] = F_true; } } // for diff --git a/level_3/fss_extended_read/c/private-read.h b/level_3/fss_extended_read/c/private-read.h index f248bf1..4a11337 100644 --- a/level_3/fss_extended_read/c/private-read.h +++ b/level_3/fss_extended_read/c/private-read.h @@ -59,13 +59,13 @@ extern "C" { * * Errors (with error bit) from: f_string_append(). * Errors (with error bit) from: fl_conversion_dynamic_partial_to_unsigned_detect(). - * Errors (with error bit) from: fl_string_dynamic_rip(). + * Errors (with error bit) from: f_rip_dynamic(). * * Errors (with error bit) from: fss_extended_read_depths_resize(). * * @see f_string_append() * @see fl_conversion_dynamic_partial_to_unsigned_detect() - * @see fl_string_dynamic_rip() + * @see f_rip_dynamic() * * @see fss_extended_read_depths_resize() */ diff --git a/level_3/fss_extended_read/data/build/dependencies b/level_3/fss_extended_read/data/build/dependencies index 501d568..22cdeb6 100644 --- a/level_3/fss_extended_read/data/build/dependencies +++ b/level_3/fss_extended_read/data/build/dependencies @@ -7,20 +7,22 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_directory f_environment f_file f_fss +f_parse f_pipe f_print +f_rip f_signal fl_conversion fl_fss fl_print -fl_string fll_error fll_file diff --git a/level_3/fss_extended_read/data/build/settings b/level_3/fss_extended_read/data/build/settings index 2c3c037..2bc3615 100644 --- a/level_3/fss_extended_read/data/build/settings +++ b/level_3/fss_extended_read/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_identify/c/fss_identify.h b/level_3/fss_identify/c/fss_identify.h index 1d846bc..b0a0b26 100644 --- a/level_3/fss_identify/c/fss_identify.h +++ b/level_3/fss_identify/c/fss_identify.h @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -31,13 +32,13 @@ #include #include #include +#include #include // FLL-1 includes. #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_identify/c/private-identify.c b/level_3/fss_identify/c/private-identify.c index 6c23d68..604bedb 100644 --- a/level_3/fss_identify/c/private-identify.c +++ b/level_3/fss_identify/c/private-identify.c @@ -186,10 +186,10 @@ extern "C" { range.start = 0; } - return fl_string_dynamic_partial_compare_string((const f_string_t) id.name, data->name, id.used, range); + return f_compare_dynamic_partial_string((const f_string_t) id.name, data->name, id.used, range); } - return fl_string_dynamic_compare_string((const f_string_t) id.name, data->name, id.used); + return f_compare_dynamic_string((const f_string_t) id.name, data->name, id.used); } #endif // _di_fss_identify_process_name_compare_ diff --git a/level_3/fss_identify/c/private-identify.h b/level_3/fss_identify/c/private-identify.h index 1f50f73..23cbc65 100644 --- a/level_3/fss_identify/c/private-identify.h +++ b/level_3/fss_identify/c/private-identify.h @@ -84,10 +84,10 @@ extern "C" { * F_false on no match. * * Errors (with error bit) from fl_conversion_dynamic_partial_to_hexidecimal_unsigned(). - * Errors (with error bit) from fl_string_dynamic_compare_string(). + * Errors (with error bit) from f_compare_dynamic_string(). * * @see fl_conversion_dynamic_partial_to_hexidecimal_unsigned() - * @see fl_string_dynamic_compare_string() + * @see f_compare_dynamic_string() */ #ifndef _di_fss_identify_process_name_compare_ f_status_t fss_identify_process_name_compare(fss_identify_data_t * const data, const f_fll_id_t id, const uint8_t mode) F_attribute_visibility_internal_d; diff --git a/level_3/fss_identify/data/build/dependencies b/level_3/fss_identify/data/build/dependencies index ad384b7..6d49db2 100644 --- a/level_3/fss_identify/data/build/dependencies +++ b/level_3/fss_identify/data/build/dependencies @@ -7,18 +7,20 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_file f_fss +f_parse f_pipe f_print +f_rip f_signal fl_conversion fl_fss fl_print -fl_string fll_error fll_fss diff --git a/level_3/fss_identify/data/build/settings b/level_3/fss_identify/data/build/settings index 9c6bbcf..521026c 100644 --- a/level_3/fss_identify/data/build/settings +++ b/level_3/fss_identify/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_fss -lf_memory -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_fss -lfl_print -lf_color -lf_console -lf_conversion -lf_file -lf_fss -lf_memory -lf_parse -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_payload_read/c/fss_payload_read.c b/level_3/fss_payload_read/c/fss_payload_read.c index 4073620..4d1d7e2 100644 --- a/level_3/fss_payload_read/c/fss_payload_read.c +++ b/level_3/fss_payload_read/c/fss_payload_read.c @@ -258,13 +258,13 @@ extern "C" { break; } - else if (fl_string_dynamic_compare(data.argv[index], fss_payload_read_delimit_mode_name_none_s) == F_equal_to) { + else if (f_compare_dynamic(data.argv[index], fss_payload_read_delimit_mode_name_none_s) == F_equal_to) { data.delimit_mode = fss_payload_read_delimit_mode_none_e; } - else if (fl_string_dynamic_compare(data.argv[index], fss_payload_read_delimit_mode_name_all_s) == F_equal_to) { + else if (f_compare_dynamic(data.argv[index], fss_payload_read_delimit_mode_name_all_s) == F_equal_to) { data.delimit_mode = fss_payload_read_delimit_mode_all_e; } - else if (fl_string_dynamic_compare(data.argv[index], fss_payload_read_delimit_mode_name_object_s) == F_equal_to) { + else if (f_compare_dynamic(data.argv[index], fss_payload_read_delimit_mode_name_object_s) == F_equal_to) { switch (data.delimit_mode) { case 0: data.delimit_mode = fss_payload_read_delimit_mode_object_e; diff --git a/level_3/fss_payload_read/c/fss_payload_read.h b/level_3/fss_payload_read/c/fss_payload_read.h index 914df74..81ef3a8 100644 --- a/level_3/fss_payload_read/c/fss_payload_read.h +++ b/level_3/fss_payload_read/c/fss_payload_read.h @@ -28,17 +28,18 @@ #include #include #include +#include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_payload_read/c/private-read.c b/level_3/fss_payload_read/c/private-read.c index d7d81c6..b7e6b63 100644 --- a/level_3/fss_payload_read/c/private-read.c +++ b/level_3/fss_payload_read/c/private-read.c @@ -155,14 +155,14 @@ extern "C" { data->depths.array[i].index_name = main->parameters.array[fss_payload_read_parameter_name_e].values.array[position_name]; if (main->parameters.array[fss_payload_read_parameter_trim_e].result & f_console_result_found_e) { - status = fl_string_dynamic_rip(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); + status = f_rip_dynamic(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } else { status = f_string_dynamic_append(data->argv[data->depths.array[i].index_name], &data->depths.array[i].value_name); } if (F_status_is_error(status)) { - fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_payload_read_parameter_trim_e].result & f_console_result_found_e) ? "fl_string_dynamic_rip" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); + fll_error_print(main->error, F_status_set_fine(status), (main->parameters.array[fss_payload_read_parameter_trim_e].result & f_console_result_found_e) ? "f_rip_dynamic" : "f_string_dynamic_append", fll_error_file_flag_fallback_e); return status; } @@ -277,7 +277,7 @@ extern "C" { // Load the "header" information. for (f_array_length_t i = 0; i < data->objects.used; ++i) { - if (fl_string_dynamic_partial_compare_string(F_fss_header_s, data->buffer, F_fss_string_header_s_length, data->objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(F_fss_header_s, data->buffer, F_fss_string_header_s_length, data->objects.array[i]) == F_equal_to) { f_string_range_t input_header = data->contents.array[i].array[0]; status = fll_fss_extended_read(data->buffer, state, &input_header, &data->objects_header, &data->contents_header, &data->quotes_object_header, &data->quotes_content_header, &data->delimits_object_header, &data->delimits_content_header); @@ -351,7 +351,7 @@ extern "C" { // For "headers" FSS-0001 Extended, only operate if the "header" name is true. for (f_array_length_t i = 0; i < data->objects.used; ++i) { - if (fl_string_dynamic_partial_compare_string(F_fss_header_s, data->buffer, F_fss_string_header_s_length, data->objects.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(F_fss_header_s, data->buffer, F_fss_string_header_s_length, data->objects.array[i]) == F_equal_to) { if (names[i]) break; if (main->parameters.array[fss_payload_read_parameter_total_e].result & f_console_result_found_e) { @@ -446,7 +446,7 @@ extern "C" { main->signal_check = 0; } - is_payload = fl_string_dynamic_partial_compare_string(f_fss_payload_s.string, data->buffer, f_fss_payload_s.used, data->objects.array[i]) == F_equal_to; + is_payload = f_compare_dynamic_partial_string(f_fss_payload_s.string, data->buffer, f_fss_payload_s.used, data->objects.array[i]) == F_equal_to; fss_payload_read_print_at(main, is_payload, i, *delimits_object, *delimits_content, data); } // for @@ -520,7 +520,7 @@ extern "C" { f_file_stream_unlock(main->output.to); } else { - is_payload = fl_string_dynamic_partial_compare_string(f_fss_payload_s.string, data->buffer, f_fss_payload_s.used, data->objects.array[i]) == F_equal_to; + is_payload = f_compare_dynamic_partial_string(f_fss_payload_s.string, data->buffer, f_fss_payload_s.used, data->objects.array[i]) == F_equal_to; fss_payload_read_print_at(main, is_payload, i, *delimits_object, *delimits_content, data); } @@ -953,7 +953,7 @@ extern "C" { // This standard should always treat selected names as trimmed. for (i = 0; i < data->objects.used; ++i) { - if (fl_string_dynamic_partial_compare_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_object) == F_equal_to) { + if (f_compare_dynamic_partial_except_trim_dynamic(data->depths.array[0].value_name, data->buffer, data->objects.array[i], except_none, data->delimits_object) == F_equal_to) { names[i] = F_true; } } // for @@ -979,7 +979,7 @@ extern "C" { if (data->option & fss_payload_read_data_option_trim_d) { for (i = 0; i < data->objects_header.used; ++i) { - if (fl_string_dynamic_partial_compare_except_trim_dynamic(data->depths.array[data->depths.used - 1].value_name, data->buffer, data->objects_header.array[i], except_none, data->delimits_object_header) == F_equal_to) { + if (f_compare_dynamic_partial_except_trim_dynamic(data->depths.array[data->depths.used - 1].value_name, data->buffer, data->objects_header.array[i], except_none, data->delimits_object_header) == F_equal_to) { names[i] = F_true; } } // for @@ -987,7 +987,7 @@ extern "C" { else { for (i = 0; i < data->objects_header.used; ++i) { - if (fl_string_dynamic_partial_compare_except_dynamic(data->depths.array[data->depths.used - 1].value_name, data->buffer, data->objects_header.array[i], except_none, data->delimits_content_header) == F_equal_to) { + if (f_compare_dynamic_partial_except_dynamic(data->depths.array[data->depths.used - 1].value_name, data->buffer, data->objects_header.array[i], except_none, data->delimits_content_header) == F_equal_to) { names[i] = F_true; } } // for diff --git a/level_3/fss_payload_read/c/private-read.h b/level_3/fss_payload_read/c/private-read.h index b682617..0665a16 100644 --- a/level_3/fss_payload_read/c/private-read.h +++ b/level_3/fss_payload_read/c/private-read.h @@ -63,13 +63,13 @@ extern "C" { * * Errors (with error bit) from: f_string_append(). * Errors (with error bit) from: fl_conversion_dynamic_partial_to_unsigned_detect(). - * Errors (with error bit) from: fl_string_dynamic_rip(). + * Errors (with error bit) from: f_rip_dynamic(). * * Errors (with error bit) from: fss_payload_read_depths_resize(). * * @see f_string_append() * @see fl_conversion_dynamic_partial_to_unsigned_detect() - * @see fl_string_dynamic_rip() + * @see f_rip_dynamic() * * @see fss_payload_read_depths_resize() */ diff --git a/level_3/fss_payload_read/data/build/dependencies b/level_3/fss_payload_read/data/build/dependencies index 501d568..22cdeb6 100644 --- a/level_3/fss_payload_read/data/build/dependencies +++ b/level_3/fss_payload_read/data/build/dependencies @@ -7,20 +7,22 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_directory f_environment f_file f_fss +f_parse f_pipe f_print +f_rip f_signal fl_conversion fl_fss fl_print -fl_string fll_error fll_file diff --git a/level_3/fss_payload_read/data/build/settings b/level_3/fss_payload_read/data/build/settings index 728c203..6181136 100644 --- a/level_3/fss_payload_read/data/build/settings +++ b/level_3/fss_payload_read/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_write/c/basic/fss_write.h b/level_3/fss_write/c/basic/fss_write.h index 7ac9851..93fdfa8 100644 --- a/level_3/fss_write/c/basic/fss_write.h +++ b/level_3/fss_write/c/basic/fss_write.h @@ -23,19 +23,20 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_write/c/basic_list/fss_write.h b/level_3/fss_write/c/basic_list/fss_write.h index fe27f9f..b311f8d 100644 --- a/level_3/fss_write/c/basic_list/fss_write.h +++ b/level_3/fss_write/c/basic_list/fss_write.h @@ -23,19 +23,20 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_write/c/embedded_list/fss_write.h b/level_3/fss_write/c/embedded_list/fss_write.h index 35e1819..ff1fe6d 100644 --- a/level_3/fss_write/c/embedded_list/fss_write.h +++ b/level_3/fss_write/c/embedded_list/fss_write.h @@ -23,19 +23,20 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_write/c/extended/fss_write.h b/level_3/fss_write/c/extended/fss_write.h index 3e25405..ecec609 100644 --- a/level_3/fss_write/c/extended/fss_write.h +++ b/level_3/fss_write/c/extended/fss_write.h @@ -23,19 +23,20 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_write/c/extended_list/fss_write.h b/level_3/fss_write/c/extended_list/fss_write.h index 9262924..6742a8d 100644 --- a/level_3/fss_write/c/extended_list/fss_write.h +++ b/level_3/fss_write/c/extended_list/fss_write.h @@ -23,19 +23,20 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_write/c/main/fss_write.h b/level_3/fss_write/c/main/fss_write.h index fa48535..0dea379 100644 --- a/level_3/fss_write/c/main/fss_write.h +++ b/level_3/fss_write/c/main/fss_write.h @@ -23,18 +23,19 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_write/c/main/main.c b/level_3/fss_write/c/main/main.c index 38586b7..a47d77f 100644 --- a/level_3/fss_write/c/main/main.c +++ b/level_3/fss_write/c/main/main.c @@ -84,9 +84,9 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) { index = main->program.parameters.array[fss_write_parameter_as_e].values.array[i]; - if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_0000_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0000_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0000_s) == F_equal_to) { + if (f_compare_dynamic(argv[index], fss_write_format_code_short_0000_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_long_0000_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_human_0000_s) == F_equal_to) { main->setting.standard = fss_write_basic_standard_s; main->setting.process_content = &fss_write_basic_process_content; @@ -98,9 +98,9 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) { main->setting.flag -= main->setting.flag & fss_write_main_flag_ignore_e; // Not supported by basic. main->setting.flag -= main->setting.flag & fss_write_main_flag_content_multiple_e; // Not supported by basic. } - else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_0001_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0001_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0001_s) == F_equal_to) { + else if (f_compare_dynamic(argv[index], fss_write_format_code_short_0001_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_long_0001_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_human_0001_s) == F_equal_to) { main->setting.standard = fss_write_extended_standard_s; main->setting.process_content = &fss_write_extended_process_content; @@ -112,9 +112,9 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) { main->setting.flag -= main->setting.flag & fss_write_main_flag_ignore_e; // Not supported by extended. main->setting.flag |= fss_write_main_flag_content_multiple_e; } - else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_0002_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0002_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0002_s) == F_equal_to) { + else if (f_compare_dynamic(argv[index], fss_write_format_code_short_0002_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_long_0002_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_human_0002_s) == F_equal_to) { main->setting.standard = fss_write_basic_list_standard_s; main->setting.process_content = &fss_write_basic_list_process_content; @@ -126,9 +126,9 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) { main->setting.flag -= main->setting.flag & fss_write_main_flag_ignore_e; // Not supported by basic list. main->setting.flag -= main->setting.flag & fss_write_main_flag_content_multiple_e; // Not supported by basic list. } - else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_0003_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0003_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0003_s) == F_equal_to) { + else if (f_compare_dynamic(argv[index], fss_write_format_code_short_0003_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_long_0003_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_human_0003_s) == F_equal_to) { main->setting.standard = fss_write_extended_list_standard_s; main->setting.process_content = &fss_write_extended_list_process_content; @@ -140,9 +140,9 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) { main->setting.flag |= fss_write_main_flag_ignore_e; main->setting.flag -= main->setting.flag & fss_write_main_flag_content_multiple_e; // Not supported by extended list. } - else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_0008_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_long_0008_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_human_0008_s) == F_equal_to) { + else if (f_compare_dynamic(argv[index], fss_write_format_code_short_0008_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_long_0008_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_human_0008_s) == F_equal_to) { main->setting.standard = fss_write_embedded_list_standard_s; main->setting.process_content = &fss_write_embedded_list_process_content; @@ -154,9 +154,9 @@ int main(const int argc, const f_string_t *argv, const f_string_t *envp) { main->setting.flag |= fss_write_main_flag_ignore_e; main->setting.flag |= fss_write_main_flag_content_multiple_e; } - else if (fl_string_dynamic_compare(argv[index], fss_write_format_code_short_000e_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_long_000e_s) == F_equal_to || - fl_string_dynamic_compare(argv[index], fss_write_format_code_human_000e_s) == F_equal_to) { + else if (f_compare_dynamic(argv[index], fss_write_format_code_short_000e_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_long_000e_s) == F_equal_to || + f_compare_dynamic(argv[index], fss_write_format_code_human_000e_s) == F_equal_to) { main->setting.standard = fss_write_payload_standard_s; main->setting.process_content = 0; // Not used by payload. diff --git a/level_3/fss_write/c/payload/fss_write.c b/level_3/fss_write/c/payload/fss_write.c index cda9787..3c6a376 100644 --- a/level_3/fss_write/c/payload/fss_write.c +++ b/level_3/fss_write/c/payload/fss_write.c @@ -215,7 +215,7 @@ extern "C" { } // When payload is provided, all data at this point is part of the payload until the end of the pipe. - if (fl_string_dynamic_compare(f_fss_payload_s, *main->setting.object) == F_equal_to) { + if (f_compare_dynamic(f_fss_payload_s, *main->setting.object) == F_equal_to) { if (total > 1) { main->setting.state.status = f_string_dynamic_increase_by(total, &main->setting.contents->array[main->setting.contents->used]); @@ -551,7 +551,7 @@ extern "C" { for (f_array_length_t i = 0; i < values->used; ++i) { - if (fl_string_dynamic_compare(argv[values->array[i]], fss_write_payload_s) == F_equal_to && i + 1 < values->used) { + if (f_compare_dynamic(argv[values->array[i]], fss_write_payload_s) == F_equal_to && i + 1 < values->used) { main->setting.state.status = F_status_set_error(F_parameter); fss_write_payload_print_error_payload_not_last(&main->program.error); diff --git a/level_3/fss_write/c/payload/fss_write.h b/level_3/fss_write/c/payload/fss_write.h index a2da5db..9ac3fd5 100644 --- a/level_3/fss_write/c/payload/fss_write.h +++ b/level_3/fss_write/c/payload/fss_write.h @@ -23,19 +23,20 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/fss_write/data/build/dependencies b/level_3/fss_write/data/build/dependencies index 501d568..22cdeb6 100644 --- a/level_3/fss_write/data/build/dependencies +++ b/level_3/fss_write/data/build/dependencies @@ -7,20 +7,22 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_directory f_environment f_file f_fss +f_parse f_pipe f_print +f_rip f_signal fl_conversion fl_fss fl_print -fl_string fll_error fll_file diff --git a/level_3/fss_write/data/build/settings b/level_3/fss_write/data/build/settings index dad2881..aa2338a 100644 --- a/level_3/fss_write/data/build/settings +++ b/level_3/fss_write/data/build/settings @@ -21,7 +21,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_write/data/build/settings.basic b/level_3/fss_write/data/build/settings.basic index 47a3931..dca59fa 100644 --- a/level_3/fss_write/data/build/settings.basic +++ b/level_3/fss_write/data/build/settings.basic @@ -22,7 +22,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lfss_write -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_write/data/build/settings.basic_list b/level_3/fss_write/data/build/settings.basic_list index 3585ebf..ba5a999 100644 --- a/level_3/fss_write/data/build/settings.basic_list +++ b/level_3/fss_write/data/build/settings.basic_list @@ -22,7 +22,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lfss_write -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_write/data/build/settings.embedded_list b/level_3/fss_write/data/build/settings.embedded_list index 70c9b0b..95bc870 100644 --- a/level_3/fss_write/data/build/settings.embedded_list +++ b/level_3/fss_write/data/build/settings.embedded_list @@ -22,7 +22,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lfss_write -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_write/data/build/settings.extended b/level_3/fss_write/data/build/settings.extended index d6f46c0..3a7c1b3 100644 --- a/level_3/fss_write/data/build/settings.extended +++ b/level_3/fss_write/data/build/settings.extended @@ -22,7 +22,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lfss_write -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_write/data/build/settings.extended_list b/level_3/fss_write/data/build/settings.extended_list index d294bc3..21d2587 100644 --- a/level_3/fss_write/data/build/settings.extended_list +++ b/level_3/fss_write/data/build/settings.extended_list @@ -22,7 +22,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lfss_write -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_write/data/build/settings.main b/level_3/fss_write/data/build/settings.main index 5fbc167..6f889b0 100644 --- a/level_3/fss_write/data/build/settings.main +++ b/level_3/fss_write/data/build/settings.main @@ -22,7 +22,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lfss_write -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/fss_write/data/build/settings.payload b/level_3/fss_write/data/build/settings.payload index 30ddb33..3df838c 100644 --- a/level_3/fss_write/data/build/settings.payload +++ b/level_3/fss_write/data/build/settings.payload @@ -22,7 +22,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lfss_write -build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_file -lfll_fss -lfll_print -lfll_program -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_environment -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/iki_read/c/main/common.c b/level_3/iki_read/c/main/common.c index ec40eca..ca21a5d 100644 --- a/level_3/iki_read/c/main/common.c +++ b/level_3/iki_read/c/main/common.c @@ -237,7 +237,7 @@ extern "C" { for (; i < values->used; ++i) { for (j = 0; j < main->setting.names.used; ++j) { - if (fl_string_dynamic_compare(main->program.parameters.arguments.array[values->array[i]], main->setting.names.array[j]) == F_equal_to) break; + if (f_compare_dynamic(main->program.parameters.arguments.array[values->array[i]], main->setting.names.array[j]) == F_equal_to) break; } // for if (j < main->setting.names.used) continue; @@ -317,7 +317,7 @@ extern "C" { // Replace any existing value so that each name exists only once. for (j = 0; j < main->setting.replace.used; ++j) { - if (fl_string_dynamic_compare(main->program.parameters.arguments.array[index], main->setting.replace.array[j].name) == F_equal_to) { + if (f_compare_dynamic(main->program.parameters.arguments.array[index], main->setting.replace.array[j].name) == F_equal_to) { break; } } // for @@ -412,7 +412,7 @@ extern "C" { // Replace any existing values so that each name exists only once. for (j = 0; j < main->setting.wrap.used; ++j) { - if (fl_string_dynamic_compare(main->program.parameters.arguments.array[index], main->setting.wrap.array[j].a) == F_equal_to) { + if (f_compare_dynamic(main->program.parameters.arguments.array[index], main->setting.wrap.array[j].a) == F_equal_to) { break; } } // for @@ -663,8 +663,8 @@ extern "C" { // Replace any existing values so that each name and value pair exists only once. for (j = 0; j < triple->used; ++j) { - if (fl_string_dynamic_compare(main->program.parameters.arguments.array[index], triple->array[j].a) == F_equal_to) { - if (fl_string_dynamic_compare(main->program.parameters.arguments.array[parameter.values.array[i + 1]], triple->array[j].b) == F_equal_to) { + if (f_compare_dynamic(main->program.parameters.arguments.array[index], triple->array[j].a) == F_equal_to) { + if (f_compare_dynamic(main->program.parameters.arguments.array[parameter.values.array[i + 1]], triple->array[j].b) == F_equal_to) { break; } } diff --git a/level_3/iki_read/c/main/identify.c b/level_3/iki_read/c/main/identify.c index 7d5a1ef..1781087 100644 --- a/level_3/iki_read/c/main/identify.c +++ b/level_3/iki_read/c/main/identify.c @@ -22,7 +22,7 @@ extern "C" { j = main->setting.replace.used - 1; do { - if (fl_string_dynamic_partial_compare_string(main->setting.replace.array[j].name.string, main->setting.buffer, main->setting.replace.array[j].name.used, main->setting.data.vocabulary.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(main->setting.replace.array[j].name.string, main->setting.buffer, main->setting.replace.array[j].name.used, main->setting.data.vocabulary.array[i]) == F_equal_to) { main->setting.map_replaces[i] = j; break; @@ -37,7 +37,7 @@ extern "C" { j = main->setting.wrap.used - 1; do { - if (fl_string_dynamic_partial_compare_string(main->setting.wrap.array[j].a.string, main->setting.buffer, main->setting.wrap.array[j].a.used, main->setting.data.vocabulary.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(main->setting.wrap.array[j].a.string, main->setting.buffer, main->setting.wrap.array[j].a.used, main->setting.data.vocabulary.array[i]) == F_equal_to) { main->setting.map_wraps[i] = j; break; @@ -68,8 +68,8 @@ extern "C" { f_array_length_t i = triple->used - 1; do { - if (fl_string_dynamic_partial_compare_string(triple->array[i].a.string, main->setting.buffer, triple->array[i].a.used, name) == F_equal_to) { - if (fl_string_dynamic_partial_compare_string(triple->array[i].b.string, main->setting.buffer, triple->array[i].b.used, value) == F_equal_to) { + if (f_compare_dynamic_partial_string(triple->array[i].a.string, main->setting.buffer, triple->array[i].a.used, name) == F_equal_to) { + if (f_compare_dynamic_partial_string(triple->array[i].b.string, main->setting.buffer, triple->array[i].b.used, value) == F_equal_to) { return i; } } diff --git a/level_3/iki_read/c/main/iki_read.h b/level_3/iki_read/c/main/iki_read.h index 5a5e67e..c56ae7b 100644 --- a/level_3/iki_read/c/main/iki_read.h +++ b/level_3/iki_read/c/main/iki_read.h @@ -29,12 +29,14 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. @@ -42,7 +44,6 @@ #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/iki_read/c/main/process.c b/level_3/iki_read/c/main/process.c index 79e8d98..3cd3d5b 100644 --- a/level_3/iki_read/c/main/process.c +++ b/level_3/iki_read/c/main/process.c @@ -118,7 +118,7 @@ extern "C" { for (j = 0; j < main->setting.names.used; ++j) { - if (fl_string_dynamic_partial_compare_string(main->setting.names.array[j].string, main->setting.buffer, main->setting.names.array[j].used, main->setting.data.vocabulary.array[i]) == F_equal_to) { + if (f_compare_dynamic_partial_string(main->setting.names.array[j].string, main->setting.buffer, main->setting.names.array[j].used, main->setting.data.vocabulary.array[i]) == F_equal_to) { unmatched = F_false; if (main->setting.flag & iki_read_main_flag_at_e) { @@ -251,7 +251,7 @@ extern "C" { if (main->setting.names.used) { for (k = 0; k < main->setting.names.used; ++k) { - if (fl_string_dynamic_partial_compare_string(main->setting.names.array[k].string, main->setting.buffer, main->setting.names.array[k].used, main->setting.data.vocabulary.array[j]) == F_equal_to) break; + if (f_compare_dynamic_partial_string(main->setting.names.array[k].string, main->setting.buffer, main->setting.names.array[k].used, main->setting.data.vocabulary.array[j]) == F_equal_to) break; } // for if (k < main->setting.names.used) { @@ -358,7 +358,7 @@ extern "C" { for (j = 0; j < main->setting.data.vocabulary.used; ++j) { - main->setting.state.status = fl_string_dynamic_partial_compare(name, main->setting.buffer, range, main->setting.data.vocabulary.array[j]); + main->setting.state.status = f_compare_dynamic_partial(name, main->setting.buffer, range, main->setting.data.vocabulary.array[j]); if (main->setting.state.status == F_equal_to) ++total; } // for diff --git a/level_3/iki_read/data/build/dependencies b/level_3/iki_read/data/build/dependencies index 3c211e1..a70aef0 100644 --- a/level_3/iki_read/data/build/dependencies +++ b/level_3/iki_read/data/build/dependencies @@ -7,19 +7,20 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_file f_iki f_pipe f_print +f_rip f_signal fl_conversion fl_iki fl_print fl_signal -fl_string fll_error fll_print diff --git a/level_3/iki_read/data/build/settings b/level_3/iki_read/data/build/settings index a10f980..2c569c9 100644 --- a/level_3/iki_read/data/build/settings +++ b/level_3/iki_read/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_conversion -lfl_iki -lfl_print -lfl_signal -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_iki -lf_memory -lf_pipe -lf_print -lf_signal -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_conversion -lfl_iki -lfl_print -lfl_signal -lf_color -lf_compare -lf_console -lf_conversion -lf_file -lf_iki -lf_memory -lf_pipe -lf_print -lf_rip -lf_signal -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/iki_write/c/main/iki_write.h b/level_3/iki_write/c/main/iki_write.h index 7c3bcfe..5bddd48 100644 --- a/level_3/iki_write/c/main/iki_write.h +++ b/level_3/iki_write/c/main/iki_write.h @@ -29,19 +29,20 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include #include -#include // FLL-2 includes. #include diff --git a/level_3/iki_write/data/build/dependencies b/level_3/iki_write/data/build/dependencies index 39be9d4..baccdf2 100644 --- a/level_3/iki_write/data/build/dependencies +++ b/level_3/iki_write/data/build/dependencies @@ -13,11 +13,11 @@ f_file f_iki f_pipe f_print +f_rip f_signal fl_iki fl_print -fl_string fll_iki fll_error diff --git a/level_3/iki_write/data/build/settings b/level_3/iki_write/data/build/settings index b8cb892..fa1bc1d 100644 --- a/level_3/iki_write/data/build/settings +++ b/level_3/iki_write/data/build/settings @@ -17,7 +17,7 @@ build_indexer ar build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_iki -lfll_print -lfll_program -lfl_iki -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_iki -lf_memory -lf_pipe -lf_print -lf_signal -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_iki -lfll_print -lfll_program -lfl_iki -lfl_print -lf_color -lf_console -lf_conversion -lf_file -lf_iki -lf_memory -lf_pipe -lf_print -lf_rip -lf_signal -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/status_code/c/fss/status_code.h b/level_3/status_code/c/fss/status_code.h index 8282eea..310e1a7 100644 --- a/level_3/status_code/c/fss/status_code.h +++ b/level_3/status_code/c/fss/status_code.h @@ -23,17 +23,18 @@ #include #include #include -#include +#include #include +#include #include #include +#include #include #include // FLL-1 includes. #include #include -#include // FLL-2 includes. #include diff --git a/level_3/status_code/c/main/status_code.h b/level_3/status_code/c/main/status_code.h index de97c2f..80c8832 100644 --- a/level_3/status_code/c/main/status_code.h +++ b/level_3/status_code/c/main/status_code.h @@ -23,17 +23,18 @@ #include #include #include -#include +#include #include +#include #include #include +#include #include #include // FLL-1 includes. #include #include -#include // FLL-2 includes. #include diff --git a/level_3/status_code/data/build/dependencies b/level_3/status_code/data/build/dependencies index cba01e0..92785d8 100644 --- a/level_3/status_code/data/build/dependencies +++ b/level_3/status_code/data/build/dependencies @@ -10,20 +10,22 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_directory f_file +f_parse f_path f_pipe f_print +f_rip f_signal f_status_string fl_conversion fl_directory fl_print -fl_string fll_error fll_print diff --git a/level_3/status_code/data/build/dependencies.fss b/level_3/status_code/data/build/dependencies.fss index 19e2711..c352f86 100644 --- a/level_3/status_code/data/build/dependencies.fss +++ b/level_3/status_code/data/build/dependencies.fss @@ -10,14 +10,17 @@ f_type_array f_string f_utf f_color +f_compare f_console f_conversion f_directory f_file f_fss +f_parse f_path f_pipe f_print +f_rip f_signal f_status_string @@ -25,7 +28,6 @@ fl_conversion fl_directory fl_fss fl_print -fl_string fll_error fll_fss_status_string diff --git a/level_3/status_code/data/build/settings b/level_3/status_code/data/build/settings index d201d64..0196f1a 100644 --- a/level_3/status_code/data/build/settings +++ b/level_3/status_code/data/build/settings @@ -21,7 +21,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_directory -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_file -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_directory -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_file -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/status_code/data/build/settings.fss b/level_3/status_code/data/build/settings.fss index f3c03b7..4c8935d 100644 --- a/level_3/status_code/data/build/settings.fss +++ b/level_3/status_code/data/build/settings.fss @@ -22,7 +22,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lstatus_code -build_libraries-individual -lfll_error -lfll_fss_status_string -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_file -lf_fss -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_fss_status_string -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_directory -lfl_fss -lfl_print -lf_color -lf_compare -lf_console -lf_conversion -lf_directory -lf_file -lf_fss -lf_memory -lf_parse -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/status_code/data/build/settings.main b/level_3/status_code/data/build/settings.main index 9f2682f..68e49c3 100644 --- a/level_3/status_code/data/build/settings.main +++ b/level_3/status_code/data/build/settings.main @@ -22,7 +22,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -lstatus_code -build_libraries-individual -lfll_error -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_directory -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_directory -lf_file -lf_memory -lf_path -lf_pipe -lf_print -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_print -lfll_program -lfll_status_string -lfl_conversion -lfl_directory -lfl_print -lf_color -lf_console -lf_conversion -lf_directory -lf_file -lf_memory -lf_path -lf_pipe -lf_print -lf_rip -lf_signal -lf_status_string -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll diff --git a/level_3/utf8/c/main/utf8.h b/level_3/utf8/c/main/utf8.h index 8822c84..3cb0fd1 100644 --- a/level_3/utf8/c/main/utf8.h +++ b/level_3/utf8/c/main/utf8.h @@ -35,18 +35,19 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include // FLL-1 includes. #include #include -#include #include // FLL-2 includes. diff --git a/level_3/utf8/data/build/dependencies b/level_3/utf8/data/build/dependencies index 6e53394..5f243cb 100644 --- a/level_3/utf8/data/build/dependencies +++ b/level_3/utf8/data/build/dependencies @@ -10,13 +10,14 @@ f_color f_console f_conversion f_file +f_parse f_pipe f_print +f_rip f_signal fl_conversion fl_print -fl_string fll_error fll_print diff --git a/level_3/utf8/data/build/settings b/level_3/utf8/data/build/settings index 87672db..710372a 100644 --- a/level_3/utf8/data/build/settings +++ b/level_3/utf8/data/build/settings @@ -18,7 +18,7 @@ build_indexer_arguments rcs build_language c build_libraries -lc -build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_conversion -lfl_print -lfl_string -lf_color -lf_console -lf_conversion -lf_file -lf_memory -lf_pipe -lf_print -lf_signal -lf_string -lf_type_array -lf_utf +build_libraries-individual -lfll_error -lfll_print -lfll_program -lfl_conversion -lfl_print -lf_color -lf_console -lf_conversion -lf_file -lf_memory -lf_pipe -lf_print -lf_rip -lf_signal -lf_string -lf_type_array -lf_utf build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll -- 1.8.3.1