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_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
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
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
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
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
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
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
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
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
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
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
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
$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/ &&
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
// 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
//#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_
//#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_
#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_
#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_
#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_
#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_
//#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_
#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_
#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_
#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_
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
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
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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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 <string.h>
+
+// FLL-0 includes.
+#include <fll/level_0/status.h>
+#include <fll/level_0/memory.h>
+#include <fll/level_0/type.h>
+#include <fll/level_0/utf.h>
+
+// FLL-0 compare includes.
+#include <fll/level_0/compare/utf.h>
+
+#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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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
-#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;
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;
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;
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;
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"
--- /dev/null
+/**
+ * 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
--- /dev/null
+# fss-0001
+
+cmocka 1.*
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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 <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <stdint.h>
+
+// cmocka includes.
+#include <cmocka.h>
+
+// FLL-0 includes.
+#include <fll/level_0/compare.h>
+
+// 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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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 <string.h>
+
+// FLL-0 includes.
+#include <fll/level_0/status.h>
+#include <fll/level_0/memory.h>
+#include <fll/level_0/type.h>
+#include <fll/level_0/utf.h>
+
+// FLL-0 compare includes.
+#include <fll/level_0/parse/utf.h>
+
+#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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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
--- /dev/null
+# fss-0000
--- /dev/null
+# fss-0000
+
+f_type
+f_status
+f_memory
+f_string
+f_utf
--- /dev/null
+# fss-0001
+
+cmocka 1.*
--- /dev/null
+# fss-0005 iki-0002
+
+settings:
+ fail exit
+ modes individual level monolithic clang test
+
+ environment PATH LD_LIBRARY_PATH
+
+main:
+
+ build
# fss-0001
-build_name fl_string
+build_name f_parse
version_major 0
version_minor 7
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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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 <string.h>
+
+// FLL-0 includes.
+#include <fll/level_0/status.h>
+#include <fll/level_0/memory.h>
+#include <fll/level_0/type.h>
+#include <fll/level_0/utf.h>
+
+// FLL-0 compare includes.
+#include <fll/level_0/rip/utf.h>
+
+#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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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
--- /dev/null
+#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
--- /dev/null
+/**
+ * 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
--- /dev/null
+# fss-0000
--- /dev/null
+# fss-0000
+
+f_type
+f_status
+f_memory
+f_string
+f_utf
--- /dev/null
+# fss-0001
+
+cmocka 1.*
--- /dev/null
+# fss-0005 iki-0002
+
+settings:
+ fail exit
+ modes individual level monolithic clang test
+
+ environment PATH LD_LIBRARY_PATH
+
+main:
+
+ build
--- /dev/null
+# 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
* @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()
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
+++ /dev/null
-/**
- * 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
+++ /dev/null
-#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
+++ /dev/null
-/**
- * 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 <ctype.h>
-#include <string.h>
-
-// FLL-0 includes.
-#include <fll/level_0/type.h>
-#include <fll/level_0/status.h>
-#include <fll/level_0/memory.h>
-#include <fll/level_0/string.h>
-#include <fll/level_0/utf.h>
-
-#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
-#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
-/**
- * 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
-#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
-/**
- * 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 <ctype.h>
-#include <string.h>
-
-// FLL-0 includes.
-#include <fll/level_0/type.h>
-#include <fll/level_0/status.h>
-#include <fll/level_0/memory.h>
-#include <fll/level_0/string.h>
-#include <fll/level_0/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_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
#include <fll/level_1/control_group.h>
#include <fll/level_1/environment.h>
#include <fll/level_1/execute.h>
-#include <fll/level_1/string.h>
#ifdef __cplusplus
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)) {
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;
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;
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;
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);
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;
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;
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;
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);
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;
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);
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;
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;
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;
#include <fll/level_0/memory.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/fss.h>
+#include <fll/level_0/parse.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/fss.h>
-#include <fll/level_1/string.h>
#ifdef __cplusplus
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.
*
* 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);
* 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[]);
* 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[]);
* 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[]);
* 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[]);
* 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[]);
* 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[]);
* 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[]);
* 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[]);
* 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[]);
* 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[]);
// FLL-1 includes.
#include <fll/level_1/fss.h>
#include <fll/level_1/fss/basic.h>
-#include <fll/level_1/string.h>
#ifdef __cplusplus
extern "C" {
// FLL-1 includes.
#include <fll/level_1/fss.h>
#include <fll/level_1/fss/basic_list.h>
-#include <fll/level_1/string.h>
#ifdef __cplusplus
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;
}
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)) {
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]);
}
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;
#include <fll/level_0/memory.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/fss.h>
// FLL-1 includes.
#include <fll/level_1/fss.h>
#include <fll/level_1/fss/basic_list.h>
-#include <fll/level_1/string.h>
#ifdef __cplusplus
extern "C" {
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
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
}
#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;
#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;
#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;
#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;
#include <fll/level_0/memory.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/fss.h>
+#include <fll/level_0/parse.h>
#include <fll/level_0/status_string.h>
-// FLL-1 includes.
-#include <fll/level_1/string.h>
-
#ifdef __cplusplus
extern "C" {
#endif
f_memory
f_string
f_utf
+f_compare
f_conversion
f_fss
+f_parse
f_status_string
-fl_string
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
// FLL-1 includes.
#include <fll/level_1/iki.h>
-#include <fll/level_1/string.h>
#ifdef __cplusplus
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) {
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) {
#include <fll/level_0/console.h>
#include <fll/level_0/file.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
-#include <fll/level_1/string.h>
#include <fll/level_1/print.h>
// FLL-2 program includes.
* 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);
* 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);
f_console
f_file
f_print
+f_rip
f_signal
-fl_string
fl_print
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
}
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#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;
#include <fll/level_0/memory.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/conversion.h>
+#include <fll/level_0/parse.h>
#include <fll/level_0/status_string.h>
-// FLL-1 includes.
-#include <fll/level_1/string.h>
-
#ifdef __cplusplus
extern "C" {
#endif
f_memory
f_string
f_utf
+f_compare
f_conversion
+f_parse
f_status_string
-fl_string
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
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
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
#include <fll/level_1/utf.h>
// FLL-2 includes.
f_file
f_pipe
f_print
+f_rip
f_signal
fl_conversion
fl_print
-fl_string
fll_error
fll_print
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
#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;
}
#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;
}
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/path.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
#include <fll/level_0/socket.h>
#include <fll/level_0/status_string.h>
#include <fll/level_1/conversion.h>
#include <fll/level_1/fss.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
}
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);
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);
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);
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);
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) {
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) {
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];
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;
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;
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 {
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;
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
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
#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;
}
#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;
}
#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;
}
#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;
}
#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;
}
#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;
}
#include <fll/level_0/account.h>
#include <fll/level_0/capability.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/control_group.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/path.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
#include <fll/level_0/socket.h>
#include <fll/level_0/status_string.h>
#include <fll/level_1/iki.h>
#include <fll/level_1/path.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/control_group.h>
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);
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);
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) {
*
* 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;
*
* 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;
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 {
}
}
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);
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 {
} // 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)) {
}
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 {
}
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 {
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) {
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);
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;
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;
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;
}
++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);
}
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 {
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;
}
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);
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;
}
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);
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);
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 {
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);
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 {
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);
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;
}
}
}
}
- 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 {
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 {
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);
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;
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;
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;
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;
* 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().
*
* @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_
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;
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;
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;
}
}
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;
}
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 {
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.
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.
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;
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;
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;
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;
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;
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;
} // 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;
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];
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;
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];
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 {
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 {
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 {
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 {
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 {
}
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;
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;
}
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 {
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;
}
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 {
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 {
* 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().
* @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()
f_account
f_capability
f_color
+f_compare
f_console
f_control_group
f_conversion
f_fss
f_iki
f_limit
+f_parse
f_path
f_pipe
f_print
+f_rip
f_signal
f_socket
f_status_string
fl_iki
fl_path
fl_print
-fl_string
fll_control_group
fll_error
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
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;
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 {
}
}
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 {
}
}
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 {
"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",
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,
#include <fll/level_0/utf.h>
#include <fll/level_0/account.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/environment.h>
#include <fll/level_0/path.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/iki.h>
#include <fll/level_1/path.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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) {
* 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_
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);
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);
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;
}
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 {
// 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) {
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 {
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.
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) {
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);
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;
}
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;
}
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]);
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]);
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]);
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;
}
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;
}
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;
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;
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;
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;
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;
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;
* 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()
* @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()
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 {
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;
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;
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;
}
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.
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;
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;
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;
}
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;
}
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;
}
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
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;
}
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;
}
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;
}
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;
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;
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;
}
}
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
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;
}
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;
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)) {
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)) {
}
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);
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;
}
// 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;
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;
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]);
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 {
}
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);
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);
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 {
}
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 {
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
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);
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;
}
}
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);
f_account
f_capability
f_color
+f_compare
f_console
f_control_group
f_conversion
f_fss
f_iki
f_limit
+f_parse
f_path
f_pipe
f_print
+f_rip
f_signal
f_thread
fl_iki
fl_path
fl_print
-fl_string
fll_error
fll_execute
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
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 {
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;
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;
}
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/execute.h>
#include <fll/level_0/file.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
-#include <fll/level_1/string.h>
#include <fll/level_1/print.h>
// FLL-2 includes.
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.
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 {
}
// 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 {
}
// 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);
}
// 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 {
}
// 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) {
}
// 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;
}
// 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);
// 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;
}
// 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;
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;
}
f_account
f_capability
f_color
+f_compare
f_console
f_control_group
f_conversion
f_file
f_fss
f_limit
+f_parse
f_path
f_pipe
f_print
+f_rip
f_status_string
f_signal
f_thread
fl_environment
fl_fss
fl_print
-fl_string
fll_error
fll_execute
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
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;
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/file.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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;
}
// 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
*
* 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()
*/
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
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
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;
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/file.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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;
}
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
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
*
* 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()
*/
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
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
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 {
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/file.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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;
}
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;
}
}
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
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
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
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
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;
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/file.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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;
}
// 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
*
* 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()
*/
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
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
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;
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/file.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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;
}
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
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
*
* 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()
*/
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
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
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/file.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/fss.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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_
* 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;
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
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
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;
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/directory.h>
#include <fll/level_0/file.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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;
}
// 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);
// 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) {
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
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);
}
// 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
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
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
*
* 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()
*/
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
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
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/fss.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/fss/basic.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/fss.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/fss/basic_list.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/fss.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/fss/embedded_list.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/fss.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/fss/extended.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/fss.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/fss/extended_list.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/fss.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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;
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;
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;
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;
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;
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.
}
// 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]);
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);
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/fss.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/fss/basic_list.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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
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
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
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
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
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
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
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
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
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;
// 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
// 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
// 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;
}
}
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;
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;
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;
}
}
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/iki.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/iki.h>
#include <fll/level_1/print.h>
#include <fll/level_1/signal.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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) {
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) {
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
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
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
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/iki.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/iki.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
f_iki
f_pipe
f_print
+f_rip
f_signal
fl_iki
fl_print
-fl_string
fll_iki
fll_error
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
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
-#include <fll/level_0/conversion.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
+#include <fll/level_0/conversion.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
#include <fll/level_0/status_string.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
-#include <fll/level_0/conversion.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
+#include <fll/level_0/conversion.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
#include <fll/level_0/status_string.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
// FLL-2 includes.
#include <fll/level_2/error.h>
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
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
fl_directory
fl_fss
fl_print
-fl_string
fll_error
fll_fss_status_string
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
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
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
#include <fll/level_0/string.h>
#include <fll/level_0/utf.h>
#include <fll/level_0/color.h>
+#include <fll/level_0/compare.h>
#include <fll/level_0/console.h>
#include <fll/level_0/conversion.h>
#include <fll/level_0/file.h>
#include <fll/level_0/path.h>
#include <fll/level_0/pipe.h>
#include <fll/level_0/print.h>
+#include <fll/level_0/rip.h>
#include <fll/level_0/signal.h>
// FLL-1 includes.
#include <fll/level_1/conversion.h>
#include <fll/level_1/print.h>
-#include <fll/level_1/string.h>
#include <fll/level_1/utf.h>
// FLL-2 includes.
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
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