From: Kevin Day Date: Thu, 29 Aug 2019 19:26:54 +0000 (-0500) Subject: Update: improve return code error conversion and support converting strings to numbers X-Git-Tag: 0.5.0~472 X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=3b7751f1ac7f0dd79924e0344f9e7ffaa1b9bdac;p=fll Update: improve return code error conversion and support converting strings to numbers --- diff --git a/level_0/f_colors/data/build/dependencies b/level_0/f_colors/data/build/dependencies index 0c32bf1..98ec834 100644 --- a/level_0/f_colors/data/build/dependencies +++ b/level_0/f_colors/data/build/dependencies @@ -1,2 +1,3 @@ f_types +f_memory f_strings diff --git a/level_0/f_console/data/build/dependencies b/level_0/f_console/data/build/dependencies index 90e12bc..9594c4e 100644 --- a/level_0/f_console/data/build/dependencies +++ b/level_0/f_console/data/build/dependencies @@ -1,3 +1,4 @@ f_types f_errors +f_memory f_strings diff --git a/level_0/f_conversion/data/build/dependencies b/level_0/f_conversion/data/build/dependencies index 90e12bc..9594c4e 100644 --- a/level_0/f_conversion/data/build/dependencies +++ b/level_0/f_conversion/data/build/dependencies @@ -1,3 +1,4 @@ f_types f_errors +f_memory f_strings diff --git a/level_0/f_errors/c/errors.h b/level_0/f_errors/c/errors.h index 911a89c..bf45561 100644 --- a/level_0/f_errors/c/errors.h +++ b/level_0/f_errors/c/errors.h @@ -205,8 +205,6 @@ enum { f_signal_pollable_event, f_signal_power_failure, f_signal_bad_system_call, - - // these will be renamed if new names are given for the remaining system calls (up to 64). f_signal_reserved_32, f_signal_reserved_33, f_signal_reserved_34, @@ -279,6 +277,10 @@ enum { f_invalid_buffer, f_invalid_process, f_invalid_utf, + f_invalid_on_eof, + f_invalid_on_eol, + f_invalid_on_eos, + f_invalid_on_stop, #endif // _di_f_errors_invalid_ #ifndef _di_f_errors_busy_ diff --git a/level_0/f_fss/data/build/dependencies b/level_0/f_fss/data/build/dependencies index 90e12bc..9594c4e 100644 --- a/level_0/f_fss/data/build/dependencies +++ b/level_0/f_fss/data/build/dependencies @@ -1,3 +1,4 @@ f_types f_errors +f_memory f_strings diff --git a/level_0/f_print/data/build/dependencies b/level_0/f_print/data/build/dependencies index 90e12bc..9594c4e 100644 --- a/level_0/f_print/data/build/dependencies +++ b/level_0/f_print/data/build/dependencies @@ -1,3 +1,4 @@ f_types f_errors +f_memory f_strings diff --git a/level_0/f_serialized/data/build/dependencies b/level_0/f_serialized/data/build/dependencies index 0c32bf1..98ec834 100644 --- a/level_0/f_serialized/data/build/dependencies +++ b/level_0/f_serialized/data/build/dependencies @@ -1,2 +1,3 @@ f_types +f_memory f_strings diff --git a/level_0/f_utf/data/build/dependencies b/level_0/f_utf/data/build/dependencies index 90e12bc..9594c4e 100644 --- a/level_0/f_utf/data/build/dependencies +++ b/level_0/f_utf/data/build/dependencies @@ -1,3 +1,4 @@ f_types f_errors +f_memory f_strings diff --git a/level_1/fl_errors/c/errors.c b/level_1/fl_errors/c/errors.c index acf77e6..140b6fb 100644 --- a/level_1/fl_errors/c/errors.c +++ b/level_1/fl_errors/c/errors.c @@ -15,641 +15,652 @@ extern "C" { switch (umasked_error) { #ifndef _di_fl_errors_booleans_ case f_false: - *string = "f_false"; + *string = fl_errors_string_false; break; case f_true: - *string = "f_true"; + *string = fl_errors_string_true; break; #endif // _di_fl_errors_booleans_ #ifndef _di_fl_errors_signals_ // f_signal_hangup is not used because it has the same code as f_true. case f_signal_interrupt: - *string = "f_signal_interrupt"; + *string = fl_errors_string_signal_interrupt; break; case f_signal_quit: - *string = "f_signal_quit"; + *string = fl_errors_string_signal_quit; break; case f_signal_illegal: - *string = "f_signal_illegal"; + *string = fl_errors_string_signal_illegal; break; case f_signal_trap: - *string = "f_signal_trap"; + *string = fl_errors_string_signal_trap; break; case f_signal_abort: - *string = "f_signal_abort"; + *string = fl_errors_string_signal_abort; break; case f_signal_bus_error: - *string = "f_signal_bus_error"; + *string = fl_errors_string_signal_bus_error; break; case f_signal_floating_point_exception: - *string = "f_signal_floating_point_exception"; + *string = fl_errors_string_signal_floating_point_exception; break; case f_signal_kill: - *string = "f_signal_kill"; + *string = fl_errors_string_signal_kill; break; case f_signal_user_1: - *string = "f_signal_user_1"; + *string = fl_errors_string_signal_user_1; break; case f_signal_segmentation_fault: - *string = "f_signal_segmentation_fault"; + *string = fl_errors_string_signal_segmentation_fault; break; case f_signal_user_2: - *string = "f_signal_user_2"; + *string = fl_errors_string_signal_user_2; break; case f_signal_broken_pipe: - *string = "f_signal_broken_pipe"; + *string = fl_errors_string_signal_broken_pipe; break; case f_signal_alarm_clock: - *string = "f_signal_alarm_clock"; + *string = fl_errors_string_signal_alarm_clock; break; case f_signal_termination: - *string = "f_signal_termination"; + *string = fl_errors_string_signal_termination; break; case f_signal_stack_fault: - *string = "f_signal_stack_fault"; + *string = fl_errors_string_signal_stack_fault; break; case f_signal_child: - *string = "f_signal_child"; + *string = fl_errors_string_signal_child; break; case f_signal_continue: - *string = "f_signal_continue"; + *string = fl_errors_string_signal_continue; break; case f_signal_stop: - *string = "f_signal_stop"; + *string = fl_errors_string_signal_stop; break; case f_signal_keyboard_stop: - *string = "f_signal_keyboard_stop"; + *string = fl_errors_string_signal_keyboard_stop; break; case f_signal_tty_in: - *string = "f_signal_tty_in"; + *string = fl_errors_string_signal_tty_in; break; case f_signal_tty_out: - *string = "f_signal_tty_out"; + *string = fl_errors_string_signal_tty_out; break; case f_signal_urgent: - *string = "f_signal_urgent"; + *string = fl_errors_string_signal_urgent; break; case f_signal_cpu_limit: - *string = "f_signal_cpu_limit"; + *string = fl_errors_string_signal_cpu_limit; break; case f_signal_file_size_limit: - *string = "f_signal_file_size_limit"; + *string = fl_errors_string_signal_file_size_limit; break; case f_signal_virtual_alarm_clock: - *string = "f_signal_virtual_alarm_clock"; + *string = fl_errors_string_signal_virtual_alarm_clock; break; case f_signal_profile_alarm_clock: - *string = "f_signal_profile_alarm_clock"; + *string = fl_errors_string_signal_profile_alarm_clock; break; case f_signal_window_size_change: - *string = "f_signal_window_size_change"; + *string = fl_errors_string_signal_window_size_change; break; case f_signal_pollable_event: - *string = "f_signal_pollable_event"; + *string = fl_errors_string_signal_pollable_event; break; case f_signal_power_failure: - *string = "f_signal_power_failure"; + *string = fl_errors_string_signal_power_failure; break; case f_signal_bad_system_call: - *string = "f_signal_bad_system_call"; + *string = fl_errors_string_signal_bad_system_call; break; case f_signal_reserved_32: - *string = "f_signal_reserved_32"; + *string = fl_errors_string_signal_reserved_32; break; case f_signal_reserved_33: - *string = "f_signal_reserved_33"; + *string = fl_errors_string_signal_reserved_33; break; case f_signal_reserved_34: - *string = "f_signal_reserved_34"; + *string = fl_errors_string_signal_reserved_34; break; case f_signal_reserved_35: - *string = "f_signal_reserved_35"; + *string = fl_errors_string_signal_reserved_35; break; case f_signal_reserved_36: - *string = "f_signal_reserved_36"; + *string = fl_errors_string_signal_reserved_36; break; case f_signal_reserved_37: - *string = "f_signal_reserved_37"; + *string = fl_errors_string_signal_reserved_37; break; case f_signal_reserved_38: - *string = "f_signal_reserved_38"; + *string = fl_errors_string_signal_reserved_38; break; case f_signal_reserved_39: - *string = "f_signal_reserved_39"; + *string = fl_errors_string_signal_reserved_39; break; case f_signal_reserved_40: - *string = "f_signal_reserved_40"; + *string = fl_errors_string_signal_reserved_40; break; case f_signal_reserved_41: - *string = "f_signal_reserved_41"; + *string = fl_errors_string_signal_reserved_41; break; case f_signal_reserved_42: - *string = "f_signal_reserved_42"; + *string = fl_errors_string_signal_reserved_42; break; case f_signal_reserved_43: - *string = "f_signal_reserved_43"; + *string = fl_errors_string_signal_reserved_43; break; case f_signal_reserved_44: - *string = "f_signal_reserved_44"; + *string = fl_errors_string_signal_reserved_44; break; case f_signal_reserved_45: - *string = "f_signal_reserved_45"; + *string = fl_errors_string_signal_reserved_45; break; case f_signal_reserved_46: - *string = "f_signal_reserved_46"; + *string = fl_errors_string_signal_reserved_46; break; case f_signal_reserved_47: - *string = "f_signal_reserved_47"; + *string = fl_errors_string_signal_reserved_47; break; case f_signal_reserved_48: - *string = "f_signal_reserved_48"; + *string = fl_errors_string_signal_reserved_48; break; case f_signal_reserved_49: - *string = "f_signal_reserved_49"; + *string = fl_errors_string_signal_reserved_49; break; case f_signal_reserved_50: - *string = "f_signal_reserved_50"; + *string = fl_errors_string_signal_reserved_50; break; case f_signal_reserved_51: - *string = "f_signal_reserved_51"; + *string = fl_errors_string_signal_reserved_51; break; case f_signal_reserved_52: - *string = "f_signal_reserved_52"; + *string = fl_errors_string_signal_reserved_52; break; case f_signal_reserved_53: - *string = "f_signal_reserved_53"; + *string = fl_errors_string_signal_reserved_53; break; case f_signal_reserved_54: - *string = "f_signal_reserved_54"; + *string = fl_errors_string_signal_reserved_54; break; case f_signal_reserved_55: - *string = "f_signal_reserved_55"; + *string = fl_errors_string_signal_reserved_55; break; case f_signal_reserved_56: - *string = "f_signal_reserved_56"; + *string = fl_errors_string_signal_reserved_56; break; case f_signal_reserved_57: - *string = "f_signal_reserved_57"; + *string = fl_errors_string_signal_reserved_57; break; case f_signal_reserved_58: - *string = "f_signal_reserved_58"; + *string = fl_errors_string_signal_reserved_58; break; case f_signal_reserved_59: - *string = "f_signal_reserved_59"; + *string = fl_errors_string_signal_reserved_59; break; case f_signal_reserved_60: - *string = "f_signal_reserved_60"; + *string = fl_errors_string_signal_reserved_60; break; case f_signal_reserved_61: - *string = "f_signal_reserved_61"; + *string = fl_errors_string_signal_reserved_61; break; case f_signal_reserved_62: - *string = "f_signal_reserved_62"; + *string = fl_errors_string_signal_reserved_62; break; case f_signal_reserved_63: - *string = "f_signal_reserved_63"; + *string = fl_errors_string_signal_reserved_63; break; case f_signal_reserved_64: - *string = "f_signal_reserved_64"; + *string = fl_errors_string_signal_reserved_64; break; #endif // _di_fl_errors_signals_ #ifndef _di_fl_errors_basic_ case f_none: - *string = "f_none"; + *string = fl_errors_string_none; break; case f_maybe: - *string = "f_maybe"; + *string = fl_errors_string_maybe; break; case f_dummy: - *string = "f_dummy"; + *string = fl_errors_string_dummy; break; case f_warn: - *string = "f_warn"; + *string = fl_errors_string_warn; break; case f_critical: - *string = "f_critical"; + *string = fl_errors_string_critical; break; case f_unknown: - *string = "f_unknown"; + *string = fl_errors_string_unknown; break; case f_unsupported: - *string = "f_unsupported"; + *string = fl_errors_string_unsupported; break; case f_no_data: - *string = "f_no_data"; + *string = fl_errors_string_no_data; break; case f_out_of_memory: - *string = "f_out_of_memory"; + *string = fl_errors_string_out_of_memory; break; case f_input_error: - *string = "f_input_error"; + *string = fl_errors_string_input_error; break; case f_output_error: - *string = "f_output_error"; + *string = fl_errors_string_output_error; break; case f_input_output_error: - *string = "f_input_output_error"; + *string = fl_errors_string_input_output_error; break; case f_does_not_exist: - *string = "f_does_not_exist"; + *string = fl_errors_string_does_not_exist; break; case f_not_connected: - *string = "f_not_connected"; + *string = fl_errors_string_not_connected; break; case f_failure: - *string = "f_failure"; + *string = fl_errors_string_failure; break; case f_interrupted: - *string = "f_interrupted"; + *string = fl_errors_string_interrupted; break; case f_loop: - *string = "f_loop"; + *string = fl_errors_string_loop; break; #endif // _di_fl_errors_basic_ #ifdef _di_fl_errors_invalid_ case f_invalid: - *string = "f_invalid"; + *string = fl_errors_string_invalid; break; case f_invalid_parameter: - *string = "f_invalid_parameter"; + *string = fl_errors_string_invalid_parameter; break; case f_invalid_syntax: - *string = "f_invalid_syntax"; + *string = fl_errors_string_invalid_syntax; break; case f_invalid_data: - *string = "f_invalid_data"; + *string = fl_errors_string_invalid_data; break; case f_invalid_file: - *string = "f_invalid_file"; + *string = fl_errors_string_invalid_file; break; case f_invalid_directory: - *string = "f_invalid_directory"; + *string = fl_errors_string_invalid_directory; break; case f_invalid_socket: - *string = "f_invalid_socket"; + *string = fl_errors_string_invalid_socket; break; case f_invalid_device: - *string = "f_invalid_device"; + *string = fl_errors_string_invalid_device; break; case f_invalid_link: - *string = "f_invalid_link"; + *string = fl_errors_string_invalid_link; break; case f_invalid_pipe: - *string = "f_invalid_pipe"; + *string = fl_errors_string_invalid_pipe; break; case f_invalid_address: - *string = "f_invalid_address"; + *string = fl_errors_string_invalid_address; break; case f_invalid_port: - *string = "f_invalid_port"; + *string = fl_errors_string_invalid_port; break; case f_invalid_value: - *string = "f_invalid_value"; + *string = fl_errors_string_invalid_value; break; case f_invalid_buffer: - *string = "f_invalid_buffer"; + *string = fl_errors_string_invalid_buffer; break; case f_invalid_process: - *string = "f_invalid_process"; + *string = fl_errors_string_invalid_process; break; case f_invalid_utf: - *string = "f_invalid_utf"; + *string = fl_errors_string_invalid_utf; + break; + case f_invalid_on_eof: + *string = fl_errors_string_invalid_on_eof; + break; + case f_invalid_on_eol: + *string = fl_errors_string_invalid_on_eol; + break; + case f_invalid_on_eos: + *string = fl_errors_string_invalid_on_eos; + break; + case f_invalid_on_stop: + *string = fl_errors_string_invalid_on_stop; break; #endif // _di_fl_errors_invalid_ #ifndef _di_fl_errors_busy_ case f_busy: - *string = "f_busy"; + *string = fl_errors_string_busy; break; case f_busy_address: - *string = "f_busy_address"; + *string = fl_errors_string_busy_address; break; case f_busy_port: - *string = "f_busy_port"; + *string = fl_errors_string_busy_port; break; case f_busy_socket: - *string = "f_busy_socket"; + *string = fl_errors_string_busy_socket; break; case f_busy_device: - *string = "f_busy_device"; + *string = fl_errors_string_busy_device; break; case f_busy_pipe: - *string = "f_busy_pipe"; + *string = fl_errors_string_busy_pipe; break; case f_busy_buffer: - *string = "f_busy_buffer"; + *string = fl_errors_string_busy_buffer; break; case f_busy_process: - *string = "f_busy_process"; + *string = fl_errors_string_busy_process; break; #endif // _di_fl_errors_busy_ #ifndef _di_fl_errors_unavailable_ case f_unavailable: - *string = "f_unavailable"; + *string = fl_errors_string_unavailable; break; case f_unavailable_address: - *string = "f_unavailable_address"; + *string = fl_errors_string_unavailable_address; break; case f_unavailable_port: - *string = "f_unavailable_port"; + *string = fl_errors_string_unavailable_port; break; case f_unavailable_socket: - *string = "f_unavailable_socket"; + *string = fl_errors_string_unavailable_socket; break; case f_unavailable_device: - *string = "f_unavailable_device"; + *string = fl_errors_string_unavailable_device; break; case f_unavailable_pipe: - *string = "f_unavailable_pipe"; + *string = fl_errors_string_unavailable_pipe; break; case f_unavailable_buffer: - *string = "f_unavailable_buffer"; + *string = fl_errors_string_unavailable_buffer; break; case f_unavailable_process: - *string = "f_unavailable_process"; + *string = fl_errors_string_unavailable_process; break; #endif // _di_fl_errors_unavailable_ #ifndef _di_fl_errors_digits_ case f_underflow: - *string = "f_underflow"; + *string = fl_errors_string_underflow; break; case f_overflow: - *string = "f_overflow"; + *string = fl_errors_string_overflow; break; case f_divide_by_zero: - *string = "f_divide_by_zero"; + *string = fl_errors_string_divide_by_zero; break; case f_cannot_be_negative: - *string = "f_cannot_be_negative"; + *string = fl_errors_string_cannot_be_negative; break; case f_cannot_be_positive: - *string = "f_cannot_be_positive"; + *string = fl_errors_string_cannot_be_positive; break; case f_cannot_be_zero: - *string = "f_cannot_be_zero"; + *string = fl_errors_string_cannot_be_zero; break; #endif // _di_fl_errors_digits_ #ifndef _di_fl_errors_buffers_ case f_no_data_on_eof: - *string = "f_no_data_on_eof"; + *string = fl_errors_string_no_data_on_eof; break; case f_no_data_on_eol: - *string = "f_no_data_on_eol"; + *string = fl_errors_string_no_data_on_eol; break; case f_no_data_on_eos: - *string = "f_no_data_on_eos"; + *string = fl_errors_string_no_data_on_eos; break; case f_no_data_on_stop: - *string = "f_no_data_on_stop"; + *string = fl_errors_string_no_data_on_stop; break; case f_none_on_eof: - *string = "f_none_on_eof"; + *string = fl_errors_string_none_on_eof; break; case f_none_on_eol: - *string = "f_none_on_eol"; + *string = fl_errors_string_none_on_eol; break; case f_none_on_eos: - *string = "f_none_on_eos"; + *string = fl_errors_string_none_on_eos; break; case f_none_on_stop: - *string = "f_none_on_stop"; + *string = fl_errors_string_none_on_stop; break; case f_error_on_eof: - *string = "f_error_on_eof"; + *string = fl_errors_string_error_on_eof; break; case f_error_on_eol: - *string = "f_error_on_eol"; + *string = fl_errors_string_error_on_eol; break; case f_error_on_eos: - *string = "f_error_on_eos"; + *string = fl_errors_string_error_on_eos; break; case f_error_on_stop: - *string = "f_error_on_stop"; + *string = fl_errors_string_error_on_stop; break; case f_buffer_too_small: - *string = "f_buffer_too_small"; + *string = fl_errors_string_buffer_too_small; break; case f_buffer_too_large: - *string = "f_buffer_too_large"; + *string = fl_errors_string_buffer_too_large; break; case f_string_too_small: - *string = "f_string_too_small"; + *string = fl_errors_string_string_too_small; break; case f_string_too_large: - *string = "f_string_too_large"; + *string = fl_errors_string_string_too_large; break; case f_unterminated_nest: - *string = "f_unterminated_nest"; + *string = fl_errors_string_unterminated_nest; break; case f_unterminated_nest_on_eof: - *string = "f_unterminated_nest_on_eof"; + *string = fl_errors_string_unterminated_nest_on_eof; break; case f_unterminated_nest_on_eol: - *string = "f_unterminated_nest_on_eol"; + *string = fl_errors_string_unterminated_nest_on_eol; break; case f_unterminated_nest_on_eos: - *string = "f_unterminated_nest_on_eos"; + *string = fl_errors_string_unterminated_nest_on_eos; break; case f_unterminated_nest_on_stop: - *string = "f_unterminated_nest_on_stop"; + *string = fl_errors_string_unterminated_nest_on_stop; break; case f_unterminated_group: - *string = "f_unterminated_group"; + *string = fl_errors_string_unterminated_group; break; case f_unterminated_group_on_eof: - *string = "f_unterminated_group_on_eof"; + *string = fl_errors_string_unterminated_group_on_eof; break; case f_unterminated_group_on_eol: - *string = "f_unterminated_group_on_eol"; + *string = fl_errors_string_unterminated_group_on_eol; break; case f_unterminated_group_on_eos: - *string = "f_unterminated_group_on_eos"; + *string = fl_errors_string_unterminated_group_on_eos; break; case f_unterminated_group_on_stop: - *string = "f_unterminated_group_on_stop"; + *string = fl_errors_string_unterminated_group_on_stop; break; case f_incomplete_utf_on_eos: - *string = "f_incomplete_utf_on_eos"; + *string = fl_errors_string_incomplete_utf_on_eos; break; case f_incomplete_utf_on_stop: - *string = "f_incomplete_utf_on_stop"; + *string = fl_errors_string_incomplete_utf_on_stop; break; #endif // _di_fl_errors_buffers_ #ifndef _di_fl_errors_allocation_ case f_allocation_error: - *string = "f_allocation_error"; + *string = fl_errors_string_allocation_error; break; case f_reallocation_error: - *string = "f_reallocation_error"; + *string = fl_errors_string_reallocation_error; break; #endif // _di_fl_errors_allocation_ #ifndef _di_fl_errors_fork_ case f_fork_failed: - *string = "f_fork_failed"; + *string = fl_errors_string_fork_failed; break; case f_too_many_processes: - *string = "f_too_many_processes"; + *string = fl_errors_string_too_many_processes; break; #endif // _di_fl_errors_fork_ #ifndef _di_fl_errors_file_ case f_file_seek_error: - *string = "f_file_seek_error"; + *string = fl_errors_string_file_seek_error; break; case f_file_read_error: - *string = "f_file_read_error"; + *string = fl_errors_string_file_read_error; break; case f_file_write_error: - *string = "f_file_write_error"; + *string = fl_errors_string_file_write_error; break; case f_file_flush_error: - *string = "f_file_flush_error"; + *string = fl_errors_string_file_flush_error; break; case f_file_purge_error: - *string = "f_file_purge_error"; + *string = fl_errors_string_file_purge_error; break; case f_file_open_error: - *string = "f_file_open_error"; + *string = fl_errors_string_file_open_error; break; case f_file_close_error: - *string = "f_file_close_error"; + *string = fl_errors_string_file_close_error; break; case f_file_synchronize_error: - *string = "f_file_synchronize_error"; + *string = fl_errors_string_file_synchronize_error; break; case f_file_descriptor_error: - *string = "f_file_descriptor_error"; + *string = fl_errors_string_file_descriptor_error; break; case f_file_not_found: - *string = "f_file_not_found"; + *string = fl_errors_string_file_not_found; break; case f_file_found: - *string = "f_file_found"; + *string = fl_errors_string_file_found; break; case f_file_is_empty: - *string = "f_file_is_empty"; + *string = fl_errors_string_file_is_empty; break; case f_file_not_open: - *string = "f_file_not_open"; + *string = fl_errors_string_file_not_open; break; case f_file_allocation_error: - *string = "f_file_allocation_error"; + *string = fl_errors_string_file_allocation_error; break; case f_file_reallocation_error: - *string = "f_file_reallocation_error"; + *string = fl_errors_string_file_reallocation_error; break; case f_file_stat_error: - *string = "f_file_stat_error"; + *string = fl_errors_string_file_stat_error; break; case f_file_error: - *string = "f_file_error"; + *string = fl_errors_string_file_error; break; case f_file_not_utf: - *string = "f_file_not_utf"; + *string = fl_errors_string_file_not_utf; break; #endif // _di_fl_errors_file_ - // most of these are a guess until I get around to researching & implementing linux directory I/O #ifndef _di_fl_errors_directory_ case f_directory_read_error: - *string = "f_directory_read_error"; + *string = fl_errors_string_directory_read_error; break; case f_directory_write_error: - *string = "f_directory_write_error"; + *string = fl_errors_string_directory_write_error; break; case f_directory_flush_error: - *string = "f_directory_flush_error"; + *string = fl_errors_string_directory_flush_error; break; case f_directory_purge_error: - *string = "f_directory_purge_error"; + *string = fl_errors_string_directory_purge_error; break; case f_directory_open_error: - *string = "f_directory_open_error"; + *string = fl_errors_string_directory_open_error; break; case f_directory_close_error: - *string = "f_directory_close_error"; + *string = fl_errors_string_directory_close_error; break; case f_directory_synchronize_error: - *string = "f_directory_synchronize_error"; + *string = fl_errors_string_directory_synchronize_error; break; case f_directory_descriptor_error: - *string = "f_directory_descriptor_error"; + *string = fl_errors_string_directory_descriptor_error; break; case f_directory_not_found: - *string = "f_directory_not_found"; + *string = fl_errors_string_directory_not_found; break; case f_directory_is_empty: - *string = "f_directory_is_empty"; + *string = fl_errors_string_directory_is_empty; break; case f_directory_not_open: - *string = "f_directory_not_open"; + *string = fl_errors_string_directory_not_open; break; case f_directory_allocation_error: - *string = "f_directory_allocation_error"; + *string = fl_errors_string_directory_allocation_error; break; case f_directory_reallocation_error: - *string = "f_directory_reallocation_error"; + *string = fl_errors_string_directory_reallocation_error; break; case f_directory_error: - *string = "f_directory_error"; + *string = fl_errors_string_directory_error; break; case f_directory_not_utf: - *string = "f_directory_not_utf"; + *string = fl_errors_string_directory_not_utf; break; #endif // _di_fl_errors_directory_ #ifndef _di_fll_error_non_ case f_less_than: - *string = "f_less_than"; + *string = fl_errors_string_less_than; break; case f_equal_to: - *string = "f_equal_to"; + *string = fl_errors_string_equal_to; break; case f_not_equal_to: - *string = "f_not_equal_to"; + *string = fl_errors_string_not_equal_to; break; case f_greater_than: - *string = "f_greater_than"; + *string = fl_errors_string_greater_than; break; #endif // _di_fl_errors_non_ #ifndef _di_fl_errors_access_denied_ case f_access_denied: - *string = "f_access_denied"; + *string = fl_errors_string_access_denied; break; case f_access_denied_user: - *string = "f_access_denied_user"; + *string = fl_errors_string_access_denied_user; break; case f_access_denied_group: - *string = "f_access_denied_group"; + *string = fl_errors_string_access_denied_group; break; case f_access_denied_world: - *string = "f_access_denied_world"; + *string = fl_errors_string_access_denied_world; break; case f_access_denied_read: - *string = "f_access_denied_read"; + *string = fl_errors_string_access_denied_read; break; case f_access_denied_write: - *string = "f_access_denied_write"; + *string = fl_errors_string_access_denied_write; break; case f_access_denied_execute: - *string = "f_access_denied_execute"; + *string = fl_errors_string_access_denied_execute; break; case f_access_denied_super: - *string = "f_access_denied_super"; + *string = fl_errors_string_access_denied_super; break; #endif // _di_fl_errors_access_denied_ case f_last_error_code: - *string = "f_last_error_code"; + *string = fl_errors_string_last_error_code; break; default: diff --git a/level_1/fl_errors/c/errors.h b/level_1/fl_errors/c/errors.h index b7597f7..75d331f 100644 --- a/level_1/fl_errors/c/errors.h +++ b/level_1/fl_errors/c/errors.h @@ -14,15 +14,681 @@ #include #include #include +#include #ifdef __cplusplus extern "C" { #endif +#ifndef _di_fl_errors_string_ + #ifndef _di_fll_errors_booleans_ + #define fl_errors_string_false "f_false" + #define fl_errors_string_false_length 8 + + #define fl_errors_string_true "f_true" + #define fl_errors_string_true_length 7 + #endif // _di_fll_errors_booleans_ + + #ifndef _di_fll_errors_signals_ + #define fl_errors_string_signal_hangup "f_signal_hangup" + #define fl_errors_string_signal_hangup_length 16 + + #define fl_errors_string_signal_interrupt "f_signal_interrupt" + #define fl_errors_string_signal_interrupt_length 19 + + #define fl_errors_string_signal_quit "f_signal_quit" + #define fl_errors_string_signal_quit_length 14 + + #define fl_errors_string_signal_illegal "f_signal_illegal" + #define fl_errors_string_signal_illegal_length 17 + + #define fl_errors_string_signal_trap "f_signal_trap" + #define fl_errors_string_signal_trap_length 14 + + #define fl_errors_string_signal_abort "f_signal_abort" + #define fl_errors_string_signal_abort_length 15 + + #define fl_errors_string_signal_bus_error "f_signal_bus_error" + #define fl_errors_string_signal_bus_error_length 18 + + #define fl_errors_string_signal_floating_point_exception "f_signal_floating_point_exception" + #define fl_errors_string_signal_floating_point_exception_length 34 + + #define fl_errors_string_signal_kill "f_signal_kill" + #define fl_errors_string_signal_kill_length 14 + + #define fl_errors_string_signal_user_1 "f_signal_user_1" + #define fl_errors_string_signal_user_1_length 16 + + #define fl_errors_string_signal_segmentation_fault "f_signal_segmentation_fault" + #define fl_errors_string_signal_segmentation_fault_length 28 + + #define fl_errors_string_signal_user_2 "f_signal_user_2" + #define fl_errors_string_signal_user_2_length 16 + + #define fl_errors_string_signal_broken_pipe "f_signal_broken_pipe" + #define fl_errors_string_signal_broken_pipe_length 21 + + #define fl_errors_string_signal_alarm_clock "f_signal_alarm_clock" + #define fl_errors_string_signal_alarm_clock_length 21 + + #define fl_errors_string_signal_termination "f_signal_termination" + #define fl_errors_string_signal_termination_length 21 + + #define fl_errors_string_signal_stack_fault "f_signal_stack_fault" + #define fl_errors_string_signal_stack_fault_length 21 + + #define fl_errors_string_signal_child "f_signal_child" + #define fl_errors_string_signal_child_length 15 + + #define fl_errors_string_signal_continue "f_signal_continue" + #define fl_errors_string_signal_continue_length 18 + + #define fl_errors_string_signal_stop "f_signal_stop" + #define fl_errors_string_signal_stop_length 14 + + #define fl_errors_string_signal_keyboard_stop "f_signal_keyboard_stop" + #define fl_errors_string_signal_keyboard_stop_length 23 + + #define fl_errors_string_signal_tty_in "f_signal_tty_in" + #define fl_errors_string_signal_tty_in_length 16 + + #define fl_errors_string_signal_tty_out "f_signal_tty_out" + #define fl_errors_string_signal_tty_out_length 17 + + #define fl_errors_string_signal_urgent "f_signal_urgent" + #define fl_errors_string_signal_urgent_length 16 + + #define fl_errors_string_signal_cpu_limit "f_signal_cpu_limit" + #define fl_errors_string_signal_cpu_limit_length 19 + + #define fl_errors_string_signal_file_size_limit "f_signal_file_size_limit" + #define fl_errors_string_signal_file_size_limit_length 25 + + #define fl_errors_string_signal_virtual_alarm_clock "f_signal_virtual_alarm_clock" + #define fl_errors_string_signal_virtual_alarm_clock_length 29 + + #define fl_errors_string_signal_profile_alarm_clock "f_signal_profile_alarm_clock" + #define fl_errors_string_signal_profile_alarm_clock_length 29 + + #define fl_errors_string_signal_window_size_change "f_signal_window_size_change" + #define fl_errors_string_signal_window_size_change_length 28 + + #define fl_errors_string_signal_pollable_event "f_signal_pollable_event" + #define fl_errors_string_signal_pollable_event_length 24 + + #define fl_errors_string_signal_power_failure "f_signal_power_failure" + #define fl_errors_string_signal_power_failure_length 23 + + #define fl_errors_string_signal_bad_system_call "f_signal_bad_system_call" + #define fl_errors_string_signal_bad_system_call_length 25 + + #define fl_errors_string_signal_reserved_32 "f_signal_reserved_32" + #define fl_errors_string_signal_reserved_32_length 21 + + #define fl_errors_string_signal_reserved_33 "f_signal_reserved_33" + #define fl_errors_string_signal_reserved_33_length 21 + + #define fl_errors_string_signal_reserved_34 "f_signal_reserved_34" + #define fl_errors_string_signal_reserved_34_length 21 + + #define fl_errors_string_signal_reserved_35 "f_signal_reserved_35" + #define fl_errors_string_signal_reserved_35_length 21 + + #define fl_errors_string_signal_reserved_36 "f_signal_reserved_36" + #define fl_errors_string_signal_reserved_36_length 21 + + #define fl_errors_string_signal_reserved_37 "f_signal_reserved_37" + #define fl_errors_string_signal_reserved_37_length 21 + + #define fl_errors_string_signal_reserved_38 "f_signal_reserved_38" + #define fl_errors_string_signal_reserved_38_length 21 + + #define fl_errors_string_signal_reserved_39 "f_signal_reserved_39" + #define fl_errors_string_signal_reserved_39_length 21 + + #define fl_errors_string_signal_reserved_40 "f_signal_reserved_40" + #define fl_errors_string_signal_reserved_40_length 21 + + #define fl_errors_string_signal_reserved_41 "f_signal_reserved_41" + #define fl_errors_string_signal_reserved_41_length 21 + + #define fl_errors_string_signal_reserved_42 "f_signal_reserved_42" + #define fl_errors_string_signal_reserved_42_length 21 + + #define fl_errors_string_signal_reserved_43 "f_signal_reserved_43" + #define fl_errors_string_signal_reserved_43_length 21 + + #define fl_errors_string_signal_reserved_44 "f_signal_reserved_44" + #define fl_errors_string_signal_reserved_44_length 21 + + #define fl_errors_string_signal_reserved_45 "f_signal_reserved_45" + #define fl_errors_string_signal_reserved_45_length 21 + + #define fl_errors_string_signal_reserved_46 "f_signal_reserved_46" + #define fl_errors_string_signal_reserved_46_length 21 + + #define fl_errors_string_signal_reserved_47 "f_signal_reserved_47" + #define fl_errors_string_signal_reserved_47_length 21 + + #define fl_errors_string_signal_reserved_48 "f_signal_reserved_48" + #define fl_errors_string_signal_reserved_48_length 21 + + #define fl_errors_string_signal_reserved_49 "f_signal_reserved_49" + #define fl_errors_string_signal_reserved_49_length 21 + + #define fl_errors_string_signal_reserved_50 "f_signal_reserved_50" + #define fl_errors_string_signal_reserved_50_length 21 + + #define fl_errors_string_signal_reserved_51 "f_signal_reserved_51" + #define fl_errors_string_signal_reserved_51_length 21 + + #define fl_errors_string_signal_reserved_52 "f_signal_reserved_52" + #define fl_errors_string_signal_reserved_52_length 21 + + #define fl_errors_string_signal_reserved_53 "f_signal_reserved_53" + #define fl_errors_string_signal_reserved_53_length 21 + + #define fl_errors_string_signal_reserved_54 "f_signal_reserved_54" + #define fl_errors_string_signal_reserved_54_length 21 + + #define fl_errors_string_signal_reserved_55 "f_signal_reserved_55" + #define fl_errors_string_signal_reserved_55_length 21 + + #define fl_errors_string_signal_reserved_56 "f_signal_reserved_56" + #define fl_errors_string_signal_reserved_56_length 21 + + #define fl_errors_string_signal_reserved_57 "f_signal_reserved_57" + #define fl_errors_string_signal_reserved_57_length 21 + + #define fl_errors_string_signal_reserved_58 "f_signal_reserved_58" + #define fl_errors_string_signal_reserved_58_length 21 + + #define fl_errors_string_signal_reserved_59 "f_signal_reserved_59" + #define fl_errors_string_signal_reserved_59_length 21 + + #define fl_errors_string_signal_reserved_60 "f_signal_reserved_60" + #define fl_errors_string_signal_reserved_60_length 21 + + #define fl_errors_string_signal_reserved_61 "f_signal_reserved_61" + #define fl_errors_string_signal_reserved_61_length 21 + + #define fl_errors_string_signal_reserved_62 "f_signal_reserved_62" + #define fl_errors_string_signal_reserved_62_length 21 + + #define fl_errors_string_signal_reserved_63 "f_signal_reserved_63" + #define fl_errors_string_signal_reserved_63_length 21 + + #define fl_errors_string_signal_reserved_64 "f_signal_reserved_64" + #define fl_errors_string_signal_reserved_64_length 21 + #endif // _di_fll_errors_signals_ + + #ifndef _di_fll_errors_basic_ + #define fl_errors_string_none "f_none" + #define fl_errors_string_none_length 7 + + #define fl_errors_string_maybe "f_maybe" + #define fl_errors_string_maybe_length 8 + + #define fl_errors_string_dummy "f_dummy" + #define fl_errors_string_dummy_length 8 + + #define fl_errors_string_warn "f_warn" + #define fl_errors_string_warn_length 7 + + #define fl_errors_string_critical "f_critical" + #define fl_errors_string_critical_length 11 + + #define fl_errors_string_unknown "f_unknown" + #define fl_errors_string_unknown_length 10 + + #define fl_errors_string_unsupported "f_unsupported" + #define fl_errors_string_unsupported_length 14 + + #define fl_errors_string_no_data "f_no_data" + #define fl_errors_string_no_data_length 10 + + #define fl_errors_string_out_of_memory "f_out_of_memory" + #define fl_errors_string_out_of_memory_length 16 + + #define fl_errors_string_input_error "f_input_error" + #define fl_errors_string_input_error_length 14 + + #define fl_errors_string_output_error "f_output_error" + #define fl_errors_string_output_error_length 15 + + #define fl_errors_string_input_output_error "f_input_output_error" + #define fl_errors_string_input_output_error_length 21 + + #define fl_errors_string_does_not_exist "f_does_not_exist" + #define fl_errors_string_does_not_exist_length 17 + + #define fl_errors_string_not_connected "f_not_connected" + #define fl_errors_string_not_connected_length 16 + + #define fl_errors_string_failure "f_failure" + #define fl_errors_string_failure_length 10 + + #define fl_errors_string_interrupted "f_interrupted" + #define fl_errors_string_interrupted_length 14 + + #define fl_errors_string_loop "f_loop" + #define fl_errors_string_loop_length 7 + #endif // _di_fll_errors_basic_ + + #ifndef _di_fll_errors_invalid_ + #define fl_errors_string_invalid "f_invalid" + #define fl_errors_string_invalid_length 10 + + #define fl_errors_string_invalid_parameter "f_invalid_parameter" + #define fl_errors_string_invalid_parameter_length 20 + + #define fl_errors_string_invalid_syntax "f_invalid_syntax" + #define fl_errors_string_invalid_syntax_length 17 + + #define fl_errors_string_invalid_data "f_invalid_data" + #define fl_errors_string_invalid_data_length 15 + + #define fl_errors_string_invalid_file "f_invalid_file" + #define fl_errors_string_invalid_file_length 15 + + #define fl_errors_string_invalid_directory "f_invalid_directory" + #define fl_errors_string_invalid_directory_length 20 + + #define fl_errors_string_invalid_socket "f_invalid_socket" + #define fl_errors_string_invalid_socket_length 17 + + #define fl_errors_string_invalid_device "f_invalid_device" + #define fl_errors_string_invalid_device_length 17 + + #define fl_errors_string_invalid_link "f_invalid_link" + #define fl_errors_string_invalid_link_length 15 + + #define fl_errors_string_invalid_pipe "f_invalid_pipe" + #define fl_errors_string_invalid_pipe_length 15 + + #define fl_errors_string_invalid_address "f_invalid_address" + #define fl_errors_string_invalid_address_length 18 + + #define fl_errors_string_invalid_port "f_invalid_port" + #define fl_errors_string_invalid_port_length 15 + + #define fl_errors_string_invalid_value "f_invalid_value" + #define fl_errors_string_invalid_value_length 16 + + #define fl_errors_string_invalid_buffer "f_invalid_buffer" + #define fl_errors_string_invalid_buffer_length 17 + + #define fl_errors_string_invalid_process "f_invalid_process" + #define fl_errors_string_invalid_process_length 18 + + #define fl_errors_string_invalid_utf "f_invalid_utf" + #define fl_errors_string_invalid_utf_length 14 + + #define fl_errors_string_invalid_on_eof "f_invalid_on_eof" + #define fl_errors_string_invalid_on_eof_length 17 + + #define fl_errors_string_invalid_on_eol "f_invalid_on_eol" + #define fl_errors_string_invalid_on_eol_length 17 + + #define fl_errors_string_invalid_on_eos "f_invalid_on_eos" + #define fl_errors_string_invalid_on_eos_length 17 + + #define fl_errors_string_invalid_on_stop "f_invalid_on_stop" + #define fl_errors_string_invalid_on_stop_length 18 + #endif // _di_fll_errors_invalid_ + + #ifndef _di_fll_errors_busy_ + #define fl_errors_string_busy "f_busy" + #define fl_errors_string_busy_length 7 + + #define fl_errors_string_busy_address "f_busy_address" + #define fl_errors_string_busy_address_length 15 + + #define fl_errors_string_busy_port "f_busy_port" + #define fl_errors_string_busy_port_length 12 + + #define fl_errors_string_busy_socket "f_busy_socket" + #define fl_errors_string_busy_socket_length 14 + + #define fl_errors_string_busy_device "f_busy_device" + #define fl_errors_string_busy_device_length 14 + + #define fl_errors_string_busy_pipe "f_busy_pipe" + #define fl_errors_string_busy_pipe_length 12 + + #define fl_errors_string_busy_buffer "f_busy_buffer" + #define fl_errors_string_busy_buffer_length 14 + + #define fl_errors_string_busy_process "f_busy_process" + #define fl_errors_string_busy_process_length 15 + #endif // _di_fll_errors_busy_ + + #ifndef _di_fll_errors_unavailable_ + #define fl_errors_string_unavailable "f_unavailable" + #define fl_errors_string_unavailable_length 14 + + #define fl_errors_string_unavailable_address "f_unavailable_address" + #define fl_errors_string_unavailable_address_length 22 + + #define fl_errors_string_unavailable_port "f_unavailable_port" + #define fl_errors_string_unavailable_port_length 19 + + #define fl_errors_string_unavailable_socket "f_unavailable_socket" + #define fl_errors_string_unavailable_socket_length 21 + + #define fl_errors_string_unavailable_device "f_unavailable_device" + #define fl_errors_string_unavailable_device_length 21 + + #define fl_errors_string_unavailable_pipe "f_unavailable_pipe" + #define fl_errors_string_unavailable_pipe_length 19 + + #define fl_errors_string_unavailable_buffer "f_unavailable_buffer" + #define fl_errors_string_unavailable_buffer_length 21 + + #define fl_errors_string_unavailable_process "f_unavailable_process" + #define fl_errors_string_unavailable_process_length 22 + #endif // _di_fll_errors_unavailable_ + + #ifndef _di_fll_errors_digits_ + #define fl_errors_string_underflow "f_underflow" + #define fl_errors_string_underflow_length 12 + + #define fl_errors_string_overflow "f_overflow" + #define fl_errors_string_overflow_length 11 + + #define fl_errors_string_divide_by_zero "f_divide_by_zero" + #define fl_errors_string_divide_by_zero_length 17 + + #define fl_errors_string_cannot_be_negative "f_cannot_be_negative" + #define fl_errors_string_cannot_be_negative_length 21 + + #define fl_errors_string_cannot_be_positive "f_cannot_be_positive" + #define fl_errors_string_cannot_be_positive_length 21 + + #define fl_errors_string_cannot_be_zero "f_cannot_be_zero" + #define fl_errors_string_cannot_be_zero_length 17 + #endif // _di_fll_errors_digits_ + + #ifndef _di_fll_errors_buffers_ + #define fl_errors_string_no_data_on_eof "f_no_data_on_eof" + #define fl_errors_string_no_data_on_eof_length 17 + + #define fl_errors_string_no_data_on_eol "f_no_data_on_eol" + #define fl_errors_string_no_data_on_eol_length 17 + + #define fl_errors_string_no_data_on_eos "f_no_data_on_eos" + #define fl_errors_string_no_data_on_eos_length 17 + + #define fl_errors_string_none_on_eof "f_none_on_eof" + #define fl_errors_string_none_on_eof_length 14 + + #define fl_errors_string_no_data_on_stop "f_no_data_on_stop" + #define fl_errors_string_no_data_on_stop_length 18 + + #define fl_errors_string_none_on_eol "f_none_on_eol" + #define fl_errors_string_none_on_eol_length 14 + + #define fl_errors_string_none_on_eos "f_none_on_eos" + #define fl_errors_string_none_on_eos_length 14 + + #define fl_errors_string_none_on_stop "f_none_on_stop" + #define fl_errors_string_none_on_stop_length 15 + + #define fl_errors_string_error_on_eof "f_error_on_eof" + #define fl_errors_string_error_on_eof_length 15 + + #define fl_errors_string_error_on_eol "f_error_on_eol" + #define fl_errors_string_error_on_eol_length 15 + + #define fl_errors_string_error_on_eos "f_error_on_eos" + #define fl_errors_string_error_on_eos_length 15 + + #define fl_errors_string_error_on_stop "f_error_on_stop" + #define fl_errors_string_error_on_stop_length 16 + + #define fl_errors_string_buffer_too_small "f_buffer_too_small" + #define fl_errors_string_buffer_too_small_length 19 + + #define fl_errors_string_buffer_too_large "f_buffer_too_large" + #define fl_errors_string_buffer_too_large_length 19 + + #define fl_errors_string_string_too_small "f_string_too_small" + #define fl_errors_string_string_too_small_length 19 + + #define fl_errors_string_string_too_large "f_string_too_large" + #define fl_errors_string_string_too_large_length 19 + + #define fl_errors_string_unterminated_nest "f_unterminated_nest" + #define fl_errors_string_unterminated_nest_length 20 + + #define fl_errors_string_unterminated_nest_on_eof "f_unterminated_nest_on_eof" + #define fl_errors_string_unterminated_nest_on_eof_length 27 + + #define fl_errors_string_unterminated_nest_on_eol "f_unterminated_nest_on_eol" + #define fl_errors_string_unterminated_nest_on_eol_length 27 + + #define fl_errors_string_unterminated_nest_on_eos "f_unterminated_nest_on_eos" + #define fl_errors_string_unterminated_nest_on_eos_length 27 + + #define fl_errors_string_unterminated_nest_on_stop "f_unterminated_nest_on_stop" + #define fl_errors_string_unterminated_nest_on_stop_length 28 + + #define fl_errors_string_unterminated_group "f_unterminated_group" + #define fl_errors_string_unterminated_group_length 21 + + #define fl_errors_string_unterminated_group_on_eof "f_unterminated_group_on_eof" + #define fl_errors_string_unterminated_group_on_eof_length 28 + + #define fl_errors_string_unterminated_group_on_eol "f_unterminated_group_on_eol" + #define fl_errors_string_unterminated_group_on_eol_length 28 + + #define fl_errors_string_unterminated_group_on_eos "f_unterminated_group_on_eos" + #define fl_errors_string_unterminated_group_on_eos_length 28 + + #define fl_errors_string_unterminated_group_on_stop "f_unterminated_group_on_stop" + #define fl_errors_string_unterminated_group_on_stop_length 29 + + #define fl_errors_string_incomplete_utf_on_eos "f_incomplete_utf_on_eos" + #define fl_errors_string_incomplete_utf_on_eos_length 24 + + #define fl_errors_string_incomplete_utf_on_stop "f_incomplete_utf_on_stop" + #define fl_errors_string_incomplete_utf_on_stop_length 25 + #endif // _di_fll_errors_buffers_ + + #ifndef _di_fll_errors_allocation_ + #define fl_errors_string_allocation_error "f_allocation_error" + #define fl_errors_string_allocation_error_length 19 + + #define fl_errors_string_reallocation_error "f_reallocation_error" + #define fl_errors_string_reallocation_error_length 21 + #endif // _di_fll_errors_allocation_ + + #ifndef _di_fll_errors_fork_ + #define fl_errors_string_fork_failed "f_fork_failed" + #define fl_errors_string_fork_failed_length 14 + + #define fl_errors_string_too_many_processes "f_too_many_processes" + #define fl_errors_string_too_many_processes_length 21 + #endif // _di_fll_errors_fork_ + + #ifndef _di_fll_errors_file_ + #define fl_errors_string_file_seek_error "f_file_seek_error" + #define fl_errors_string_file_seek_error_length 18 + + #define fl_errors_string_file_read_error "f_file_read_error" + #define fl_errors_string_file_read_error_length 18 + + #define fl_errors_string_file_write_error "f_file_write_error" + #define fl_errors_string_file_write_error_length 19 + + #define fl_errors_string_file_flush_error "f_file_flush_error" + #define fl_errors_string_file_flush_error_length 19 + + #define fl_errors_string_file_purge_error "f_file_purge_error" + #define fl_errors_string_file_purge_error_length 19 + + #define fl_errors_string_file_open_error "f_file_open_error" + #define fl_errors_string_file_open_error_length 18 + + #define fl_errors_string_file_close_error "f_file_close_error" + #define fl_errors_string_file_close_error_length 19 + + #define fl_errors_string_file_synchronize_error "f_file_synchronize_error" + #define fl_errors_string_file_synchronize_error_length 25 + + #define fl_errors_string_file_descriptor_error "f_file_descriptor_error" + #define fl_errors_string_file_descriptor_error_length 24 + + #define fl_errors_string_file_not_found "f_file_not_found" + #define fl_errors_string_file_not_found_length 17 + + #define fl_errors_string_file_found "f_file_found" + #define fl_errors_string_file_found_length 13 + + #define fl_errors_string_file_is_empty "f_file_is_empty" + #define fl_errors_string_file_is_empty_length 16 + + #define fl_errors_string_file_not_open "f_file_not_open" + #define fl_errors_string_file_not_open_length 16 + + #define fl_errors_string_file_allocation_error "f_file_allocation_error" + #define fl_errors_string_file_allocation_error_length 24 + + #define fl_errors_string_file_reallocation_error "f_file_reallocation_error" + #define fl_errors_string_file_reallocation_error_length 26 + + #define fl_errors_string_file_stat_error "f_file_stat_error" + #define fl_errors_string_file_stat_error_length 18 + + #define fl_errors_string_file_error "f_file_error" + #define fl_errors_string_file_error_length 13 + + #define fl_errors_string_file_not_utf "f_file_not_utf" + #define fl_errors_string_file_not_utf_length 15 + #endif // _di_fll_errors_file_ + + #ifndef _di_fll_errors_directory_ + #define fl_errors_string_directory_read_error "f_directory_read_error" + #define fl_errors_string_directory_read_error_length 23 + + #define fl_errors_string_directory_write_error "f_directory_write_error" + #define fl_errors_string_directory_write_error_length 24 + + #define fl_errors_string_directory_flush_error "f_directory_flush_error" + #define fl_errors_string_directory_flush_error_length 24 + + #define fl_errors_string_directory_purge_error "f_directory_purge_error" + #define fl_errors_string_directory_purge_error_length 24 + + #define fl_errors_string_directory_open_error "f_directory_open_error" + #define fl_errors_string_directory_open_error_length 23 + + #define fl_errors_string_directory_close_error "f_directory_close_error" + #define fl_errors_string_directory_close_error_length 24 + + #define fl_errors_string_directory_synchronize_error "f_directory_synchronize_error" + #define fl_errors_string_directory_synchronize_error_length 30 + + #define fl_errors_string_directory_descriptor_error "f_directory_descriptor_error" + #define fl_errors_string_directory_descriptor_error_length 29 + + #define fl_errors_string_directory_not_found "f_directory_not_found" + #define fl_errors_string_directory_not_found_length 22 + + #define fl_errors_string_directory_is_empty "f_directory_is_empty" + #define fl_errors_string_directory_is_empty_length 21 + + #define fl_errors_string_directory_not_open "f_directory_not_open" + #define fl_errors_string_directory_not_open_length 21 + + #define fl_errors_string_directory_allocation_error "f_directory_allocation_error" + #define fl_errors_string_directory_allocation_error_length 29 + + #define fl_errors_string_directory_reallocation_error "f_directory_reallocation_error" + #define fl_errors_string_directory_reallocation_error_length 31 + + #define fl_errors_string_directory_error "f_directory_error" + #define fl_errors_string_directory_error_length 18 + + #define fl_errors_string_directory_not_utf "f_directory_not_utf" + #define fl_errors_string_directory_not_utf_length 20 + #endif // _di_fll_errors_directory_ + + #ifndef _di_fll_errors_socket_ + #define fl_errors_string_socket_connection_client_error "f_socket_connection_client_error" + #define fl_errors_string_socket_connection_client_error_length 33 + + #define fl_errors_string_socket_connection_target_error "f_socket_connection_target_error" + #define fl_errors_string_socket_connection_target_error_length 33 + + #define fl_errors_string_socket_receive_error "f_socket_receive_error" + #define fl_errors_string_socket_receive_error_length 23 + + #define fl_errors_string_socket_send_error "f_socket_send_error" + #define fl_errors_string_socket_send_error_length 20 + #endif // _di_fll_errors_socket_ + + #ifndef _di_fll_errors_non_ + #define fl_errors_string_less_than "f_less_than" + #define fl_errors_string_less_than_length 12 + + #define fl_errors_string_equal_to "f_equal_to" + #define fl_errors_string_equal_to_length 11 + + #define fl_errors_string_not_equal_to "f_not_equal_to" + #define fl_errors_string_not_equal_to_length 15 + + #define fl_errors_string_greater_than "f_greater_than" + #define fl_errors_string_greater_than_length 15 + #endif // _di_fll_errors_non_ + + #ifndef _di_fll_errors_access_denied_ + #define fl_errors_string_access_denied "f_access_denied" + #define fl_errors_string_access_denied_length 16 + + #define fl_errors_string_access_denied_user "f_access_denied_user" + #define fl_errors_string_access_denied_user_length 21 + + #define fl_errors_string_access_denied_group "f_access_denied_group" + #define fl_errors_string_access_denied_group_length 22 + + #define fl_errors_string_access_denied_world "f_access_denied_world" + #define fl_errors_string_access_denied_world_length 22 + + #define fl_errors_string_access_denied_read "f_access_denied_read" + #define fl_errors_string_access_denied_read_length 21 + + #define fl_errors_string_access_denied_write "f_access_denied_write" + #define fl_errors_string_access_denied_write_length 22 + + #define fl_errors_string_access_denied_execute "f_access_denied_execute" + #define fl_errors_string_access_denied_execute_length 24 + + #define fl_errors_string_access_denied_super "f_access_denied_super" + #define fl_errors_string_access_denied_super_length 22 + #endif // _di_fll_errors_access_denied_ + + #define fl_errors_string_last_error_code "f_last_error_code" + #define fl_errors_string_last_error_code_length 18 +#endif // _di_fl_errors_string_ + +/** + * Convert error codes to their string representation. + * + * The error, warning, and signal bits are ignored. + * + * @param error + * The error code to process. + * @param string + * The processed error code. + * + * @return + * f_none on success. + * f_invalid_data if there status is unknown. + * f_invalid_parameter (with error bit) if a parameter is invalid. + */ #ifndef _di_fl_errors_to_string_ - /** - * Convert error codes to their string equivalents. - */ extern f_return_status fl_errors_to_string(const f_status error, f_string *string); #endif // _di_fl_errors_to_string_ diff --git a/level_1/fl_errors/data/build/dependencies b/level_1/fl_errors/data/build/dependencies index 90e12bc..adbaa10 100644 --- a/level_1/fl_errors/data/build/dependencies +++ b/level_1/fl_errors/data/build/dependencies @@ -1,3 +1,4 @@ f_types f_errors f_strings +f_utf diff --git a/level_1/fl_errors/data/build/settings b/level_1/fl_errors/data/build/settings index 42d15a3..5bb293c 100644 --- a/level_1/fl_errors/data/build/settings +++ b/level_1/fl_errors/data/build/settings @@ -9,10 +9,10 @@ version_micro 0 build_compiler gcc build_linker ar -build_libraries -lc +build_libraries -lc build_libraries_fll build_sources_library errors.c -build_sources_program +build_sources_program build_sources_headers errors.h build_sources_bash build_sources_settings diff --git a/level_1/fl_fss/c/fss_errors.h b/level_1/fl_fss/c/fss_errors.h index e900280..1a13404 100644 --- a/level_1/fl_fss/c/fss_errors.h +++ b/level_1/fl_fss/c/fss_errors.h @@ -50,6 +50,8 @@ enum { fl_fss_found_no_content, fl_fss_found_object_no_content, // for the case where an object is found but no content could possibly exist #endif // _di_fl_fss_errors_success_ + + fl_fss_last_error_code, }; // enum #ifdef __cplusplus diff --git a/level_1/fl_strings/data/build/dependencies b/level_1/fl_strings/data/build/dependencies index 7d0693b..41ae6af 100644 --- a/level_1/fl_strings/data/build/dependencies +++ b/level_1/fl_strings/data/build/dependencies @@ -1,5 +1,5 @@ -f_errors f_types +f_errors f_memory f_strings f_utf diff --git a/level_2/fll_errors/c/errors.c b/level_2/fll_errors/c/errors.c new file mode 100644 index 0000000..f0e1d3c --- /dev/null +++ b/level_2/fll_errors/c/errors.c @@ -0,0 +1,1087 @@ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _di_fll_errors_from_string_ + f_return_status fll_errors_from_string(const f_string string, f_status *error) { + #ifndef _di_level_1_parameter_checking_ + if (error == 0) return f_error_set_error(f_invalid_parameter); + #endif // _di_level_1_parameter_checking_ + + f_status status = f_none; + f_string_length length = strlen(string); + + #ifndef _di_fll_errors_booleans_ + if (fl_compare_strings(string, fl_errors_string_false, length, fl_errors_string_false_length) == f_equal_to) { + *error = f_false; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_true, length, fl_errors_string_true_length) == f_equal_to) { + *error = f_true; + return f_none; + } + #endif // _di_fll_errors_booleans_ + + #ifndef _di_fll_errors_signals_ + if (fl_compare_strings(string, fl_errors_string_signal_hangup, length, fl_errors_string_signal_hangup_length) == f_equal_to) { + *error = f_signal_hangup; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_interrupt, length, fl_errors_string_signal_interrupt_length) == f_equal_to) { + *error = f_signal_interrupt; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_quit, length, fl_errors_string_signal_quit_length) == f_equal_to) { + *error = f_signal_quit; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_illegal, length, fl_errors_string_signal_illegal_length) == f_equal_to) { + *error = f_signal_illegal; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_trap, length, fl_errors_string_signal_trap_length) == f_equal_to) { + *error = f_signal_trap; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_abort, length, fl_errors_string_signal_abort_length) == f_equal_to) { + *error = f_signal_abort; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_bus_error, length, fl_errors_string_signal_bus_error_length) == f_equal_to) { + *error = f_signal_bus_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_floating_point_exception, length, fl_errors_string_signal_floating_point_exception_length) == f_equal_to) { + *error = f_signal_floating_point_exception; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_kill, length, fl_errors_string_signal_kill_length) == f_equal_to) { + *error = f_signal_kill; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_user_1, length, fl_errors_string_signal_user_1_length) == f_equal_to) { + *error = f_signal_user_1; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_segmentation_fault, length, fl_errors_string_signal_segmentation_fault_length) == f_equal_to) { + *error = f_signal_segmentation_fault; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_user_2, length, fl_errors_string_signal_user_2_length) == f_equal_to) { + *error = f_signal_user_2; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_broken_pipe, length, fl_errors_string_signal_broken_pipe_length) == f_equal_to) { + *error = f_signal_broken_pipe; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_alarm_clock, length, fl_errors_string_signal_alarm_clock_length) == f_equal_to) { + *error = f_signal_alarm_clock; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_termination, length, fl_errors_string_signal_termination_length) == f_equal_to) { + *error = f_signal_termination; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_stack_fault, length, fl_errors_string_signal_stack_fault_length) == f_equal_to) { + *error = f_signal_stack_fault; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_child, length, fl_errors_string_signal_child_length) == f_equal_to) { + *error = f_signal_child; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_continue, length, fl_errors_string_signal_continue_length) == f_equal_to) { + *error = f_signal_continue; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_stop, length, fl_errors_string_signal_stop_length) == f_equal_to) { + *error = f_signal_stop; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_keyboard_stop, length, fl_errors_string_signal_keyboard_stop_length) == f_equal_to) { + *error = f_signal_keyboard_stop; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_tty_in, length, fl_errors_string_signal_tty_in_length) == f_equal_to) { + *error = f_signal_tty_in; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_tty_out, length, fl_errors_string_signal_tty_out_length) == f_equal_to) { + *error = f_signal_tty_out; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_urgent, length, fl_errors_string_signal_urgent_length) == f_equal_to) { + *error = f_signal_urgent; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_cpu_limit, length, fl_errors_string_signal_cpu_limit_length) == f_equal_to) { + *error = f_signal_cpu_limit; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_file_size_limit, length, fl_errors_string_signal_file_size_limit_length) == f_equal_to) { + *error = f_signal_file_size_limit; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_virtual_alarm_clock, length, fl_errors_string_signal_virtual_alarm_clock_length) == f_equal_to) { + *error = f_signal_virtual_alarm_clock; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_profile_alarm_clock, length, fl_errors_string_signal_profile_alarm_clock_length) == f_equal_to) { + *error = f_signal_profile_alarm_clock; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_window_size_change, length, fl_errors_string_signal_window_size_change_length) == f_equal_to) { + *error = f_signal_window_size_change; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_pollable_event, length, fl_errors_string_signal_pollable_event_length) == f_equal_to) { + *error = f_signal_pollable_event; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_power_failure, length, fl_errors_string_signal_power_failure_length) == f_equal_to) { + *error = f_signal_power_failure; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_bad_system_call, length, fl_errors_string_signal_bad_system_call_length) == f_equal_to) { + *error = f_signal_bad_system_call; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_32, length, fl_errors_string_signal_reserved_32_length) == f_equal_to) { + *error = f_signal_reserved_32; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_33, length, fl_errors_string_signal_reserved_33_length) == f_equal_to) { + *error = f_signal_reserved_33; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_34, length, fl_errors_string_signal_reserved_34_length) == f_equal_to) { + *error = f_signal_reserved_34; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_35, length, fl_errors_string_signal_reserved_35_length) == f_equal_to) { + *error = f_signal_reserved_35; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_36, length, fl_errors_string_signal_reserved_36_length) == f_equal_to) { + *error = f_signal_reserved_36; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_37, length, fl_errors_string_signal_reserved_37_length) == f_equal_to) { + *error = f_signal_reserved_37; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_38, length, fl_errors_string_signal_reserved_38_length) == f_equal_to) { + *error = f_signal_reserved_38; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_39, length, fl_errors_string_signal_reserved_39_length) == f_equal_to) { + *error = f_signal_reserved_39; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_40, length, fl_errors_string_signal_reserved_40_length) == f_equal_to) { + *error = f_signal_reserved_40; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_41, length, fl_errors_string_signal_reserved_41_length) == f_equal_to) { + *error = f_signal_reserved_41; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_42, length, fl_errors_string_signal_reserved_42_length) == f_equal_to) { + *error = f_signal_reserved_42; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_43, length, fl_errors_string_signal_reserved_43_length) == f_equal_to) { + *error = f_signal_reserved_43; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_44, length, fl_errors_string_signal_reserved_44_length) == f_equal_to) { + *error = f_signal_reserved_44; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_45, length, fl_errors_string_signal_reserved_45_length) == f_equal_to) { + *error = f_signal_reserved_45; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_46, length, fl_errors_string_signal_reserved_46_length) == f_equal_to) { + *error = f_signal_reserved_46; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_47, length, fl_errors_string_signal_reserved_47_length) == f_equal_to) { + *error = f_signal_reserved_47; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_48, length, fl_errors_string_signal_reserved_48_length) == f_equal_to) { + *error = f_signal_reserved_48; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_49, length, fl_errors_string_signal_reserved_49_length) == f_equal_to) { + *error = f_signal_reserved_49; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_50, length, fl_errors_string_signal_reserved_50_length) == f_equal_to) { + *error = f_signal_reserved_50; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_51, length, fl_errors_string_signal_reserved_51_length) == f_equal_to) { + *error = f_signal_reserved_51; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_52, length, fl_errors_string_signal_reserved_52_length) == f_equal_to) { + *error = f_signal_reserved_52; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_53, length, fl_errors_string_signal_reserved_53_length) == f_equal_to) { + *error = f_signal_reserved_53; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_54, length, fl_errors_string_signal_reserved_54_length) == f_equal_to) { + *error = f_signal_reserved_54; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_55, length, fl_errors_string_signal_reserved_55_length) == f_equal_to) { + *error = f_signal_reserved_55; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_56, length, fl_errors_string_signal_reserved_56_length) == f_equal_to) { + *error = f_signal_reserved_56; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_57, length, fl_errors_string_signal_reserved_57_length) == f_equal_to) { + *error = f_signal_reserved_57; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_58, length, fl_errors_string_signal_reserved_58_length) == f_equal_to) { + *error = f_signal_reserved_58; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_59, length, fl_errors_string_signal_reserved_59_length) == f_equal_to) { + *error = f_signal_reserved_59; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_60, length, fl_errors_string_signal_reserved_60_length) == f_equal_to) { + *error = f_signal_reserved_60; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_61, length, fl_errors_string_signal_reserved_61_length) == f_equal_to) { + *error = f_signal_reserved_61; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_62, length, fl_errors_string_signal_reserved_62_length) == f_equal_to) { + *error = f_signal_reserved_62; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_63, length, fl_errors_string_signal_reserved_63_length) == f_equal_to) { + *error = f_signal_reserved_63; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_signal_reserved_64, length, fl_errors_string_signal_reserved_64_length) == f_equal_to) { + *error = f_signal_reserved_64; + return f_none; + } + #endif // _di_fll_errors_signals_ + + #ifndef _di_fll_errors_basic_ + if (fl_compare_strings(string, fl_errors_string_none, length, fl_errors_string_none_length) == f_equal_to) { + *error = f_none; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_maybe, length, fl_errors_string_maybe_length) == f_equal_to) { + *error = f_maybe; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_dummy, length, fl_errors_string_dummy_length) == f_equal_to) { + *error = f_dummy; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_warn, length, fl_errors_string_warn_length) == f_equal_to) { + *error = f_warn; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_critical, length, fl_errors_string_critical_length) == f_equal_to) { + *error = f_critical; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unknown, length, fl_errors_string_unknown_length) == f_equal_to) { + *error = f_unknown; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unsupported, length, fl_errors_string_unsupported_length) == f_equal_to) { + *error = f_unsupported; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_no_data, length, fl_errors_string_no_data_length) == f_equal_to) { + *error = f_no_data; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_out_of_memory, length, fl_errors_string_out_of_memory_length) == f_equal_to) { + *error = f_out_of_memory; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_input_error, length, fl_errors_string_input_error_length) == f_equal_to) { + *error = f_input_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_output_error, length, fl_errors_string_output_error_length) == f_equal_to) { + *error = f_output_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_input_output_error, length, fl_errors_string_input_output_error_length) == f_equal_to) { + *error = f_input_output_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_does_not_exist, length, fl_errors_string_does_not_exist_length) == f_equal_to) { + *error = f_does_not_exist; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_not_connected, length, fl_errors_string_not_connected_length) == f_equal_to) { + *error = f_not_connected; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_failure, length, fl_errors_string_failure_length) == f_equal_to) { + *error = f_failure; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_interrupted, length, fl_errors_string_interrupted_length) == f_equal_to) { + *error = f_interrupted; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_loop, length, fl_errors_string_loop_length) == f_equal_to) { + *error = f_loop; + return f_none; + } + #endif // _di_fll_errors_basic_ + + #ifndef _di_fll_errors_invalid_ + if (fl_compare_strings(string, fl_errors_string_invalid, length, fl_errors_string_invalid_length) == f_equal_to) { + *error = f_invalid; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_parameter, length, fl_errors_string_invalid_parameter_length) == f_equal_to) { + *error = f_invalid_parameter; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_syntax, length, fl_errors_string_invalid_syntax_length) == f_equal_to) { + *error = f_invalid_syntax; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_data, length, fl_errors_string_invalid_data_length) == f_equal_to) { + *error = f_invalid_data; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_file, length, fl_errors_string_invalid_file_length) == f_equal_to) { + *error = f_invalid_file; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_directory, length, fl_errors_string_invalid_directory_length) == f_equal_to) { + *error = f_invalid_directory; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_socket, length, fl_errors_string_invalid_socket_length) == f_equal_to) { + *error = f_invalid_socket; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_device, length, fl_errors_string_invalid_device_length) == f_equal_to) { + *error = f_invalid_device; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_link, length, fl_errors_string_invalid_link_length) == f_equal_to) { + *error = f_invalid_link; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_pipe, length, fl_errors_string_invalid_pipe_length) == f_equal_to) { + *error = f_invalid_pipe; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_address, length, fl_errors_string_invalid_address_length) == f_equal_to) { + *error = f_invalid_address; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_port, length, fl_errors_string_invalid_port_length) == f_equal_to) { + *error = f_invalid_port; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_value, length, fl_errors_string_invalid_value_length) == f_equal_to) { + *error = f_invalid_value; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_buffer, length, fl_errors_string_invalid_buffer_length) == f_equal_to) { + *error = f_invalid_buffer; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_process, length, fl_errors_string_invalid_process_length) == f_equal_to) { + *error = f_invalid_process; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_utf, length, fl_errors_string_invalid_utf_length) == f_equal_to) { + *error = f_invalid_utf; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_on_eof, length, fl_errors_string_invalid_on_eof_length) == f_equal_to) { + *error = f_invalid_on_eof; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_on_eol, length, fl_errors_string_invalid_on_eol_length) == f_equal_to) { + *error = f_invalid_on_eol; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_on_eos, length, fl_errors_string_invalid_on_eos_length) == f_equal_to) { + *error = f_invalid_on_eos; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_invalid_on_stop, length, fl_errors_string_invalid_on_stop_length) == f_equal_to) { + *error = f_invalid_on_stop; + return f_none; + } + #endif // _di_fll_errors_invalid_ + + #ifndef _di_fll_errors_busy_ + if (fl_compare_strings(string, fl_errors_string_busy, length, fl_errors_string_busy_length) == f_equal_to) { + *error = f_busy; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_busy_address, length, fl_errors_string_busy_address_length) == f_equal_to) { + *error = f_busy_address; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_busy_port, length, fl_errors_string_busy_port_length) == f_equal_to) { + *error = f_busy_port; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_busy_socket, length, fl_errors_string_busy_socket_length) == f_equal_to) { + *error = f_busy_socket; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_busy_device, length, fl_errors_string_busy_device_length) == f_equal_to) { + *error = f_busy_device; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_busy_pipe, length, fl_errors_string_busy_pipe_length) == f_equal_to) { + *error = f_busy_pipe; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_busy_buffer, length, fl_errors_string_busy_buffer_length) == f_equal_to) { + *error = f_busy_buffer; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_busy_process, length, fl_errors_string_busy_process_length) == f_equal_to) { + *error = f_busy_process; + return f_none; + } + #endif // _di_fll_errors_busy_ + + #ifndef _di_fll_errors_unavailable_ + if (fl_compare_strings(string, fl_errors_string_unavailable, length, fl_errors_string_unavailable_length) == f_equal_to) { + *error = f_unavailable; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unavailable_address, length, fl_errors_string_unavailable_address_length) == f_equal_to) { + *error = f_unavailable_address; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unavailable_port, length, fl_errors_string_unavailable_port_length) == f_equal_to) { + *error = f_unavailable_port; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unavailable_socket, length, fl_errors_string_unavailable_socket_length) == f_equal_to) { + *error = f_unavailable_socket; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unavailable_device, length, fl_errors_string_unavailable_device_length) == f_equal_to) { + *error = f_unavailable_device; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unavailable_pipe, length, fl_errors_string_unavailable_pipe_length) == f_equal_to) { + *error = f_unavailable_pipe; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unavailable_buffer, length, fl_errors_string_unavailable_buffer_length) == f_equal_to) { + *error = f_unavailable_buffer; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unavailable_process, length, fl_errors_string_unavailable_process_length) == f_equal_to) { + *error = f_unavailable_process; + return f_none; + } + #endif // _di_fll_errors_unavailable_ + + #ifndef _di_fll_errors_digits_ + if (fl_compare_strings(string, fl_errors_string_underflow, length, fl_errors_string_underflow_length) == f_equal_to) { + *error = f_underflow; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_overflow, length, fl_errors_string_overflow_length) == f_equal_to) { + *error = f_overflow; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_divide_by_zero, length, fl_errors_string_divide_by_zero_length) == f_equal_to) { + *error = f_divide_by_zero; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_cannot_be_negative, length, fl_errors_string_cannot_be_negative_length) == f_equal_to) { + *error = f_cannot_be_negative; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_cannot_be_positive, length, fl_errors_string_cannot_be_positive_length) == f_equal_to) { + *error = f_cannot_be_positive; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_cannot_be_zero, length, fl_errors_string_cannot_be_zero_length) == f_equal_to) { + *error = f_cannot_be_zero; + return f_none; + } + #endif // _di_fll_errors_digits_ + + #ifndef _di_fll_errors_buffers_ + if (fl_compare_strings(string, fl_errors_string_no_data_on_eof, length, fl_errors_string_no_data_on_eof_length) == f_equal_to) { + *error = f_no_data_on_eof; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_no_data_on_eol, length, fl_errors_string_no_data_on_eol_length) == f_equal_to) { + *error = f_no_data_on_eol; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_no_data_on_eos, length, fl_errors_string_no_data_on_eos_length) == f_equal_to) { + *error = f_no_data_on_eos; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_no_data_on_stop, length, fl_errors_string_no_data_on_stop_length) == f_equal_to) { + *error = f_no_data_on_stop; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_none_on_eof, length, fl_errors_string_none_on_eof_length) == f_equal_to) { + *error = f_none_on_eof; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_none_on_eol, length, fl_errors_string_none_on_eol_length) == f_equal_to) { + *error = f_none_on_eol; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_none_on_eos, length, fl_errors_string_none_on_eos_length) == f_equal_to) { + *error = f_none_on_eos; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_none_on_stop, length, fl_errors_string_none_on_stop_length) == f_equal_to) { + *error = f_none_on_stop; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_error_on_eof, length, fl_errors_string_error_on_eof_length) == f_equal_to) { + *error = f_error_on_eof; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_error_on_eol, length, fl_errors_string_error_on_eol_length) == f_equal_to) { + *error = f_error_on_eol; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_error_on_eos, length, fl_errors_string_error_on_eos_length) == f_equal_to) { + *error = f_error_on_eos; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_error_on_stop, length, fl_errors_string_error_on_stop_length) == f_equal_to) { + *error = f_error_on_stop; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_buffer_too_small, length, fl_errors_string_buffer_too_small_length) == f_equal_to) { + *error = f_buffer_too_small; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_buffer_too_large, length, fl_errors_string_buffer_too_large_length) == f_equal_to) { + *error = f_buffer_too_large; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_string_too_small, length, fl_errors_string_string_too_small_length) == f_equal_to) { + *error = f_string_too_small; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_string_too_large, length, fl_errors_string_string_too_large_length) == f_equal_to) { + *error = f_string_too_large; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_nest, length, fl_errors_string_unterminated_nest_length) == f_equal_to) { + *error = f_unterminated_nest; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_nest_on_eof, length, fl_errors_string_unterminated_nest_on_eof_length) == f_equal_to) { + *error = f_unterminated_nest_on_eof; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_nest_on_eol, length, fl_errors_string_unterminated_nest_on_eol_length) == f_equal_to) { + *error = f_unterminated_nest_on_eol; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_nest_on_eos, length, fl_errors_string_unterminated_nest_on_eos_length) == f_equal_to) { + *error = f_unterminated_nest_on_eos; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_nest_on_stop, length, fl_errors_string_unterminated_nest_on_stop_length) == f_equal_to) { + *error = f_unterminated_nest_on_stop; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_group, length, fl_errors_string_unterminated_group_length) == f_equal_to) { + *error = f_unterminated_group; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_group_on_eof, length, fl_errors_string_unterminated_group_on_eof_length) == f_equal_to) { + *error = f_unterminated_group_on_eof; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_group_on_eol, length, fl_errors_string_unterminated_group_on_eol_length) == f_equal_to) { + *error = f_unterminated_group_on_eol; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_group_on_eos, length, fl_errors_string_unterminated_group_on_eos_length) == f_equal_to) { + *error = f_unterminated_group_on_eos; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_unterminated_group_on_stop, length, fl_errors_string_unterminated_group_on_stop_length) == f_equal_to) { + *error = f_unterminated_group_on_stop; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_incomplete_utf_on_eos, length, fl_errors_string_incomplete_utf_on_eos_length) == f_equal_to) { + *error = f_incomplete_utf_on_eos; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_incomplete_utf_on_stop, length, fl_errors_string_incomplete_utf_on_stop_length) == f_equal_to) { + *error = f_incomplete_utf_on_stop; + return f_none; + } + #endif // _di_fll_errors_buffers_ + + #ifndef _di_fll_errors_allocation_ + if (fl_compare_strings(string, fl_errors_string_allocation_error, length, fl_errors_string_allocation_error_length) == f_equal_to) { + *error = f_allocation_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_reallocation_error, length, fl_errors_string_reallocation_error_length) == f_equal_to) { + *error = f_reallocation_error; + return f_none; + } + #endif // _di_fll_errors_allocation_ + + #ifndef _di_fll_errors_fork_ + if (fl_compare_strings(string, fl_errors_string_fork_failed, length, fl_errors_string_fork_failed_length) == f_equal_to) { + *error = f_fork_failed; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_too_many_processes, length, fl_errors_string_too_many_processes_length) == f_equal_to) { + *error = f_too_many_processes; + return f_none; + } + #endif // _di_fll_errors_fork_ + + #ifndef _di_fll_errors_file_ + if (fl_compare_strings(string, fl_errors_string_file_seek_error, length, fl_errors_string_file_seek_error_length) == f_equal_to) { + *error = f_file_seek_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_read_error, length, fl_errors_string_file_read_error_length) == f_equal_to) { + *error = f_file_read_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_write_error, length, fl_errors_string_file_write_error_length) == f_equal_to) { + *error = f_file_write_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_flush_error, length, fl_errors_string_file_flush_error_length) == f_equal_to) { + *error = f_file_flush_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_purge_error, length, fl_errors_string_file_purge_error_length) == f_equal_to) { + *error = f_file_purge_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_open_error, length, fl_errors_string_file_open_error_length) == f_equal_to) { + *error = f_file_open_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_close_error, length, fl_errors_string_file_close_error_length) == f_equal_to) { + *error = f_file_close_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_synchronize_error, length, fl_errors_string_file_synchronize_error_length) == f_equal_to) { + *error = f_file_synchronize_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_descriptor_error, length, fl_errors_string_file_descriptor_error_length) == f_equal_to) { + *error = f_file_descriptor_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_not_found, length, fl_errors_string_file_not_found_length) == f_equal_to) { + *error = f_file_not_found; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_found, length, fl_errors_string_file_found_length) == f_equal_to) { + *error = f_file_found; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_is_empty, length, fl_errors_string_file_is_empty_length) == f_equal_to) { + *error = f_file_is_empty; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_not_open, length, fl_errors_string_file_not_open_length) == f_equal_to) { + *error = f_file_not_open; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_allocation_error, length, fl_errors_string_file_allocation_error_length) == f_equal_to) { + *error = f_file_allocation_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_reallocation_error, length, fl_errors_string_file_reallocation_error_length) == f_equal_to) { + *error = f_file_reallocation_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_stat_error, length, fl_errors_string_file_stat_error_length) == f_equal_to) { + *error = f_file_stat_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_error, length, fl_errors_string_file_error_length) == f_equal_to) { + *error = f_file_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_file_not_utf, length, fl_errors_string_file_not_utf_length) == f_equal_to) { + *error = f_file_not_utf; + return f_none; + } + #endif // _di_fll_errors_file_ + + #ifndef _di_fll_errors_directory_ + if (fl_compare_strings(string, fl_errors_string_directory_read_error, length, fl_errors_string_directory_read_error_length) == f_equal_to) { + *error = f_directory_read_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_write_error, length, fl_errors_string_directory_write_error_length) == f_equal_to) { + *error = f_directory_write_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_flush_error, length, fl_errors_string_directory_flush_error_length) == f_equal_to) { + *error = f_directory_flush_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_purge_error, length, fl_errors_string_directory_purge_error_length) == f_equal_to) { + *error = f_directory_purge_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_open_error, length, fl_errors_string_directory_open_error_length) == f_equal_to) { + *error = f_directory_open_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_close_error, length, fl_errors_string_directory_close_error_length) == f_equal_to) { + *error = f_directory_close_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_synchronize_error, length, fl_errors_string_directory_synchronize_error_length) == f_equal_to) { + *error = f_directory_synchronize_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_descriptor_error, length, fl_errors_string_directory_descriptor_error_length) == f_equal_to) { + *error = f_directory_descriptor_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_not_found, length, fl_errors_string_directory_not_found_length) == f_equal_to) { + *error = f_directory_not_found; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_is_empty, length, fl_errors_string_directory_is_empty_length) == f_equal_to) { + *error = f_directory_is_empty; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_not_open, length, fl_errors_string_directory_not_open_length) == f_equal_to) { + *error = f_directory_not_open; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_allocation_error, length, fl_errors_string_directory_allocation_error_length) == f_equal_to) { + *error = f_directory_allocation_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_reallocation_error, length, fl_errors_string_directory_reallocation_error_length) == f_equal_to) { + *error = f_directory_reallocation_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_error, length, fl_errors_string_directory_error_length) == f_equal_to) { + *error = f_directory_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_directory_not_utf, length, fl_errors_string_directory_not_utf_length) == f_equal_to) { + *error = f_directory_not_utf; + return f_none; + } + #endif // _di_fll_errors_directory_ + + #ifndef _di_fll_errors_socket_ + if (fl_compare_strings(string, fl_errors_string_socket_connection_client_error, length, fl_errors_string_socket_connection_client_error_length) == f_equal_to) { + *error = f_socket_connection_client_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_socket_connection_target_error, length, fl_errors_string_socket_connection_target_error_length) == f_equal_to) { + *error = f_socket_connection_target_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_socket_receive_error, length, fl_errors_string_socket_receive_error_length) == f_equal_to) { + *error = f_socket_receive_error; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_socket_send_error, length, fl_errors_string_socket_send_error_length) == f_equal_to) { + *error = f_socket_send_error; + return f_none; + } + #endif // _di_fll_errors_socket_ + + #ifndef _di_fll_errors_non_ + if (fl_compare_strings(string, fl_errors_string_less_than, length, fl_errors_string_less_than_length) == f_equal_to) { + *error = f_less_than; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_equal_to, length, fl_errors_string_equal_to_length) == f_equal_to) { + *error = f_equal_to; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_not_equal_to, length, fl_errors_string_not_equal_to_length) == f_equal_to) { + *error = f_not_equal_to; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_greater_than, length, fl_errors_string_greater_than_length) == f_equal_to) { + *error = f_greater_than; + return f_none; + } + #endif // _di_fll_errors_non_ + + #ifndef _di_fll_errors_access_denied_ + if (fl_compare_strings(string, fl_errors_string_access_denied, length, fl_errors_string_access_denied_length) == f_equal_to) { + *error = f_access_denied; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_access_denied_user, length, fl_errors_string_access_denied_user_length) == f_equal_to) { + *error = f_access_denied_user; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_access_denied_group, length, fl_errors_string_access_denied_group_length) == f_equal_to) { + *error = f_access_denied_group; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_access_denied_world, length, fl_errors_string_access_denied_world_length) == f_equal_to) { + *error = f_access_denied_world; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_access_denied_read, length, fl_errors_string_access_denied_read_length) == f_equal_to) { + *error = f_access_denied_read; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_access_denied_write, length, fl_errors_string_access_denied_write_length) == f_equal_to) { + *error = f_access_denied_write; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_access_denied_execute, length, fl_errors_string_access_denied_execute_length) == f_equal_to) { + *error = f_access_denied_execute; + return f_none; + } + + if (fl_compare_strings(string, fl_errors_string_access_denied_super, length, fl_errors_string_access_denied_super_length) == f_equal_to) { + *error = f_access_denied_super; + return f_none; + } + #endif // _di_fll_errors_access_denied_ + + if (fl_compare_strings(string, fl_errors_string_last_error_code, length, fl_errors_string_last_error_code_length) == f_equal_to) { + *error = f_last_error_code; + return f_none; + } + + return f_invalid_data; + } +#endif // _di_fll_errors_from_string_ + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/level_2/fll_errors/c/errors.h b/level_2/fll_errors/c/errors.h new file mode 100644 index 0000000..c765e70 --- /dev/null +++ b/level_2/fll_errors/c/errors.h @@ -0,0 +1,52 @@ +/** + * FLL - Level 2 + * + * Project: Errors + * API Version: 0.5 + * Licenses: lgplv2.1 + * + * Provides error functions, such as those that translate error codes into strings. + */ +#ifndef _FLL_errors_h +#define _FLL_errors_h + +// fll-0 includes +#include +#include +#include +#include + +// fll-1 includes +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Convert status codes from their string equivalents to a status code. + * + * Error, warning, and signal flags will not be assigned to the error. + * + * This process the string until either a match or NULL is reached. + * + * @param string + * The error name to process. + * @param error + * The error code a matched string represents. + * + * @return + * f_none on success. + * f_invalid_data if not found. + * f_invalid_parameter (with error bit) if a parameter is invalid. + */ +#ifndef _di_fll_errors_from_string_ + extern f_return_status fll_errors_from_string(const f_string string, f_status *error); +#endif // _di_fll_errors_to_string_ + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _FLL_errors_h diff --git a/level_2/fll_errors/data/build/dependencies b/level_2/fll_errors/data/build/dependencies new file mode 100644 index 0000000..de98545 --- /dev/null +++ b/level_2/fll_errors/data/build/dependencies @@ -0,0 +1,7 @@ +f_types +f_errors +f_memory +f_strings +f_utf +fl_strings +fl_errors diff --git a/level_2/fll_errors/data/build/settings b/level_2/fll_errors/data/build/settings new file mode 100644 index 0000000..5953c2b --- /dev/null +++ b/level_2/fll_errors/data/build/settings @@ -0,0 +1,30 @@ +# fss-0000 + +project_name fll_errors +project_level 2 + +version_major 0 +version_minor 5 +version_micro 0 + +build_compiler gcc +build_linker ar +build_libraries -lc +build_libraries_fll -lfl_errors -lfl_strings -lf_memory -lf_utf +build_sources_library errors.c +build_sources_program +build_sources_headers errors.h +build_sources_bash +build_sources_settings +build_shared yes +build_static yes + +defines_all +defines_static +defines_shared + +flags_all -z now +flags_shared +flags_static +flags_library -fPIC +flags_program -fPIE diff --git a/level_2/fll_fss/c/fss_errors.c b/level_2/fll_fss/c/fss_errors.c index 47b1c44..1c0597c 100644 --- a/level_2/fll_fss/c/fss_errors.c +++ b/level_2/fll_fss/c/fss_errors.c @@ -4,6 +4,85 @@ extern "C" { #endif +#ifndef _di_fll_fss_errors_from_string_ + f_return_status fll_fss_errors_from_string(const f_string string, f_status *error) { + #ifndef _di_level_1_parameter_checking_ + if (error == 0) return f_error_set_error(f_invalid_parameter); + #endif // _di_level_1_parameter_checking_ + + f_status status = f_none; + f_string_length length = strlen(string); + + #ifndef _di_fll_fss_errors_error_ + if (fl_compare_strings(string, fll_fss_errors_string_invalid_format, length, fll_fss_errors_string_invalid_format_length) == f_equal_to) { + *error = fl_fss_invalid_format; + return f_none; + } + + if (fl_compare_strings(string, fll_fss_errors_string_invalid_format_eos, length, fll_fss_errors_string_invalid_format_eos_length) == f_equal_to) { + *error = fl_fss_invalid_format_eos; + return f_none; + } + #endif // _di_fll_fss_errors_error_ + + #ifndef _di_fll_fss_errors_warning_ + if (fl_compare_strings(string, fll_fss_errors_string_no_header, length, fll_fss_errors_string_no_header_length) == f_equal_to) { + *error = fl_fss_no_header; + return f_none; + } + + if (fl_compare_strings(string, fll_fss_errors_string_accepted_but_invalid, length, fll_fss_errors_string_accepted_but_invalid_length) == f_equal_to) { + *error = fl_fss_accepted_but_invalid; + return f_none; + } + + if (fl_compare_strings(string, fll_fss_errors_string_no_header_eos, length, fll_fss_errors_string_no_header_eos_length) == f_equal_to) { + *error = fl_fss_no_header_eos; + return f_none; + } + + if (fl_compare_strings(string, fll_fss_errors_string_accepted_but_invalid_eos, length, fll_fss_errors_string_accepted_but_invalid_eos_length) == f_equal_to) { + *error = fl_fss_accepted_but_invalid_eos; + return f_none; + } + #endif // _di_fll_fss_errors_warning_ + + #ifndef _di_fll_fss_errors_success_ + if (fl_compare_strings(string, fll_fss_errors_string_found_object, length, fll_fss_errors_string_found_object_length) == f_equal_to) { + *error = fl_fss_found_object; + return f_none; + } + + if (fl_compare_strings(string, fll_fss_errors_string_found_content, length, fll_fss_errors_string_found_content_length) == f_equal_to) { + *error = fl_fss_found_content; + return f_none; + } + + if (fl_compare_strings(string, fll_fss_errors_string_found_no_object, length, fll_fss_errors_string_found_no_object_length) == f_equal_to) { + *error = fl_fss_found_no_object; + return f_none; + } + + if (fl_compare_strings(string, fll_fss_errors_string_found_no_content, length, fll_fss_errors_string_found_no_content_length) == f_equal_to) { + *error = fl_fss_found_no_content; + return f_none; + } + + if (fl_compare_strings(string, fll_fss_errors_string_found_object_no_content, length, fll_fss_errors_string_found_object_no_content_length) == f_equal_to) { + *error = fl_fss_found_object_no_content; + return f_none; + } + #endif // _di_fll_fss_errors_success_ + + if (fl_compare_strings(string, fll_fss_errors_string_last_error_code, length, fll_fss_errors_string_last_error_code_length) == f_equal_to) { + *error = f_last_error_code; + return f_none; + } + + return f_invalid_data; + } +#endif // _di_fll_fss_errors_from_string_ + #ifndef _di_fll_fss_errors_to_string_ f_return_status fll_fss_errors_to_string(const f_status error, f_string *string) { #ifndef _di_level_2_parameter_checking_ @@ -15,45 +94,49 @@ extern "C" { switch (unmasked_error) { #ifndef _di_fll_fss_errors_error_ case fl_fss_invalid_format: - *string = "fl_fss_invalid_format"; + *string = fll_fss_errors_string_invalid_format; break; case fl_fss_invalid_format_eos: - *string = "fl_fss_invalid_format_eos"; + *string = fll_fss_errors_string_invalid_format_eos; break; #endif // _di_fll_fss_errors_error_ #ifndef _di_fll_fss_errors_warning_ case fl_fss_no_header: - *string = "fl_fss_no_header"; + *string = fll_fss_errors_string_no_header; break; case fl_fss_accepted_but_invalid: - *string = "fl_fss_accepted_but_invalid"; + *string = fll_fss_errors_string_accepted_but_invalid; break; case fl_fss_no_header_eos: - *string = "fl_fss_no_header_eos"; + *string = fll_fss_errors_string_no_header_eos; break; case fl_fss_accepted_but_invalid_eos: - *string = "fl_fss_accepted_but_invalid_eos"; + *string = fll_fss_errors_string_accepted_but_invalid_eos; break; #endif // _di_fll_fss_errors_warning_ #ifndef _di_fll_fss_errors_success_ case fl_fss_found_object: - *string = "fl_fss_found_object"; + *string = fll_fss_errors_string_found_object; break; case fl_fss_found_content: - *string = "fl_fss_found_content"; + *string = fll_fss_errors_string_found_content; break; case fl_fss_found_no_object: - *string = "fl_fss_found_no_object"; + *string = fll_fss_errors_string_found_no_object; break; case fl_fss_found_no_content: - *string = "fl_fss_found_no_content"; + *string = fll_fss_errors_string_found_no_content; break; case fl_fss_found_object_no_content: - *string = "fl_fss_found_object_no_content"; + *string = fll_fss_errors_string_found_object_no_content; break; #endif // _di_fll_fss_errors_success_ + + case fl_fss_last_error_code: + *string = fll_fss_errors_string_last_error_code; + break; default: return fl_errors_to_string(error, string); } diff --git a/level_2/fll_fss/c/fss_errors.h b/level_2/fll_fss/c/fss_errors.h index cbcdbe8..0ba946a 100644 --- a/level_2/fll_fss/c/fss_errors.h +++ b/level_2/fll_fss/c/fss_errors.h @@ -23,11 +23,79 @@ #include #include #include +#include #ifdef __cplusplus extern "C" { #endif +#ifndef _di_fll_fss_errors_string_ + #ifndef _di_fll_fss_errors_error_ + #define fll_fss_errors_string_invalid_format "invalid_format" + #define fll_fss_errors_string_invalid_format_length 15 + + #define fll_fss_errors_string_invalid_format_eos "invalid_format_eos" + #define fll_fss_errors_string_invalid_format_eos_length 19 + #endif // _di_fll_fss_errors_error_ + + #ifndef _di_fll_fss_errors_warning_ + #define fll_fss_errors_string_no_header "fl_fss_no_header" + #define fll_fss_errors_string_no_header_length 17 + + #define fll_fss_errors_string_accepted_but_invalid "fl_fss_accepted_but_invalid" + #define fll_fss_errors_string_accepted_but_invalid_length 28 + + #define fll_fss_errors_string_no_header_eos "fl_fss_no_header_eos" + #define fll_fss_errors_string_no_header_eos_length 21 + + #define fll_fss_errors_string_accepted_but_invalid_eos "fl_fss_accepted_but_invalid_eos" + #define fll_fss_errors_string_accepted_but_invalid_eos_length 32 + #endif // _di_fll_fss_errors_warning_ + + #ifndef _di_fll_fss_errors_success_ + #define fll_fss_errors_string_found_object "fl_fss_found_object" + #define fll_fss_errors_string_found_object_length 20 + + #define fll_fss_errors_string_found_content "fl_fss_found_content" + #define fll_fss_errors_string_found_content_length 21 + + #define fll_fss_errors_string_found_no_object "fl_fss_found_no_object" + #define fll_fss_errors_string_found_no_object_length 23 + + #define fll_fss_errors_string_found_no_content "fl_fss_found_no_content" + #define fll_fss_errors_string_found_no_content_length 24 + + #define fll_fss_errors_string_found_object_no_content "fl_fss_found_object_no_content" + #define fll_fss_errors_string_found_object_no_content_length 31 + #endif // _di_fll_fss_errors_success_ + + #define fll_fss_errors_string_last_error_code "fl_fss_last_error_code" + #define fll_fss_errors_string_last_error_code_length 23 +#endif // _di_fll_fss_errors_string_ + +/** + * Convert FSS status codes from their string equivalents to a status code. + * + * Error, warning, and signal flags will not be assigned to the error. + * + * This process the string until either a match or NULL is reached. + * + * @param string + * The error name to process. + * @param error + * The error code a matched string represents. + * + * @return + * f_none on success. + * f_invalid_data if not found. + * f_invalid_parameter (with error bit) if a parameter is invalid. + * + * @see fll_errors_from_string + */ +#ifndef _di_fll_fss_errors_from_string_ + extern f_return_status fll_fss_errors_from_string(const f_string string, f_status *error); +#endif // _di_fll_fss_errors_to_string_ + #ifndef _di_fll_fss_errors_to_string_ /** * Convert error codes to their string equivalents. diff --git a/level_2/fll_fss/data/build/dependencies b/level_2/fll_fss/data/build/dependencies index c08e52b..58b400a 100644 --- a/level_2/fll_fss/data/build/dependencies +++ b/level_2/fll_fss/data/build/dependencies @@ -5,3 +5,4 @@ f_memory f_fss fl_fss fl_errors +fl_strings diff --git a/level_2/fll_fss/data/build/settings b/level_2/fll_fss/data/build/settings index fcd0561..6d6b674 100644 --- a/level_2/fll_fss/data/build/settings +++ b/level_2/fll_fss/data/build/settings @@ -10,7 +10,7 @@ version_micro 0 build_compiler gcc build_linker ar build_libraries -lc -build_libraries_fll -lfl_errors -lfl_fss -lf_conversion -lf_file -lf_memory -lf_utf +build_libraries_fll -lfl_errors -lfl_strings -lfl_fss -lf_conversion -lf_file -lf_memory -lf_utf build_sources_library fss_basic.c fss_basic_list.c fss_extended.c fss_errors.c build_sources_program build_sources_headers fss_basic.h fss_basic_list.h fss_extended.h fss_errors.h diff --git a/level_3/fss_return_code/c/fss_return_code.c b/level_3/fss_return_code/c/fss_return_code.c index 66ec08d..869e15c 100644 --- a/level_3/fss_return_code/c/fss_return_code.c +++ b/level_3/fss_return_code/c/fss_return_code.c @@ -74,6 +74,13 @@ extern "C" { fl_print_color(f_standard_output, data.context.standout, data.context.reset, fss_return_code_long_context); printf(" Guess error state from context of error (ignores masks)."); + printf("\n %s", f_console_symbol_short_enable); + fl_print_color(f_standard_output, data.context.standout, data.context.reset, fss_return_code_short_number); + + printf(", %s", f_console_symbol_long_enable); + fl_print_color(f_standard_output, data.context.standout, data.context.reset, fss_return_code_long_number); + printf(" Convert status code name to number."); + printf("\n\n"); fl_print_color(f_standard_output, data.context.important, data.context.reset, " Usage: "); @@ -150,81 +157,116 @@ extern "C" { else if (data->parameters[fss_return_code_parameter_version].result == f_console_result_found) { fl_program_print_version(fss_return_code_version); } - else if (data->parameters[fss_return_code_parameter_is_error].result == f_console_result_found && data->remaining.used > 0) { - f_array_length counter = 0; + else if (data->parameters[fss_return_code_parameter_is_error].result == f_console_result_found) { + if (data->remaining.used > 0) { + f_array_length counter = 0; - f_status code = f_none; + f_status code = f_none; - for (; counter < data->remaining.used; counter++) { - code = (f_status) atoll(argv[data->remaining.array[counter]]); + for (; counter < data->remaining.used; counter++) { + code = (f_status) atoll(argv[data->remaining.array[counter]]); - if (data->parameters[fss_return_code_parameter_context].result == f_console_result_found) { - if (fll_fss_errors_is_error(code)) { - fss_return_code_delete_data(data); - return f_true; + if (data->parameters[fss_return_code_parameter_context].result == f_console_result_found) { + if (fll_fss_errors_is_error(code)) { + fss_return_code_delete_data(data); + return f_true; + } } - } - else { - if (f_error_is_error(code)) { - fss_return_code_delete_data(data); - return f_true; + else { + if (f_error_is_error(code)) { + fss_return_code_delete_data(data); + return f_true; + } } - } - } // for + } // for + } fss_return_code_delete_data(data); return f_false; } - else if (data->parameters[fss_return_code_parameter_is_warning].result == f_console_result_found && data->remaining.used > 0) { - f_array_length counter = 0; + else if (data->parameters[fss_return_code_parameter_is_warning].result == f_console_result_found) { + if (data->remaining.used > 0) { + f_array_length counter = 0; - f_status code = f_none; + f_status code = f_none; - for (; counter < data->remaining.used; counter++) { - code = (f_status) atoll(argv[data->remaining.array[counter]]); + for (; counter < data->remaining.used; counter++) { + code = (f_status) atoll(argv[data->remaining.array[counter]]); - if (data->parameters[fss_return_code_parameter_context].result == f_console_result_found) { - if (fll_fss_errors_is_warning(code)) { - fss_return_code_delete_data(data); - return f_true; + if (data->parameters[fss_return_code_parameter_context].result == f_console_result_found) { + if (fll_fss_errors_is_warning(code)) { + fss_return_code_delete_data(data); + return f_true; + } } - } - else { - if (f_error_is_warning(code)) { - fss_return_code_delete_data(data); - return f_true; + else { + if (f_error_is_warning(code)) { + fss_return_code_delete_data(data); + return f_true; + } } - } - } // for + } // for + } fss_return_code_delete_data(data); return f_false; } - else if (data->parameters[fss_return_code_parameter_is_fine].result == f_console_result_found && data->remaining.used > 0) { - f_array_length counter = 0; + else if (data->parameters[fss_return_code_parameter_is_fine].result == f_console_result_found) { + if (data->remaining.used > 0) { + f_array_length counter = 0; - f_status code = f_none; + f_status code = f_none; - for (; counter < data->remaining.used; counter++) { - code = (f_status) atoll(argv[data->remaining.array[counter]]); + for (; counter < data->remaining.used; counter++) { + code = (f_status) atoll(argv[data->remaining.array[counter]]); - if (data->parameters[fss_return_code_parameter_context].result == f_console_result_found) { - if (fll_fss_errors_is_fine(code)) { - fss_return_code_delete_data(data); - return f_true; + if (data->parameters[fss_return_code_parameter_context].result == f_console_result_found) { + if (fll_fss_errors_is_fine(code)) { + fss_return_code_delete_data(data); + return f_true; + } } - } - else { - if (f_error_is_fine(code)) { - fss_return_code_delete_data(data); - return f_true; + else { + if (f_error_is_fine(code)) { + fss_return_code_delete_data(data); + return f_true; + } } - } - } // for + } // for + } fss_return_code_delete_data(data); return f_false; } + else if (data->parameters[fss_return_code_parameter_number].result == f_console_result_found) { + if (data->remaining.used > 0) { + f_array_length counter = 0; + f_status code = f_none; + + for (; counter < data->remaining.used; counter++) { + status = fll_errors_from_string(argv[data->remaining.array[counter]], &code); + + if (status == f_invalid_data) { + status = fll_fss_errors_from_string(argv[data->remaining.array[counter]], &code); + } + + if (f_error_is_error(status)) { + break; + } + else { + status = f_none; + } + + printf("%u\n", code); + } // for + } + else { + status = f_false; + } + + fss_return_code_delete_data(data); + return status; + } else if (data->remaining.used > 0 || data->process_pipe) { f_array_length counter = 0; diff --git a/level_3/fss_return_code/c/fss_return_code.h b/level_3/fss_return_code/c/fss_return_code.h index 1551925..cb38d03 100644 --- a/level_3/fss_return_code/c/fss_return_code.h +++ b/level_3/fss_return_code/c/fss_return_code.h @@ -30,6 +30,7 @@ // fll-2 includes #include +#include #include #ifdef __cplusplus @@ -45,7 +46,7 @@ extern "C" { #ifndef _di_fss_return_code_name_ #define fss_return_code_name "fss_return_code" - #define fss_return_code_name_long "FSS Error Code" + #define fss_return_code_name_long "FSS Return Code" #endif // _di_fss_return_code_name_ #ifndef _di_fss_return_code_defines_ @@ -53,11 +54,13 @@ extern "C" { #define fss_return_code_short_is_warning "w" #define fss_return_code_short_is_error "e" #define fss_return_code_short_context "c" + #define fss_return_code_short_number "n" #define fss_return_code_long_is_fine "is_fine" #define fss_return_code_long_is_warning "is_warning" #define fss_return_code_long_is_error "is_error" #define fss_return_code_long_context "context" + #define fss_return_code_long_number "number" enum { fss_return_code_parameter_help, @@ -69,6 +72,7 @@ extern "C" { fss_return_code_parameter_is_warning, fss_return_code_parameter_is_error, fss_return_code_parameter_context, + fss_return_code_parameter_number, }; #define f_console_parameter_initialize_fss_return_code \ @@ -81,9 +85,10 @@ extern "C" { f_console_parameter_initialize(fss_return_code_short_is_warning, fss_return_code_long_is_warning, 0, 0, f_false, f_console_type_normal, 0), \ f_console_parameter_initialize(fss_return_code_short_is_error, fss_return_code_long_is_error, 0, 0, f_false, f_console_type_normal, 0), \ f_console_parameter_initialize(fss_return_code_short_context, fss_return_code_long_context, 0, 0, f_false, f_console_type_normal, 0), \ + f_console_parameter_initialize(fss_return_code_short_number, fss_return_code_long_number, 0, 0, f_false, f_console_type_normal, 0), \ } - #define fss_return_code_total_parameters 8 + #define fss_return_code_total_parameters 9 #endif // _di_fss_return_code_defines_ #ifndef _di_fss_return_code_data_ diff --git a/level_3/fss_return_code/data/build/dependencies b/level_3/fss_return_code/data/build/dependencies index 55693f4..793fee0 100644 --- a/level_3/fss_return_code/data/build/dependencies +++ b/level_3/fss_return_code/data/build/dependencies @@ -14,5 +14,6 @@ fl_fss fl_program fl_strings fll_colors +fll_errors fll_execute fll_fss diff --git a/level_3/fss_return_code/data/build/settings b/level_3/fss_return_code/data/build/settings index c342031..5b49201 100644 --- a/level_3/fss_return_code/data/build/settings +++ b/level_3/fss_return_code/data/build/settings @@ -10,7 +10,7 @@ version_micro 0 build_compiler gcc build_linker ar build_libraries -lc -build_libraries_fll -lfll_colors -lfll_fss -lfl_fss -lfl_errors -lfl_colors -lfl_console -lfl_program -lf_print -lf_pipe -lf_conversion -lf_console -lf_memory -lf_utf +build_libraries_fll -lfll_colors -lfll_errors -lfll_fss -lfl_fss -lfl_errors -lfl_colors -lfl_console -lfl_program -lfl_strings -lf_print -lf_pipe -lf_conversion -lf_console -lf_memory -lf_utf #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0 #build_libraries_fll-monolithic -lfll build_sources_library fss_return_code.c diff --git a/level_3/return_code/c/return_code.c b/level_3/return_code/c/return_code.c index 3b32672..be861b5 100644 --- a/level_3/return_code/c/return_code.c +++ b/level_3/return_code/c/return_code.c @@ -74,6 +74,13 @@ extern "C" { fl_print_color(f_standard_output, data.context.standout, data.context.reset, return_code_long_context); printf(" Guess error state from context of error (ignores masks)."); + printf("\n %s", f_console_symbol_short_enable); + fl_print_color(f_standard_output, data.context.standout, data.context.reset, return_code_short_number); + + printf(", %s", f_console_symbol_long_enable); + fl_print_color(f_standard_output, data.context.standout, data.context.reset, return_code_long_number); + printf(" Convert status code name to number."); + printf("\n\n"); fl_print_color(f_standard_output, data.context.important, data.context.reset, " Usage: "); @@ -150,81 +157,108 @@ extern "C" { else if (data->parameters[return_code_parameter_version].result == f_console_result_found) { fl_program_print_version(return_code_version); } - else if (data->parameters[return_code_parameter_is_error].result == f_console_result_found && data->remaining.used > 0) { - f_array_length counter = 0; - - f_status code = f_none; + else if (data->parameters[return_code_parameter_is_error].result == f_console_result_found) { + if (data->remaining.used > 0) { + f_array_length counter = 0; + f_status code = f_none; - for (; counter < data->remaining.used; counter++) { - code = (f_status) atoll(argv[data->remaining.array[counter]]); + for (; counter < data->remaining.used; counter++) { + code = (f_status) atoll(argv[data->remaining.array[counter]]); - if (data->parameters[return_code_parameter_context].result == f_console_result_found) { - if (fl_errors_is_error(code)) { - return_code_delete_data(data); - return f_true; + if (data->parameters[return_code_parameter_context].result == f_console_result_found) { + if (fl_errors_is_error(code)) { + return_code_delete_data(data); + return f_true; + } } - } - else { - if (f_error_is_error(code)) { - return_code_delete_data(data); - return f_true; + else { + if (f_error_is_error(code)) { + return_code_delete_data(data); + return f_true; + } } - } - } // for + } // for + } return_code_delete_data(data); return f_false; } - else if (data->parameters[return_code_parameter_is_warning].result == f_console_result_found && data->remaining.used > 0) { - f_array_length counter = 0; - - f_status code = f_none; + else if (data->parameters[return_code_parameter_is_warning].result == f_console_result_found) { + if (data->remaining.used > 0) { + f_array_length counter = 0; + f_status code = f_none; - for (; counter < data->remaining.used; counter++) { - code = (f_status) atoll(argv[data->remaining.array[counter]]); + for (; counter < data->remaining.used; counter++) { + code = (f_status) atoll(argv[data->remaining.array[counter]]); - if (data->parameters[return_code_parameter_context].result == f_console_result_found) { - if (fl_errors_is_warning(code)) { - return_code_delete_data(data); - return f_true; + if (data->parameters[return_code_parameter_context].result == f_console_result_found) { + if (fl_errors_is_warning(code)) { + return_code_delete_data(data); + return f_true; + } } - } - else { - if (f_error_is_warning(code)) { - return_code_delete_data(data); - return f_true; + else { + if (f_error_is_warning(code)) { + return_code_delete_data(data); + return f_true; + } } - } - } // for + } // for + } return_code_delete_data(data); return f_false; } - else if (data->parameters[return_code_parameter_is_fine].result == f_console_result_found && data->remaining.used > 0) { - f_array_length counter = 0; - - f_status code = f_none; + else if (data->parameters[return_code_parameter_is_fine].result == f_console_result_found) { + if (data->remaining.used > 0) { + f_array_length counter = 0; + f_status code = f_none; - for (; counter < data->remaining.used; counter++) { - code = (f_status) atoll(argv[data->remaining.array[counter]]); + for (; counter < data->remaining.used; counter++) { + code = (f_status) atoll(argv[data->remaining.array[counter]]); - if (data->parameters[return_code_parameter_context].result == f_console_result_found) { - if (fl_errors_is_fine(code)) { - return_code_delete_data(data); - return f_true; + if (data->parameters[return_code_parameter_context].result == f_console_result_found) { + if (fl_errors_is_fine(code)) { + return_code_delete_data(data); + return f_true; + } } - } - else { - if (f_error_is_fine(code)) { - return_code_delete_data(data); - return f_true; + else { + if (f_error_is_fine(code)) { + return_code_delete_data(data); + return f_true; + } } - } - } // for + } // for + } return_code_delete_data(data); return f_false; } + else if (data->parameters[return_code_parameter_number].result == f_console_result_found) { + if (data->remaining.used > 0) { + f_array_length counter = 0; + f_status code = f_none; + + for (; counter < data->remaining.used; counter++) { + status = fll_errors_from_string(argv[data->remaining.array[counter]], &code); + if (f_error_is_error(status)) { + break; + } + else { + status = f_true; + } + + printf("%u\n", code); + } // for + } + else { + status = f_false; + } + + return_code_delete_data(data); + return status; + } else if (data->remaining.used > 0 || data->process_pipe) { f_array_length counter = 0; diff --git a/level_3/return_code/c/return_code.h b/level_3/return_code/c/return_code.h index 0539c75..f13f335 100644 --- a/level_3/return_code/c/return_code.h +++ b/level_3/return_code/c/return_code.h @@ -28,6 +28,7 @@ // fll-2 includes #include +#include #ifdef __cplusplus extern "C" { @@ -42,7 +43,7 @@ extern "C" { #ifndef _di_return_code_name_ #define return_code_name "return_code" - #define return_code_name_long "Error Code" + #define return_code_name_long "Return Code" #endif // _di_return_code_name_ #ifndef _di_return_code_defines_ @@ -50,11 +51,13 @@ extern "C" { #define return_code_short_is_warning "w" #define return_code_short_is_error "e" #define return_code_short_context "c" + #define return_code_short_number "n" #define return_code_long_is_fine "is_fine" #define return_code_long_is_warning "is_warning" #define return_code_long_is_error "is_error" #define return_code_long_context "context" + #define return_code_long_number "number" enum { return_code_parameter_help, @@ -66,6 +69,7 @@ extern "C" { return_code_parameter_is_warning, return_code_parameter_is_error, return_code_parameter_context, + return_code_parameter_number, }; #define f_console_parameter_initialize_return_code \ @@ -78,9 +82,10 @@ extern "C" { f_console_parameter_initialize(return_code_short_is_warning, return_code_long_is_warning, 0, 0, f_false, f_console_type_normal, 0), \ f_console_parameter_initialize(return_code_short_is_error, return_code_long_is_error, 0, 0, f_false, f_console_type_normal, 0), \ f_console_parameter_initialize(return_code_short_context, return_code_long_context, 0, 0, f_false, f_console_type_normal, 0), \ + f_console_parameter_initialize(return_code_short_number, return_code_long_number, 0, 0, f_false, f_console_type_normal, 0), \ } - #define return_code_total_parameters 8 + #define return_code_total_parameters 9 #endif // _di_return_code_defines_ #ifndef _di_return_code_data_ diff --git a/level_3/return_code/data/build/dependencies b/level_3/return_code/data/build/dependencies index e50a1ed..3126ffc 100644 --- a/level_3/return_code/data/build/dependencies +++ b/level_3/return_code/data/build/dependencies @@ -10,3 +10,4 @@ fl_file fl_program fl_strings fll_colors +fll_errors diff --git a/level_3/return_code/data/build/settings b/level_3/return_code/data/build/settings index 2e6284f..8423f09 100644 --- a/level_3/return_code/data/build/settings +++ b/level_3/return_code/data/build/settings @@ -10,7 +10,7 @@ version_micro 0 build_compiler gcc build_linker ar build_libraries -lc -build_libraries_fll -lfll_colors -lfl_errors -lfl_colors -lfl_console -lfl_program -lf_print -lf_pipe -lf_conversion -lf_console -lf_memory -lf_utf +build_libraries_fll -lfll_colors -lfll_errors -lfl_errors -lfl_colors -lfl_console -lfl_program -lfl_strings -lf_print -lf_pipe -lf_conversion -lf_console -lf_memory -lf_utf #build_libraries_fll-level -lfll_2 -lfll_1 -lfll_0 #build_libraries_fll-monolithic -lfll build_sources_library return_code.c