The `function` parameter is now replaced with `debug`.
There are several changes to the error printing functions to accommodate this.
A new function `fll_error_print_debug()` is added for handling the printing of this debug parameter.
Update the programs to ensure that they compile with these changes.
A follow up commit is required to fully and properly utilize this debug parameter.
The Featureless Make had to be updated further to get it to compile.
This fixes incorrect documentation that I observed.
The debug and function conversions are only enough to get things to compile.
This will still need a follow up commit to properly change everything.
#define _di_f_string_format_s_double_s_
#define _di_f_string_format_s_s_
#define _di_f_string_format_s_single_s_
+#define _di_f_string_format_sentence_end_basic_s_
+#define _di_f_string_format_sentence_end_double_basic_s_
+#define _di_f_string_format_sentence_end_double_quote_basic_s_
#define _di_f_string_format_sentence_end_double_quote_s_
#define _di_f_string_format_sentence_end_double_s_
#define _di_f_string_format_sentence_end_quote_s_
#define _di_f_string_format_sentence_end_s_
+#define _di_f_string_format_sentence_end_single_basic_s_
+#define _di_f_string_format_sentence_end_single_quote_basic_s_
#define _di_f_string_format_sentence_end_single_quote_s_
#define _di_f_string_format_sentence_end_single_s_
#define _di_f_string_format_ss_double_s_
#define _di_fll_error_file_type_socket_s_
#define _di_fll_error_parameter_integer_print_
#define _di_fll_error_print_
+#define _di_fll_error_print_debug_
#define _di_fll_error_s_a_
#define _di_fll_error_s_e_
#define _di_f_string_format_Z_s_
#define _di_f_string_format_Z_single_s_
#define _di_f_string_format_bracket_close_s_
-#define _di_f_string_format_bracket_open_s_
+//#define _di_f_string_format_bracket_open_s_
#define _di_f_string_format_c_s_
#define _di_f_string_format_d_double_s_
#define _di_f_string_format_d_s_
#define _di_f_string_format_s_double_s_
#define _di_f_string_format_s_s_
#define _di_f_string_format_s_single_s_
+#define _di_f_string_format_sentence_end_basic_s_
+#define _di_f_string_format_sentence_end_double_basic_s_
+#define _di_f_string_format_sentence_end_double_quote_basic_s_
#define _di_f_string_format_sentence_end_double_quote_s_
#define _di_f_string_format_sentence_end_double_s_
#define _di_f_string_format_sentence_end_quote_s_
#define _di_f_string_format_sentence_end_s_
+//#define _di_f_string_format_sentence_end_single_basic_s_
+#define _di_f_string_format_sentence_end_single_quote_basic_s_
//#define _di_f_string_format_sentence_end_single_quote_s_
//#define _di_f_string_format_sentence_end_single_s_
#define _di_f_string_format_ss_double_s_
//#define _di_fll_error_file_type_socket_s_
#define _di_fll_error_parameter_integer_print_
//#define _di_fll_error_print_
+#define _di_fll_error_print_debug_
//#define _di_fll_error_s_a_
//#define _di_fll_error_s_e_
#define _di_fll_print_
#define _di_f_string_format_Z_s_
#define _di_f_string_format_Z_single_s_
#define _di_f_string_format_bracket_close_s_
-#define _di_f_string_format_bracket_open_s_
+//#define _di_f_string_format_bracket_open_s_
#define _di_f_string_format_c_s_
#define _di_f_string_format_d_double_s_
#define _di_f_string_format_d_s_
#define _di_f_string_format_s_double_s_
#define _di_f_string_format_s_s_
#define _di_f_string_format_s_single_s_
+#define _di_f_string_format_sentence_end_basic_s_
+#define _di_f_string_format_sentence_end_double_basic_s_
+#define _di_f_string_format_sentence_end_double_quote_basic_s_
#define _di_f_string_format_sentence_end_double_quote_s_
#define _di_f_string_format_sentence_end_double_s_
#define _di_f_string_format_sentence_end_quote_s_
#define _di_f_string_format_sentence_end_s_
+//#define _di_f_string_format_sentence_end_single_basic_s_
+#define _di_f_string_format_sentence_end_single_quote_basic_s_
//#define _di_f_string_format_sentence_end_single_quote_s_
//#define _di_f_string_format_sentence_end_single_s_
#define _di_f_string_format_ss_double_s_
//#define _di_fll_error_file_type_socket_s_
#define _di_fll_error_parameter_integer_print_
//#define _di_fll_error_print_
+#define _di_fll_error_print_debug_
//#define _di_fll_error_s_a_
//#define _di_fll_error_s_e_
#define _di_fll_print_
#define _di_f_string_format_s_double_s_
#define _di_f_string_format_s_s_
#define _di_f_string_format_s_single_s_
+#define _di_f_string_format_sentence_end_basic_s_
+#define _di_f_string_format_sentence_end_double_basic_s_
+#define _di_f_string_format_sentence_end_double_quote_basic_s_
#define _di_f_string_format_sentence_end_double_quote_s_
#define _di_f_string_format_sentence_end_double_s_
#define _di_f_string_format_sentence_end_quote_s_
#define _di_f_string_format_sentence_end_s_
+//#define _di_f_string_format_sentence_end_single_basic_s_
+#define _di_f_string_format_sentence_end_single_quote_basic_s_
//#define _di_f_string_format_sentence_end_single_quote_s_
//#define _di_f_string_format_sentence_end_single_s_
#define _di_f_string_format_ss_double_s_
//#define _di_fll_error_file_type_socket_s_
#define _di_fll_error_parameter_integer_print_
//#define _di_fll_error_print_
+//#define _di_fll_error_print_debug_
//#define _di_fll_error_s_a_
//#define _di_fll_error_s_e_
//#define _di_fll_execute_arguments_add_
#define _di_f_string_format_Z_s_
#define _di_f_string_format_Z_single_s_
#define _di_f_string_format_bracket_close_s_
-#define _di_f_string_format_bracket_open_s_
+//#define _di_f_string_format_bracket_open_s_
#define _di_f_string_format_c_s_
#define _di_f_string_format_d_double_s_
#define _di_f_string_format_d_s_
#define _di_f_string_format_s_double_s_
#define _di_f_string_format_s_s_
#define _di_f_string_format_s_single_s_
+#define _di_f_string_format_sentence_end_basic_s_
+#define _di_f_string_format_sentence_end_double_basic_s_
+#define _di_f_string_format_sentence_end_double_quote_basic_s_
#define _di_f_string_format_sentence_end_double_quote_s_
#define _di_f_string_format_sentence_end_double_s_
#define _di_f_string_format_sentence_end_quote_s_
#define _di_f_string_format_sentence_end_s_
+//#define _di_f_string_format_sentence_end_single_basic_s_
+#define _di_f_string_format_sentence_end_single_quote_basic_s_
//#define _di_f_string_format_sentence_end_single_quote_s_
//#define _di_f_string_format_sentence_end_single_s_
#define _di_f_string_format_ss_double_s_
//#define _di_fll_error_file_type_socket_s_
#define _di_fll_error_parameter_integer_print_
//#define _di_fll_error_print_
+#define _di_fll_error_print_debug_
//#define _di_fll_error_s_a_
//#define _di_fll_error_s_e_
#define _di_fll_execute_arguments_add_
#define _di_f_string_format_Z_s_
#define _di_f_string_format_Z_single_s_
//#define _di_f_string_format_bracket_close_s_
-#define _di_f_string_format_bracket_open_s_
+//#define _di_f_string_format_bracket_open_s_
#define _di_f_string_format_c_s_
#define _di_f_string_format_d_double_s_
#define _di_f_string_format_d_s_
#define _di_f_string_format_s_double_s_
#define _di_f_string_format_s_s_
#define _di_f_string_format_s_single_s_
+#define _di_f_string_format_sentence_end_basic_s_
+#define _di_f_string_format_sentence_end_double_basic_s_
+#define _di_f_string_format_sentence_end_double_quote_basic_s_
#define _di_f_string_format_sentence_end_double_quote_s_
#define _di_f_string_format_sentence_end_double_s_
#define _di_f_string_format_sentence_end_quote_s_
#define _di_f_string_format_sentence_end_s_
+//#define _di_f_string_format_sentence_end_single_basic_s_
+#define _di_f_string_format_sentence_end_single_quote_basic_s_
//#define _di_f_string_format_sentence_end_single_quote_s_
//#define _di_f_string_format_sentence_end_single_s_
#define _di_f_string_format_ss_double_s_
//#define _di_fll_error_file_type_socket_s_
#define _di_fll_error_parameter_integer_print_
//#define _di_fll_error_print_
+#define _di_fll_error_print_debug_
//#define _di_fll_error_s_a_
//#define _di_fll_error_s_e_
#define _di_fll_print_
const f_string_static_t f_string_format_sentence_end_double_s = macro_f_string_static_t_initialize_1(F_string_format_sentence_end_double_s, 0, F_string_format_sentence_end_double_s_length);
#endif // _di_f_string_format_sentence_end_double_s_
+ #ifndef _di_f_string_format_sentence_end_double_basic_s_
+ const f_string_static_t f_string_format_sentence_end_double_basic_s = macro_f_string_static_t_initialize_1(F_string_format_sentence_end_double_basic_s, 0, F_string_format_sentence_end_double_basic_s_length);
+ #endif // _di_f_string_format_sentence_end_double_basic_s_
+
#ifndef _di_f_string_format_sentence_end_double_quote_s_
const f_string_static_t f_string_format_sentence_end_double_quote_s = macro_f_string_static_t_initialize_1(F_string_format_sentence_end_double_quote_s, 0, F_string_format_sentence_end_double_quote_s_length);
#endif // _di_f_string_format_sentence_end_double_quote_s_
+ #ifndef _di_f_string_format_sentence_end_double_quote_basic_s_
+ const f_string_static_t f_string_format_sentence_end_double_quote_basic_s = macro_f_string_static_t_initialize_1(F_string_format_sentence_end_double_quote_basic_s, 0, F_string_format_sentence_end_double_quote_basic_s_length);
+ #endif // _di_f_string_format_sentence_end_double_quote_basic_s_
+
#ifndef _di_f_string_format_sentence_end_single_s_
const f_string_static_t f_string_format_sentence_end_single_s = macro_f_string_static_t_initialize_1(F_string_format_sentence_end_single_s, 0, F_string_format_sentence_end_single_s_length);
#endif // _di_f_string_format_sentence_end_single_s_
+ #ifndef _di_f_string_format_sentence_end_single_basic_s_
+ const f_string_static_t f_string_format_sentence_end_single_basic_s = macro_f_string_static_t_initialize_1(F_string_format_sentence_end_single_basic_s, 0, F_string_format_sentence_end_single_basic_s_length);
+ #endif // _di_f_string_format_sentence_end_single_basic_s_
+
#ifndef _di_f_string_format_sentence_end_single_quote_s_
const f_string_static_t f_string_format_sentence_end_single_quote_s = macro_f_string_static_t_initialize_1(F_string_format_sentence_end_single_quote_s, 0, F_string_format_sentence_end_single_quote_s_length);
#endif // _di_f_string_format_sentence_end_single_quote_s_
+
+ #ifndef _di_f_string_format_sentence_end_single_quote_basic_s_
+ const f_string_static_t f_string_format_sentence_end_single_quote_basic_s = macro_f_string_static_t_initialize_1(F_string_format_sentence_end_single_quote_basic_s, 0, F_string_format_sentence_end_single_quote_basic_s_length);
+ #endif // _di_f_string_format_sentence_end_single_quote_basic_s_
#endif // _di_f_string_format_s_
#ifdef __cplusplus
#define F_string_format_ull_single_s "%[%ull%]"
#define F_string_format_ULL_s "%ULL"
- #define F_string_format_sentence_end_s ".%r"
- #define F_string_format_sentence_end_quote_s "'.%r"
- #define F_string_format_sentence_end_double_s "%[%[.%]%]%r"
- #define F_string_format_sentence_end_double_quote_s "%[%['.%]%]%r"
- #define F_string_format_sentence_end_single_s "%[.%]%r"
- #define F_string_format_sentence_end_single_quote_s "%['.%]%r"
+ #define F_string_format_sentence_end_s ".%r"
+ #define F_string_format_sentence_end_basic_s ".%]%r"
+ #define F_string_format_sentence_end_quote_s "'.%r"
+ #define F_string_format_sentence_end_double_s "%[%[.%]%]%r"
+ #define F_string_format_sentence_end_double_basic_s ".%]%]%r"
+ #define F_string_format_sentence_end_double_quote_s "%[%['.%]%]%r"
+ #define F_string_format_sentence_end_double_quote_basic_s "'.%]%]%r"
+ #define F_string_format_sentence_end_single_s "%[.%]%r"
+ #define F_string_format_sentence_end_single_basic_s ".%]%r"
+ #define F_string_format_sentence_end_single_quote_s "%['.%]%r"
+ #define F_string_format_sentence_end_single_quote_basic_s "'.%]%r"
#define F_string_format_bracket_close_s_length 2
#define F_string_format_bracket_open_s_length 2
#define F_string_format_ull_double_s_length 8
#define F_string_format_ULL_s_length 4
- #define F_string_format_sentence_end_s_length 2
- #define F_string_format_sentence_end_quote_s_length 3
- #define F_string_format_sentence_end_double_s_length 11
- #define F_string_format_sentence_end_double_quote_s_length 12
- #define F_string_format_sentence_end_single_s_length 7
- #define F_string_format_sentence_end_single_quote_s_length 8
+ #define F_string_format_sentence_end_s_length 3
+ #define F_string_format_sentence_end_basic_s_length 5
+ #define F_string_format_sentence_end_quote_s_length 4
+ #define F_string_format_sentence_end_double_s_length 11
+ #define F_string_format_sentence_end_double_basic_s_length 7
+ #define F_string_format_sentence_end_double_quote_s_length 12
+ #define F_string_format_sentence_end_double_quote_basic_s_length 8
+ #define F_string_format_sentence_end_single_s_length 7
+ #define F_string_format_sentence_end_single_basic_s_length 5
+ #define F_string_format_sentence_end_single_quote_s_length 8
+ #define F_string_format_sentence_end_single_quote_basic_s_length 6
#ifndef _di_f_string_format_bracket_close_s_
extern const f_string_static_t f_string_format_bracket_close_s;
extern const f_string_static_t f_string_format_sentence_end_s;
#endif // _di_f_string_format_sentence_end_s_
+ #ifndef _di_f_string_format_sentence_end_basic_s_
+ extern const f_string_static_t f_string_format_sentence_end_basic_s;
+ #endif // _di_f_string_format_sentence_end_basic_s_
+
#ifndef _di_f_string_format_sentence_end_quote_s_
extern const f_string_static_t f_string_format_sentence_end_quote_s;
#endif // _di_f_string_format_sentence_end_quote_s_
extern const f_string_static_t f_string_format_sentence_end_double_s;
#endif // _di_f_string_format_sentence_end_double_s_
+ #ifndef _di_f_string_format_sentence_end_double_basic_s_
+ extern const f_string_static_t f_string_format_sentence_end_double_basic_s;
+ #endif // _di_f_string_format_sentence_end_double_basic_s_
+
#ifndef _di_f_string_format_sentence_end_double_quote_s_
extern const f_string_static_t f_string_format_sentence_end_double_quote_s;
#endif // _di_f_string_format_sentence_end_double_quote_s_
+ #ifndef _di_f_string_format_sentence_end_double_quote_basic_s_
+ extern const f_string_static_t f_string_format_sentence_end_double_quote_basic_s;
+ #endif // _di_f_string_format_sentence_end_double_quote_basic_s_
+
#ifndef _di_f_string_format_sentence_end_single_s_
extern const f_string_static_t f_string_format_sentence_end_single_s;
#endif // _di_f_string_format_sentence_end_single_s_
+ #ifndef _di_f_string_format_sentence_end_single_basic_s_
+ extern const f_string_static_t f_string_format_sentence_end_single_basic_s;
+ #endif // _di_f_string_format_sentence_end_single_basic_s_
+
#ifndef _di_f_string_format_sentence_end_single_quote_s_
extern const f_string_static_t f_string_format_sentence_end_single_quote_s;
#endif // _di_f_string_format_sentence_end_single_quote_s_
+
+ #ifndef _di_f_string_format_sentence_end_single_quote_basic_s_
+ extern const f_string_static_t f_string_format_sentence_end_single_quote_basic_s;
+ #endif // _di_f_string_format_sentence_end_single_quote_basic_s_
#endif // _di_f_string_format_s_
/**
extern "C" {
#endif
-#ifndef _di_fll_error_print_
- f_status_t fll_error_print(fl_print_t * const print, const f_status_t status, const f_string_t function, const uint8_t flag) {
- #ifndef _di_level_2_parameter_checking_
- if (!print) return F_status_set_error(F_parameter);
- #endif // _di_level_2_parameter_checking_
-
- return private_fll_error_print(print, status, function, flag);
- }
-#endif // _di_fll_error_print_
-
#ifndef _di_fll_error_file_print_
- f_status_t fll_error_file_print(fl_print_t * const print, const f_status_t status, const f_string_t function, const uint8_t flag, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
+ f_status_t fll_error_file_print(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t flag, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
#ifndef _di_level_2_parameter_checking_
if (!print) return F_status_set_error(F_parameter);
#endif // _di_level_2_parameter_checking_
: fll_error_file_type_file_s;
if (status == F_access_denied) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(024_access_denied_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(024_access_denied_while));
}
if (status == F_access_group) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(025_user_not_allowed_group));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(025_user_not_allowed_group));
}
if (status == F_access_owner) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(026_user_not_allowed_owner));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(026_user_not_allowed_owner));
}
if (status == F_directory || status == F_directory_not) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(027_invalid_dir_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(027_invalid_dir_while));
}
if (status == F_error) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(028_failed_to), macro_fll_error_s(029_already_in_error));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(028_failed_to), macro_fll_error_s(029_already_in_error));
}
if (status == F_failure) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(028_failed_to));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(028_failed_to));
}
if (status == F_file_close) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(030_failed_close));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(030_failed_close));
}
if (status == F_file_closed) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(031_is_closed));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(031_is_closed));
}
if (status == F_file_descriptor) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(032_descriptor_error_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(032_descriptor_error_while));
}
if (status == F_file_descriptor_max) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(033_descriptor_max_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(033_descriptor_max_while));
}
if (status == F_file_descriptor_not) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(034_descriptor_invalid_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(034_descriptor_invalid_while));
}
if (status == F_directory_empty || status == F_file_empty) {
- return private_fll_error_file_print_before_after_one(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(035_is_empty), type_name);
+ return private_fll_error_file_print_before_after_one(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(035_is_empty), type_name);
}
if (status == F_directory_empty_not || status == F_file_empty_not) {
- return private_fll_error_file_print_before_after_one(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(036_is_empty_not), type_name);
+ return private_fll_error_file_print_before_after_one(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(036_is_empty_not), type_name);
}
if (status == F_file_flush) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(037_flush_failed));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(037_flush_failed));
}
if (status == F_file_found) {
- return private_fll_error_file_print_before_after_one(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(038_found_existing), type_name);
+ return private_fll_error_file_print_before_after_one(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(038_found_existing), type_name);
}
if (status == F_file_found_not) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(039_could_not_find));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(039_could_not_find));
}
if (status == F_file_open) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(040_already_open));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(040_already_open));
}
if (status == F_file_open_max) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(041_max_open_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(041_max_open_while));
}
if (status == F_file_overflow) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(042_overflow_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(042_overflow_while));
}
if (status == F_file_purge) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(043_purge_failed));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(043_purge_failed));
}
if (status == F_file_read) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(044_read_failed_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(044_read_failed_while));
}
if (status == F_file_seek) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(045_seek_failed_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(045_seek_failed_while));
}
if (status == F_file_stat) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(046_stat_failed_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(046_stat_failed_while));
}
if (status == F_file_synchronize) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(047_synchronize_failed_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(047_synchronize_failed_while));
}
if (status == F_file_type_unknown) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(049_fail_to_path), macro_fll_error_s(048_unknown_file_type));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(049_fail_to_path), macro_fll_error_s(048_unknown_file_type));
}
if (status == F_file_utf) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(050_utf_fail_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(050_utf_fail_while));
}
if (status == F_file_utf_not) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(051_invalid_utf_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(051_invalid_utf_while));
}
if (status == F_file_underflow) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(052_underflow_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(052_underflow_while));
}
if (status == F_file_write) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(028_failed_to), macro_fll_error_s(053_write_failure));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(028_failed_to), macro_fll_error_s(053_write_failure));
}
if (status == F_loop) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(054_loop_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(054_loop_while));
}
if (status == F_name) {
fl_print_format(macro_fll_error_s(055_invalid_name), print->to, print->context, print->prefix, type_name, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable);
- fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
}
if (status == F_number_overflow) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(056_number_overflow_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(056_number_overflow_while));
}
if (status == F_number_underflow) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(057_number_underflow_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(057_number_underflow_while));
}
if (status == F_parameter) {
if (print->verbosity != f_console_verbosity_quiet_e) {
flockfile(print->to.stream);
- fl_print_format(macro_fll_error_s(006_invalid_parameter), print->to, print->context, print->prefix);
-
- private_fll_error_print_function(print, function);
-
+ fl_print_format(macro_fll_error_s(007_invalid_parameter), print->to, print->context, print->prefix);
fl_print_format(macro_fll_error_s(058_for_the), print->to, type_name, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable);
- fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
}
if (status == F_prohibited) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(059_prohibited_system_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(059_prohibited_system_while));
}
if (status == F_read_only) {
- return private_fll_error_file_print_before_after_one(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(060_read_only), type_name);
+ return private_fll_error_file_print_before_after_one(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(060_read_only), type_name);
}
if (status == F_write_only) {
private_fll_error_print_unable_to(print, operation, name, type_name, macro_fll_error_s(061_write_only));
- return private_fll_error_file_print_before_after_one(print, name, operation, type_name, macro_fll_error_s(022_unable_to), macro_fll_error_s(062_Q_write_only), type_name);
+ return private_fll_error_file_print_before_after_one(print, name, operation, type_name, debug, macro_fll_error_s(022_unable_to), macro_fll_error_s(062_Q_write_only), type_name);
}
if (type == fll_error_file_type_file_e) {
if (status == F_file_type_not_directory) {
- return private_fll_error_file_print_simple(print, name, operation, type_name, macro_fll_error_s(063_invalid_dir_path_while));
+ return private_fll_error_file_print_simple(print, name, operation, type_name, debug, macro_fll_error_s(063_invalid_dir_path_while));
}
if (status == F_file_type_directory) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(049_fail_to_path), macro_fll_error_s(064_is_directory));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(049_fail_to_path), macro_fll_error_s(064_is_directory));
}
}
else if (type == fll_error_file_type_directory_e) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(049_fail_to_path), macro_fll_error_s(065_is_file));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(049_fail_to_path), macro_fll_error_s(065_is_file));
}
if (type == fll_error_file_type_file_e || type == fll_error_file_type_directory_e || type == fll_error_file_type_path_e) {
if (status == F_directory_found_not) {
- return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, macro_fll_error_s(028_failed_to), macro_fll_error_s(066_invalid_dir_path));
+ return private_fll_error_file_print_before_after_simple(print, name, operation, type_name, debug, macro_fll_error_s(028_failed_to), macro_fll_error_s(066_invalid_dir_path));
}
if (status == F_file_type_pipe || status == F_file_type_socket) {
- return private_fll_error_file_print_before_after_one(print, name, operation, type_name, macro_fll_error_s(049_fail_to_path), macro_fll_error_s(067_is_a_Q), status == F_file_type_pipe ? fll_error_file_type_pipe_s : fll_error_file_type_socket_s);
+ return private_fll_error_file_print_before_after_one(print, name, operation, type_name, debug, macro_fll_error_s(049_fail_to_path), macro_fll_error_s(067_is_a_Q), status == F_file_type_pipe ? fll_error_file_type_pipe_s : fll_error_file_type_socket_s);
}
}
- return private_fll_error_print(print, status, function, flag);
+ return private_fll_error_print(print, status, debug, flag);
}
#endif // _di_fll_error_file_print_
#ifndef _di_fll_error_parameter_integer_print_
- f_status_t fll_error_parameter_integer_print(fl_print_t * const print, const f_status_t status, const f_string_t function, const uint8_t flag, const f_string_static_t parameter, const f_string_static_t argument) {
+ f_status_t fll_error_parameter_integer_print(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t flag, const f_string_static_t parameter, const f_string_static_t argument) {
#ifndef _di_level_2_parameter_checking_
if (!print) return F_status_set_error(F_parameter);
#endif // _di_level_2_parameter_checking_
fl_print_format(macro_fll_error_s(068_argument_for_parameter), print->to, print->context, print->prefix, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, parameter, print->notable);
- fl_print_format(macro_fll_error_s(069_must_not_empty), print->to, print->context, print->context, f_string_eol_s);
+ fl_print_format(macro_fll_error_s(069_must_not_empty), print->to, print->context);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, argument, print->notable);
fl_print_format(macro_fll_error_s(071_not_valid_number_parameter), print->to, print->context, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, parameter, print->notable);
- fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, argument, print->notable);
fl_print_format(macro_fll_error_s(072_negative_not_allowed), print->to, print->context, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, parameter, print->notable);
- fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, argument, print->notable);
fl_print_format(macro_fll_error_s(073_too_large_for_parameter), print->to, print->context, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, parameter, print->notable);
- fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, argument, print->notable);
fl_print_format(macro_fll_error_s(074_positive_not_allowed), print->to, print->context, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, parameter, print->notable);
- fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, argument, print->notable);
fl_print_format(macro_fll_error_s(075_too_small_for_parameter), print->to, print->context, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, parameter, print->notable);
- fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
return F_false;
}
- return private_fll_error_print(print, status, function, flag);
+ return private_fll_error_print(print, status, debug, flag);
}
#endif // _di_fll_error_parameter_integer_print_
+#ifndef _di_fll_error_print_
+ f_status_t fll_error_print(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t flag) {
+ #ifndef _di_level_2_parameter_checking_
+ if (!print) return F_status_set_error(F_parameter);
+ #endif // _di_level_2_parameter_checking_
+
+ return private_fll_error_print(print, status, debug, flag);
+ }
+#endif // _di_fll_error_print_
+
+#ifndef _di_fll_error_print_debug_
+ f_status_t fll_error_print_debug(fl_print_t * const print, const f_string_t debug) {
+ #ifndef _di_level_2_parameter_checking_
+ if (!print) return F_status_set_error(F_parameter);
+ #endif // _di_level_2_parameter_checking_
+
+ private_fll_error_print_debug(print, debug);
+
+ return F_okay;
+ }
+#endif // _di_fll_error_print_debug_
+
#ifdef __cplusplus
} // extern "C"
#endif
#endif
/**
- * Print generic error or warning messages.
- *
- * @param print
- * Designates how printing is to be performed.
- * @param status
- * The status code to process.
- * Make sure this has F_status_set_fine() called if the status code has any error or warning bits.
- * @param function
- * (optional) The name of the function where the error happened.
- *
- * Set to NULL to disable.
- * @param flag
- * One of the fll_error_file_flag_*_e flags.
- * Consider passing fll_error_file_flag_simple_e, on errors like file not find while trying to find file.
- *
- * @return
- * F_false is returned on successful print of known errors.
- * F_true is returned if the status code is unknown.
- */
-#ifndef _di_fll_error_print_
- extern f_status_t fll_error_print(fl_print_t * const print, const f_status_t status, const f_string_t function, const uint8_t flag);
-#endif // _di_fll_error_print_
-
-/**
* Print file related error or warning messages.
*
* @param print
* @param status
* The status code to process.
* Make sure this has F_status_set_fine() called if the status code has any error or warning bits.
- * @param function
- * (optional) The name of the function where the error happened.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
*
* Set to NULL to disable.
* @param flag
* @return
* F_true is returned if the status code has no print message.
* F_false is returned on successful print of known errors.
+ *
+ * F_parameter (with error bit) if a parameter is invalid.
*/
#ifndef _di_fll_error_file_print_
- extern f_status_t fll_error_file_print(fl_print_t * const print, const f_status_t status, const f_string_t function, const uint8_t flag, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
+ extern f_status_t fll_error_file_print(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t flag, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
#endif // _di_fll_error_file_print_
/**
* @param status
* The status code to process.
* Make sure this has F_status_set_fine() called if the status code has any error or warning bits.
- * @param function
- * (optional) The name of the function where the error happened.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
*
* Set to NULL to disable.
* @param flag
* @return
* F_true is returned if the status code has no print message.
* F_false is returned on successful print of known errors.
+ *
+ * F_parameter (with error bit) if a parameter is invalid.
*/
#ifndef _di_fll_error_parameter_integer_print_
- extern f_status_t fll_error_parameter_integer_print(fl_print_t * const print, const f_status_t status, const f_string_t function, const uint8_t flag, const f_string_static_t parameter, const f_string_static_t argument);
+ extern f_status_t fll_error_parameter_integer_print(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t flag, const f_string_static_t parameter, const f_string_static_t argument);
#endif // _di_fll_error_parameter_integer_print_
+/**
+ * Print generic error or warning messages.
+ *
+ * @param print
+ * Designates how printing is to be performed.
+ * @param status
+ * The status code to process.
+ * Make sure this has F_status_set_fine() called if the status code has any error or warning bits.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
+ * @param flag
+ * One of the fll_error_file_flag_*_e flags.
+ * Consider passing fll_error_file_flag_simple_e, on errors like file not find while trying to find file.
+ *
+ * @return
+ * F_false is returned on successful print of known errors.
+ * F_true is returned if the status code is unknown.
+ *
+ * F_parameter (with error bit) if a parameter is invalid.
+ */
+#ifndef _di_fll_error_print_
+ extern f_status_t fll_error_print(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t flag);
+#endif // _di_fll_error_print_
+
+/**
+ * Print generic error or warning messages.
+ *
+ * If debug is NULL, then this prints only the opening color context.
+ * This is done to ensure that the opening color context is printed regardless of the state of debug.
+ *
+ * @param print
+ * Designates how printing is to be performed.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
+ *
+ * @return
+ * F_okay on success.
+ *
+ * F_parameter (with error bit) if a parameter is invalid.
+ */
+#ifndef _di_fll_error_print_debug_
+ extern f_status_t fll_error_print_debug(fl_print_t * const print, const f_string_t debug);
+#endif // _di_fll_error_print_debug_
+
#ifdef __cplusplus
} // extern "C"
#endif
"%[%QInvalid UTF-8 character found",
"%[%QUTF-8 character (fragment) found",
"%[%QInvalid (incomplete) UTF-8 character found",
- " at the end of string.%]%r",
- " at the stop point of string.%]%r",
- ".%]%r",
+ " at the end of string",
+ " at the stop point of string",
"%[%QFailure",
"%[%QSignal received",
"%[%QInterrupt signal received",
"%[%Q(%]",
"%[%ui%]%[)",
- " when calling function%] ",
- "%[()",
+ " (%]",
+ "%[)",
", ",
"%[%QUnable to %Q %Q '%]",
"%['%S%S.%]%r",
"%[%QCurrent user is not allowed to use the given owner while trying to %Q %Q '%]",
"%[%QInvalid directory while trying to %Q %Q '%]",
"%[%QFailed to %Q %Q '%]",
- "%[', already in an error state.%]%r",
- "%[', failed to close.%]%r",
- "%[', is closed.%]%r",
+ "%[', already in an error state",
+ "%[', failed to close",
+ "%[', is closed",
"%[%QFile descriptor error while trying to %Q %Q '%]",
"%[%QMax file descriptors reached while trying to %Q %Q '%]",
"%[%QInvalid file descriptor while trying to %Q %Q '%]",
- "%[', %Q is empty.%]%r",
- "%[', %Q is not empty.%]%r",
- "%[', flush failed.%]%r",
- "%[', found existing %Q.%]%r",
- "%[', could not find.%]%r",
- "%[', already open.%]%r",
+ "%[', %Q is empty",
+ "%[', %Q is not empty",
+ "%[', flush failed",
+ "%[', found existing %Q",
+ "%[', could not find",
+ "%[', already open",
"%[%QMax open files reached while trying to %Q %Q '%]",
"%[%QOverflow while trying to %Q %Q '%]",
- "%[', purge failed.%]%r",
+ "%[', purge failed",
"%[%QRead failed while trying to %Q %Q '%]",
"%[%QSeek failed while trying to %Q %Q '%]",
"%[%QStat failed while trying to %Q %Q '%]",
"%[%QSynchronize failed while trying to %Q %Q '%]",
- "%[' is an unknown file type.%]%r",
+ "%[' is an unknown file type",
"%[%QFailed to %Q %Q, the path '%]",
"%[%QUTF failure while trying to %Q %Q '%]",
"%[%QInvalid UTF while trying to %Q %Q '%]",
"%[%QUnderflow while trying to %Q %Q '%]",
- "%[', write failure.%]%r",
+ "%[', write failure",
"%[%QLoop while trying to %Q %Q '%]",
"%[%QInvalid %Q name '%]",
"%[%QNumber overflow while trying to %Q %Q '%]",
"%[%QNumber underflow while trying to %Q %Q '%]",
" for the %Q '%]",
"%[%QProhibited by system while trying to %Q %Q '%]",
- "%[', %Q is read only.%]%r",
+ "%[', %Q is read only",
"is write only",
- "%[', %Q is write only.%]%r",
+ "%[', %Q is write only",
"%[%QInvalid or missing directory in path while trying to %Q %Q '%]",
- "%[' is a directory.%]%r",
- "%[' is a file.%]%r",
- "%[' due to an invalid directory in the path.%]%r",
- "%[' is a %Q.%]%r",
+ "%[' is a directory",
+ "%[' is a file",
+ "%[' due to an invalid directory in the path",
+ "%[' is a %Q",
"%[%QThe argument for the parameter '%]",
- "%[' must not be an empty string.%]%r",
+ "%[' must not be an empty string",
"%[%QThe argument '%]",
"%[' is not a valid number for the parameter '%]",
"%[' is negative, which is not allowed for the parameter '%]",
fll_error_s_003_error_occurred_e,
fll_error_s_004_file_not_found_e,
fll_error_s_005_memory_problem_e,
- fll_error_s_005_unable_allocate_e,
- fll_error_s_006_invalid_parameter_e,
- fll_error_s_007_max_str_length_e,
- fll_error_s_008_invalid_utf8_char_e,
- fll_error_s_009_utf8_char_fragment_e,
- fll_error_s_010_invalid_utf8_char_e,
- fll_error_s_011_end_of_str_e,
- fll_error_s_012_stop_of_str_e,
- fll_error_s_013_period_e,
+ fll_error_s_006_unable_allocate_e,
+ fll_error_s_007_invalid_parameter_e,
+ fll_error_s_008_max_str_length_e,
+ fll_error_s_009_invalid_utf8_char_e,
+ fll_error_s_010_utf8_char_fragment_e,
+ fll_error_s_011_invalid_utf8_char_e,
+ fll_error_s_012_end_of_str_e,
+ fll_error_s_013_stop_of_str_e,
fll_error_s_014_failure_e,
fll_error_s_015_signal_received_e,
fll_error_s_016_signal_interrupt_e,
fll_error_s_017_Q_e,
fll_error_s_018_ui_e,
- fll_error_s_019_when_calling_e,
- fll_error_s_020_parenthesis_e,
+ fll_error_s_019_debug_open_e,
+ fll_error_s_020_debug_close_e,
fll_error_s_021_comma_e,
fll_error_s_022_unable_to_e,
fll_error_s_023_SS_e,
#endif
#if !defined(_di_fll_error_file_print_)
- f_status_t private_fll_error_file_print_simple(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t message) {
+ f_status_t private_fll_error_file_print_simple(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t debug, const f_string_t message) {
if (print->verbosity != f_console_verbosity_quiet_e) {
flockfile(print->to.stream);
fl_print_format(message, print->to, print->context, print->prefix, operation, type_name, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable);
- fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
#endif // _di_fll_error_file_print_simple_
#if !defined(_di_fll_error_file_print_)
- f_status_t private_fll_error_file_print_before_after_one(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t before, const f_string_t after, const f_string_static_t one) {
+ f_status_t private_fll_error_file_print_before_after_one(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t debug, const f_string_t before, const f_string_t after, const f_string_static_t one) {
if (print->verbosity != f_console_verbosity_quiet_e) {
flockfile(print->to.stream);
fl_print_format(before, print->to, print->context, print->prefix, operation, type_name, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable);
- fl_print_format(after, print->to, print->context, one, print->context, f_string_eol_s);
+ fl_print_format(after, print->to, print->context, one);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
#endif // _di_fll_error_file_print_one_
#if !defined(_di_fll_error_file_print_)
- f_status_t private_fll_error_file_print_before_after_simple(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t before, const f_string_t after) {
+ f_status_t private_fll_error_file_print_before_after_simple(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t debug, const f_string_t before, const f_string_t after) {
if (print->verbosity != f_console_verbosity_quiet_e) {
flockfile(print->to.stream);
fl_print_format(before, print->to, print->context, print->prefix, operation, type_name, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable);
- fl_print_format(after, print->to, print->context, print->context, f_string_eol_s);
+ fl_print_format(after, print->to, print->context);
+
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
#endif // _di_fll_error_file_print_simple_
#if !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
- f_status_t private_fll_error_print(fl_print_t * const print, const f_status_t status, const f_string_t function, const uint8_t flag) {
+ f_status_t private_fll_error_print(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t flag) {
if (status == F_access_denied) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(000_access_denied));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(000_access_denied));
}
if (status == F_array_too_large) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(001_max_arr_length));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(001_max_arr_length));
}
if (status == F_buffer_too_large) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(002_max_buf_length));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(002_max_buf_length));
}
if (status == F_error) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(003_error_occurred));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(003_error_occurred));
}
if (status == F_file_found_not) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(004_file_not_found));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(004_file_not_found));
}
if (status == F_implement_not) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(076_implement_not));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(076_implement_not));
}
if (status == F_memory) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(005_memory_problem));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(005_memory_problem));
}
if (status == F_memory_not) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(005_unable_allocate));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(006_unable_allocate));
}
if (status == F_parameter) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(006_invalid_parameter));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(007_invalid_parameter));
}
if (status == F_string_too_large) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(007_max_str_length));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(008_max_str_length));
}
if (status == F_support_not) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(077_support_not));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(077_support_not));
}
if (status == F_utf_not) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(008_invalid_utf8_char));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(009_invalid_utf8_char));
}
if (status == F_utf_fragment) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(009_utf8_char_fragment));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(010_utf8_char_fragment));
}
if (status == F_complete_not_utf || status == F_complete_not_utf_eos || status == F_complete_not_utf_stop) {
if (print->verbosity != f_console_verbosity_quiet_e) {
flockfile(print->to.stream);
- fl_print_format(macro_fll_error_s(010_invalid_utf8_char), print->to, print->context, print->prefix);
-
- private_fll_error_print_function(print, function);
+ fl_print_format(macro_fll_error_s(011_invalid_utf8_char), print->to, print->context, print->prefix);
if (status == F_complete_not_utf_eos) {
- fl_print_format(macro_fll_error_s(011_end_of_str), print->to, print->context, f_string_eol_s);
+ fl_print_format(macro_fll_error_s(012_end_of_str), print->to);
}
else if (status == F_complete_not_utf_stop) {
- fl_print_format(macro_fll_error_s(012_stop_of_str), print->to, print->context, f_string_eol_s);
- }
- else {
- fl_print_format(macro_fll_error_s(013_period), print->to, print->context, f_string_eol_s);
+ fl_print_format(macro_fll_error_s(013_stop_of_str), print->to);
}
+ private_fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
+
funlockfile(print->to.stream);
}
}
if (status == F_failure) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(014_failure));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(014_failure));
}
if (status == F_signal) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(015_signal_received));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(015_signal_received));
}
if (status == F_interrupt) {
- return private_fll_error_print_simple(print, function, macro_fll_error_s(016_signal_interrupt));
+ return private_fll_error_print_simple(print, debug, macro_fll_error_s(016_signal_interrupt));
}
if ((flag & fll_error_file_flag_fallback_e) && print->verbosity != f_console_verbosity_quiet_e) {
fl_print_format(macro_fll_error_s(017_Q), print->to, print->context, print->prefix, print->context);
fl_print_format(macro_fll_error_s(018_ui), print->to, print->notable, status, print->notable, print->context);
- private_fll_error_print_function(print, function);
+ private_fll_error_print_debug(print, debug);
- fl_print_format(macro_fll_error_s(013_period), print->to, print->context, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
#endif // !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
#if !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
- void private_fll_error_print_function(fl_print_t * const print, const f_string_t function) {
+ void private_fll_error_print_debug(fl_print_t * const print, const f_string_t debug) {
- if (function) {
- fl_print_format(macro_fll_error_s(019_when_calling), print->to, print->context);
- fl_print_format(f_string_format_S_single_s.string, print->to, print->notable, function, print->notable);
- fl_print_format(macro_fll_error_s(020_parenthesis), print->to, print->context);
+ if (debug) {
+ fl_print_format(macro_fll_error_s(019_debug_open), print->to, print->context);
+ fl_print_format(f_string_format_S_single_s.string, print->to, print->notable, debug, print->notable);
+ fl_print_format(macro_fll_error_s(020_debug_close), print->to, print->context);
+ }
+ else {
+ fl_print_format(f_string_format_bracket_open_s.string, print->to, print->context);
}
}
#endif // !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
#if !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
- f_status_t private_fll_error_print_simple(fl_print_t * const print, const f_string_t function, const f_string_t message) {
+ f_status_t private_fll_error_print_simple(fl_print_t * const print, const f_string_t debug, const f_string_t message) {
if (print->verbosity != f_console_verbosity_quiet_e) {
flockfile(print->to.stream);
fl_print_format(message, print->to, print->context, print->prefix);
- private_fll_error_print_function(print, function);
+ private_fll_error_print_debug(print, debug);
- fl_print_format(macro_fll_error_s(013_period), print->to, print->context, f_string_eol_s);
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
funlockfile(print->to.stream);
}
fl_print_format(macro_fll_error_s(022_unable_to), print->to, print->context, print->prefix, operation, type, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, name, print->notable);
- fl_print_format(macro_fll_error_s(023_SS), print->to, print->context, message ? macro_fll_error_s(021_comma) : f_string_empty_s.string, message ? message : f_string_empty_s.string, print->context, f_string_eol_s);
+
+ fl_print_format(
+ macro_fll_error_s(023_SS),
+ print->to,
+ print->context,
+ message
+ ? macro_fll_error_s(021_comma)
+ : f_string_empty_s.string,
+ message
+ ? message
+ : f_string_empty_s.string,
+ print->context,
+ f_string_eol_s
+ );
funlockfile(print->to.stream);
}
* The operation that fails, such as 'create' or 'access'.
* @param type_name
* The name of the operation type.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param message
* The message to print.
* Must have the following escape sequences (in this order): "%[%Q%Q%Q%]".
* @see fll_error_file_print()
*/
#if !defined(_di_fll_error_file_print_)
- extern f_status_t private_fll_error_file_print_simple(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t message) F_attribute_visibility_internal_d;
+ extern f_status_t private_fll_error_file_print_simple(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t debug, const f_string_t message) F_attribute_visibility_internal_d;
#endif // !defined(_di_fll_error_file_print_)
/**
* The operation that fails, such as 'create' or 'access'.
* @param type_name
* The name of the operation type.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param before
* The before message to print.
* Must have the following escape sequences (in this order): "%[%Q%Q%Q%]".
* @see fll_error_file_print()
*/
#if !defined(_di_fll_error_file_print_)
- extern f_status_t private_fll_error_file_print_before_after_one(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t before, const f_string_t after, const f_string_static_t one) F_attribute_visibility_internal_d;
+ extern f_status_t private_fll_error_file_print_before_after_one(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t debug, const f_string_t before, const f_string_t after, const f_string_static_t one) F_attribute_visibility_internal_d;
#endif // !defined(_di_fll_error_file_print_)
/**
* The operation that fails, such as 'create' or 'access'.
* @param type_name
* The name of the operation type.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param before
* The before message to print.
* Must have the following escape sequences (in this order): "%[%Q%Q%Q%]".
* @see fll_error_file_print()
*/
#if !defined(_di_fll_error_file_print_)
- extern f_status_t private_fll_error_file_print_before_after_simple(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t before, const f_string_t after) F_attribute_visibility_internal_d;
+ extern f_status_t private_fll_error_file_print_before_after_simple(fl_print_t * const print, const f_string_static_t name, const f_string_static_t operation, const f_string_static_t type_name, const f_string_t debug, const f_string_t before, const f_string_t after) F_attribute_visibility_internal_d;
#endif // !defined(_di_fll_error_file_print_)
/**
* @param status
* The status code to process.
* Make sure this has F_status_set_fine() called if the status code has any error or warning bits.
- * @param function
- * (optional) The name of the function where the error happened.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
*
* Set to NULL to disable.
* @param flag
* @see fll_error_file_print()
*/
#if !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
- extern f_status_t private_fll_error_print(fl_print_t * const print, const f_status_t status, const f_string_t function, const uint8_t flag) F_attribute_visibility_internal_d;
+ extern f_status_t private_fll_error_print(fl_print_t * const print, const f_status_t status, const f_string_t debug, const uint8_t flag) F_attribute_visibility_internal_d;
#endif // !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
/**
- * Special function for printing the "function name".
+ * Special function for printing the debug string.
*
* Intended to be shared to each of the different implementation variations.
*
* @param print
* Designates how printing is to be performed.
- * @param function
- * (optional) The name of the function where the error happened.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
*
* Set to NULL to disable.
*
- * @return
- * F_false is returned on successful print of known errors.
- * F_true is returned if the status code is unknown.
- *
* @see fll_error_print()
* @see fll_error_file_print()
*/
#if !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
- extern void private_fll_error_print_function(fl_print_t * const print, const f_string_t function) F_attribute_visibility_internal_d;
+ extern void private_fll_error_print_debug(fl_print_t * const print, const f_string_t debug) F_attribute_visibility_internal_d;
#endif // !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
/**
*
* @param print
* Designates how printing is to be performed.
- * @param function
- * (optional) The name of the function where the error happened.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
*
* Set to NULL to disable.
* @param message
* @see fll_error_file_print()
*/
#if !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
- extern f_status_t private_fll_error_print_simple(fl_print_t * const print, const f_string_t function, const f_string_t message) F_attribute_visibility_internal_d;
+ extern f_status_t private_fll_error_print_simple(fl_print_t * const print, const f_string_t debug, const f_string_t message) F_attribute_visibility_internal_d;
#endif // !defined(_di_fll_error_print_) || !defined(_di_fll_error_file_print_)
/**
* The operation that fails, such as 'create' or 'access'.
* @param type_name
* A string representing the type.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param message
* An additional message to add.
* Set to an 0 to not use.
main->setting.state.status = F_status_set_error(F_failure);
}
- fake_print_error_build_operation_file(&main->program.error, macro_fake_f(fl_directory_do), f_file_operation_copy_s, main->cache_map.key, main->cache_map.value, f_file_operation_to_s, F_true);
+ fake_print_error_build_operation_file(&main->program.error, macro_fake_f(fl_directory_do), macro_fake_f(fl_directory_do), f_file_operation_copy_s, main->cache_map.key, main->cache_map.value, f_file_operation_to_s, F_true);
if (F_status_is_error(failed)) {
main->setting.state.status = failed;
if (F_status_is_error(main->setting.state.status)) {
fake_print_error_build_operation_file(
&main->program.error,
+ 0,
!func
? macro_fake_f(f_memory_array_increase_by)
: func == 1
fll_fss_extended_read(buffer, &range, &objects, &contents, 0, 0, &delimits, 0, &main->setting.state);
if (F_status_is_error(main->setting.state.status)) {
- fake_print_error_fss(&main->program.error, macro_fake_f(fll_fss_extended_read), data->file_data_build_settings, range, F_true);
+ fake_print_error_fss(&main->program.error, macro_fake_f(fll_fss_extended_read), macro_fake_f(fll_fss_extended_read), data->file_data_build_settings, range, F_true);
}
else {
f_fss_apply_delimit(delimits, &buffer, &main->setting.state);
fake_print_error_build_operation_file(
&local->main->program.error,
macro_fake_f(fl_directory_do),
+ macro_fake_f(fl_directory_do),
recurse->state.code & fake_state_code_clone_d
? f_file_operation_clone_s
: f_file_operation_copy_s,
fll_fss_basic_list_read(data_make->main->buffer, &range, &list_objects, &list_contents, &delimits, 0, &comments, &data_make->main->setting.state);
if (F_status_is_error(data_make->main->setting.state.status)) {
- fake_print_error_fss(&data_make->main->program.error, macro_fake_f(fll_fss_basic_list_read), data_make->data->file_data_build_fakefile, range, F_true);
+ fake_print_error_fss(&data_make->main->program.error, macro_fake_f(fll_fss_basic_list_read), macro_fake_f(fll_fss_basic_list_read), data_make->data->file_data_build_fakefile, range, F_true);
}
else {
f_fss_apply_delimit(delimits, &data_make->main->buffer, &data_make->main->setting.state);
fll_fss_extended_read(data_make->main->buffer, &content_range, &settings.objects, &settings.contents, 0, 0, &delimits, 0, &data_make->main->setting.state);
if (F_status_is_error(data_make->main->setting.state.status)) {
- fake_print_error_fss(&data_make->main->program.error, macro_fake_f(fll_fss_extended_read), data_make->data->file_data_build_fakefile, content_range, F_true);
+ fake_print_error_fss(&data_make->main->program.error, macro_fake_f(fll_fss_extended_read), macro_fake_f(fll_fss_extended_read), data_make->data->file_data_build_fakefile, content_range, F_true);
break;
}
fll_fss_extended_read(data_make->main->buffer, &content_range, &data_make->fakefile.array[data_make->fakefile.used].objects, &data_make->fakefile.array[data_make->fakefile.used].contents, 0, &data_make->fakefile.array[data_make->fakefile.used].quotess, &delimits, 0, &data_make->main->setting.state);
if (F_status_is_error(data_make->main->setting.state.status)) {
- fake_print_error_fss(&data_make->main->program.error, macro_fake_f(fll_fss_extended_read), data_make->data->file_data_build_fakefile, content_range, F_true);
+ fake_print_error_fss(&data_make->main->program.error, macro_fake_f(fll_fss_extended_read), macro_fake_f(fll_fss_extended_read), data_make->data->file_data_build_fakefile, content_range, F_true);
break;
}
}
else if (state_process.operation == fake_make_operation_type_operate_e) {
if (section_stack->used == fake_max_stack_d) {
- fake_print_error_operation_stack_max(&data_make->error, main->buffer, section->name, section->objects.array[i], fake_max_stack_d);
+ fake_print_error_operation_stack_max(&data_make->error, 0, main->buffer, section->name, section->objects.array[i], fake_max_stack_d);
main->setting.state.status = F_status_set_error(F_recurse);
}
main->setting.state.status = f_path_change(*argument);
if (F_status_is_error(main->setting.state.status)) {
- fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_path_change), *argument);
+ fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_path_change), macro_fake_f(f_path_change), *argument);
main->setting.state.status = F_status_set_error(F_failure);
main->setting.state.status = f_path_change(main->cache_arguments.array[0]);
if (F_status_is_error(main->setting.state.status)) {
- fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_path_change), main->cache_arguments.array[0]);
+ fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_path_change), macro_fake_f(f_path_change), main->cache_arguments.array[0]);
}
else {
main->setting.state.status = f_memory_array_increase_by(fake_allocation_small_d, sizeof(f_string_dynamic_t), (void **) &data_make->path.stack.array, &data_make->path.stack.used, &data_make->path.stack.size);
if (F_status_is_error(main->setting.state.status)) {
if (F_status_set_fine(main->setting.state.status) == F_array_too_large) {
- fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_memory_array_increase_by), fake_common_file_path_stack_s);
+ fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_memory_array_increase_by), macro_fake_f(f_memory_array_increase_by), fake_common_file_path_stack_s);
main->setting.state.status = F_status_set_error(F_failure);
main->setting.state.status = f_path_change_at(data_make->path.top.id);
if (F_status_is_error(main->setting.state.status)) {
- fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_path_change), main->cache_arguments.array[0]);
+ fake_print_error_operation_path_stack_max(&data_make->error, macro_fake_f(f_path_change), macro_fake_f(f_path_change), main->cache_arguments.array[0]);
main->setting.state.status = F_status_set_error(F_failure);
#endif
#ifndef _di_fake_print_error_
- f_status_t fake_print_error(fl_print_t * const print, const f_string_t function) {
+ f_status_t fake_print_error(fl_print_t * const print, const f_string_t debug) {
if (!print || !print->custom) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
fake_main_t * const main = (fake_main_t *) print->custom;
- fll_error_print(print, F_status_set_fine(main->setting.state.status), function, fll_error_file_flag_fallback_e);
+ fll_error_print(print, F_status_set_fine(main->setting.state.status), debug, fll_error_file_flag_fallback_e);
return F_okay;
}
#endif // _di_fake_print_error_argument_empty_
#ifndef _di_fake_print_error_build_operation_file_
- f_status_t fake_print_error_build_operation_file(fl_print_t * const print, const f_string_t function, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const bool fallback) {
+ f_status_t fake_print_error_build_operation_file(fl_print_t * const print, const f_string_t debug, const f_string_t function, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const bool fallback) {
if (!print || !print->custom) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
fake_print_error_build_operation_file_partial(print, operation, source, destination, how);
- fl_print_format(macro_fll_error_s(013_period), print->to, print->context, f_string_eol_s);
+ fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
f_file_stream_unlock(print->to);
}
fake_print_error_build_operation_file_partial(print, operation, source, destination, how);
- fl_print_format(macro_fll_error_s(013_period), print->to, print->context, f_string_eol_s);
+ fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
f_file_stream_unlock(print->to);
}
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, destination, print->notable);
}
- fl_print_format(f_string_format_sentence_end_single_quote_s.string, print->to, print->context, print->context, f_string_eol_s);
+ fl_print_format("%['", print->to, print->context);
+
+ fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
f_file_stream_unlock(print->to);
}
return F_false;
}
- if (fll_error_print(print, F_status_set_fine(main->setting.state.status), function, fll_error_file_flag_none_e) == F_known_not && fallback && print->verbosity > f_console_verbosity_quiet_e) {
+ if (fll_error_print(print, F_status_set_fine(main->setting.state.status), debug, fll_error_file_flag_none_e) == F_known_not && fallback && print->verbosity > f_console_verbosity_quiet_e) {
f_file_stream_lock(print->to);
fl_print_format("%[UNKNOWN %Q(%]", print->to, print->context, print->prefix, print->context);
fake_print_error_build_operation_file_partial(print, operation, source, destination, how);
- fl_print_format(macro_fll_error_s(013_period), print->to, print->context, f_string_eol_s);
+ fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
f_file_stream_unlock(print->to);
}
#endif // _di_fake_print_error_failure_script_
#ifndef _di_fake_print_error_fallback_
- f_status_t fake_print_error_fallback(fl_print_t * const print, const f_string_t function) {
+ f_status_t fake_print_error_fallback(fl_print_t * const print, const f_string_t debug) {
if (!print || !print->custom) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
- if (fll_error_print(print, F_status_set_fine(((fake_main_t *) print->custom)->setting.state.status), function, fll_error_file_flag_none_e) == F_known_not) return F_false;
+ if (fll_error_print(print, F_status_set_fine(((fake_main_t *) print->custom)->setting.state.status), debug, fll_error_file_flag_none_e) == F_known_not) return F_false;
return F_true;
}
#endif // _di_fake_print_error_fallback_
#ifndef _di_fake_print_error_file_
- f_status_t fake_print_error_file(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
+ f_status_t fake_print_error_file(fl_print_t * const print, const f_string_t debug, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
if (!print || !print->custom) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
- fake_main_t * const main = (fake_main_t *) print->custom;
-
- fll_error_file_print(print, F_status_set_fine(main->setting.state.status), function, fll_error_file_flag_fallback_e, name, operation, type);
+ fll_error_file_print(print, F_status_set_fine(((fake_main_t *) print->custom)->setting.state.status), debug, fll_error_file_flag_fallback_e, name, operation, type);
return F_okay;
}
#endif // _di_fake_print_error_file_create_parent_missing_
#ifndef _di_fake_print_error_file_simple_
- f_status_t fake_print_error_file_simple(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
+ f_status_t fake_print_error_file_simple(fl_print_t * const print, const f_string_t debug, const f_string_static_t name, const f_string_static_t operation, const uint8_t type) {
if (!print || !print->custom) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
- fake_main_t * const main = (fake_main_t *) print->custom;
-
- fll_error_file_print(print, F_status_set_fine(main->setting.state.status), function, fll_error_file_flag_simple_e, name, operation, type);
+ fll_error_file_print(print, F_status_set_fine(((fake_main_t *) print->custom)->setting.state.status), debug, fll_error_file_flag_simple_e, name, operation, type);
return F_okay;
}
#endif // _di_fake_print_error_file_simple_
#ifndef _di_fake_print_error_fss_
- f_status_t fake_print_error_fss(fl_print_t * const print, const f_string_t function, const f_string_static_t path_file, const f_range_t range, const bool fallback) {
+ f_status_t fake_print_error_fss(fl_print_t * const print, const f_string_t debug, const f_string_t function, const f_string_static_t path_file, const f_range_t range, const bool fallback) {
if (!print || !print->custom) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
if (main->setting.state.status == F_file_found_not) {
if (print->verbosity > f_console_verbosity_quiet_e) {
- fake_print_error_fss_message(print, 0, "Occurred on invalid UTF-8 character at stop position (at ", range.start, " of the setting file ", path_file, ")");
+ fake_print_error_fss_message(print, 0, debug, "Occurred on invalid UTF-8 character at stop position (at ", range.start, " of the setting file ", path_file, ")");
}
return F_false;
if (main->setting.state.status == F_complete_not_utf_stop) {
if (print->verbosity > f_console_verbosity_quiet_e) {
- fake_print_error_fss_message(print, 0, "Occurred on invalid UTF-8 character at stop point of string (at ", range.start, " of the setting file ", path_file, ")");
+ fake_print_error_fss_message(print, 0, debug, "Occurred on invalid UTF-8 character at stop point of string (at ", range.start, " of the setting file ", path_file, ")");
}
return F_false;
}
- if (fll_error_print(print, main->setting.state.status, function, fll_error_file_flag_none_e) == F_known_not && fallback) {
+ if (fll_error_print(print, main->setting.state.status, debug, fll_error_file_flag_none_e) == F_known_not && fallback) {
if (print->verbosity > f_console_verbosity_quiet_e) {
f_string_static_t function_s = f_string_static_t_initialize;
function_s.string = function;
function_s.used = strlen(function);
- fake_print_error_fss_message(print, "UNKNOWN ", 0, (f_number_unsigned_t) main->setting.state.status, ") in function ", function_s, "()");
+ fake_print_error_fss_message(print, "UNKNOWN ", debug, 0, (f_number_unsigned_t) main->setting.state.status, ") in function ", function_s, "()");
}
}
#endif // _di_fake_print_error_fss_
#ifndef _di_fake_print_error_fss_message_
- f_status_t fake_print_error_fss_message(fl_print_t * const print, const f_string_t prefix, const f_string_t before, const f_number_unsigned_t number, const f_string_t middle, const f_string_static_t variable, const f_string_t after) {
+ f_status_t fake_print_error_fss_message(fl_print_t * const print, const f_string_t debug, const f_string_t prefix, const f_string_t before, const f_number_unsigned_t number, const f_string_t middle, const f_string_static_t variable, const f_string_t after) {
if (!print) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
fl_print_format("%[%un%]", print->to, print->notable, number, print->notable);
fl_print_format("%[)%S'%]", print->to, print->context, middle, print->context);
fl_print_format(f_string_format_Q_single_s.string, print->to, print->notable, variable, print->notable);
- fl_print_format("%[%S.%]%r", print->to, print->context, after, print->context, f_string_eol_s);
+ fl_print_format("%[%S", print->to, print->context, after);
+
+ fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
f_file_stream_unlock(print->to);
#endif // _di_fake_print_error_operation_link_target_exists_not_
#ifndef _di_fake_print_error_operation_path_outside_
- f_status_t fake_print_error_operation_path_outside(fl_print_t * const print, const f_string_t function, const f_string_static_t path) {
+ f_status_t fake_print_error_operation_path_outside(fl_print_t * const print, const f_string_t debug, const f_string_static_t path) {
if (!print || !print->custom) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_verbose_e) return F_output_not;
fake_print_context_wrapped_variable(print, "The path ", path, " is outside the project root");
}
else {
- fake_print_error_file(print, function, path, fake_common_file_path_determine_real_s, fll_error_file_type_file_e);
+ fake_print_error_file(print, debug, path, fake_common_file_path_determine_real_s, fll_error_file_type_file_e);
}
return F_okay;
#endif // _di_fake_print_error_operation_path_outside_
#ifndef _di_fake_print_error_operation_path_stack_max_
- f_status_t fake_print_error_operation_path_stack_max(fl_print_t * const print, const f_string_t function, const f_string_static_t path) {
+ f_status_t fake_print_error_operation_path_stack_max(fl_print_t * const print, const f_string_t debug, const f_string_t function, const f_string_static_t path) {
if (!print || !print->custom) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
fl_print_format("%['", print->to, print->context);
if (function) {
- fl_print_format(" while calling%] %[%S%]", print->to, print->context, print->notable, function, print->notable);
- fl_print_format(macro_fll_error_s(020_parenthesis), print->to, print->context);
+ fl_print_format(" while calling%] %[%S%]%[)", print->to, print->context, print->notable, function, print->notable, print->context);
}
- fl_print_format(macro_fll_error_s(013_period), print->to, print->context, f_string_eol_s);
+ fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
f_file_stream_unlock(print->to);
}
else {
- fake_print_error_file(print, function, path, fake_common_file_path_change_to_s, fll_error_file_type_directory_e);
+ fake_print_error_file(print, debug, path, fake_common_file_path_change_to_s, fll_error_file_type_directory_e);
}
return F_okay;
#endif // _di_fake_print_error_operation_path_stack_max_
#ifndef _di_fake_print_error_operation_stack_max_
- f_status_t fake_print_error_operation_stack_max(fl_print_t * const print, const f_string_static_t buffer, const f_range_t section_name, const f_range_t operation_name, const f_number_unsigned_t stack_max) {
+ f_status_t fake_print_error_operation_stack_max(fl_print_t * const print, const f_string_t debug, const f_string_static_t buffer, const f_range_t section_name, const f_range_t operation_name, const f_number_unsigned_t stack_max) {
if (!print || !print->custom) return F_status_set_error(F_output_not);
if (print->verbosity < f_console_verbosity_error_e) return F_output_not;
fl_print_format(f_string_format_un_single_s.string, print->to, print->notable, line, print->notable);
fl_print_format("%[' cannot be processed because the max stack depth of%] ", print->to, print->context, print->context);
fl_print_format(f_string_format_un_single_s.string, print->to, print->notable, stack_max, print->notable);
- fl_print_format(" %[has been reached.%]%r", print->to, print->context, print->context, f_string_eol_s);
+ fl_print_format(" %[has been reached", print->to, print->context);
+
+ fll_error_print_debug(print, debug);
+
+ fl_print_format(f_string_format_sentence_end_single_basic_s.string, print->to, print->context, f_string_eol_s);
f_file_stream_unlock(print->to);
* This requires print.custom to be fake_main_t.
*
* This does not alter print.custom.setting.state.status.
- * @param function
- * The function name.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
*
* @return
* F_okay on success.
* @see fl_print_format()
*/
#ifndef _di_fake_print_error_
- extern f_status_t fake_print_error(fl_print_t * const print, const f_string_t function);
+ extern f_status_t fake_print_error(fl_print_t * const print, const f_string_t debug);
#endif // _di_fake_print_error_
/**
* Print an error message for when an argument is an empty string.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param index
* The index of the argument that is an empty string.
*
/**
* Print build operation file error messages.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param function
- * The name of the function where the error happened.
+ * The name of the function.
+ *
+ * Set to NULL to disable.
* @param operation
* The operation performed.
* @param source
* @see fl_print_format()
*/
#ifndef _di_fake_print_error_build_operation_file_
- extern f_status_t fake_print_error_build_operation_file(fl_print_t * const print, const f_string_t function, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const bool fallback);
+ extern f_status_t fake_print_error_build_operation_file(fl_print_t * const print, const f_string_t debug, const f_string_t function, const f_string_static_t operation, const f_string_static_t source, const f_string_static_t destination, const f_string_static_t how, const bool fallback);
#endif // _di_fake_print_error_build_operation_file_
/**
*
* This prints the "copy source to destination" part of the message.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param before
* The string being printed before the variable.
* Likely should have a space added at the end of the string.
*
* This prints the "copy source to destination" part of the message.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param operation
* The operation performed.
* @param source
/**
* Print error message regarding file create directory failure due to a missing or invalid parent directory.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param path
* The name of the file or directory.
*
/**
* Print error message for when an operation fails.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param operation
* The identifier of the operation that failed.
*
/**
* Print error message for when an operation fails.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param script
* The name of the script that failed.
*
/**
* Print generic error message regarding a function failing in some way, setting fallback to F_false and returning result.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
- * @param function
- * The function name.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
*
* @return
* F_true is returned if the status code has no print message.
* @see fll_error_file_print()
*/
#ifndef _di_fake_print_error_fallback_
- extern f_status_t fake_print_error_fallback(fl_print_t * const print, const f_string_t function);
+ extern f_status_t fake_print_error_fallback(fl_print_t * const print, const f_string_t debug);
#endif // _di_fake_print_error_fallback_
/**
* Print file related error message regarding a function failing in some way.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param name
* The name of the file or directory.
* @param operation
* @see fll_error_file_print()
*/
#ifndef _di_fake_print_error_file_
- extern f_status_t fake_print_error_file(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
+ extern f_status_t fake_print_error_file(fl_print_t * const print, const f_string_t debug, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
#endif // _di_fake_print_error_file_
/**
* Print error message regarding file create failure due to a missing or invalid parent directory.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param path
* The name of the file or directory.
*
/**
* Print error message regarding program needed for execution is not found.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param program
* The name of the not found program.
*
*
* This prints a simple message to avoid "Unable to find file..., because file cannot be found." type of messages.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param name
* The name of the file or directory.
* @param operation
* @see fll_error_file_print()
*/
#ifndef _di_fake_print_error_file_simple_
- extern f_status_t fake_print_error_file_simple(fl_print_t * const print, const f_string_t function, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
+ extern f_status_t fake_print_error_file_simple(fl_print_t * const print, const f_string_t debug, const f_string_static_t name, const f_string_static_t operation, const uint8_t type);
#endif // _di_fake_print_error_file_simple_
/**
* Print FSS error messages.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param function
- * The function call that returned the error.
+ * The name of the function.
+ *
+ * Set to NULL to disable.
* @param path_file
* The path to the file.
* @param range
* @see fake_print_error_fss_message()
*/
#ifndef _di_fake_print_error_fss_
- extern f_status_t fake_print_error_fss(fl_print_t * const print, const f_string_t function, const f_string_static_t path_file, const f_range_t range, const bool fallback);
+ extern f_status_t fake_print_error_fss(fl_print_t * const print, const f_string_t debug, const f_string_t function, const f_string_static_t path_file, const f_range_t range, const bool fallback);
#endif // _di_fake_print_error_fss_
/**
* This is primarily used by numerous error print functions to reduce code.
* This is not used for any error print functions that has complex format structures.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
* Designates the how and where to print.
- * @param function
- * The function call that returned the error.
- * @param path_file
- * The path to the file.
- * @param range
- * The range representing the position in the buffer such that range.start is where the error happened.
- * @param fallback
- * Set to F_true to print the fallback error message for unknown errors.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
+ * @param prefix
+ * The prefix to print.
+ * @param before
+ * The message to prepend.
+ * @param number
+ * The number to print.
+ * @param middle
+ * The message after the number.
+ * @param variable
+ * The variable name associated with the number.
+ * @param after
+ * The message to append.
*
* @return
* F_okay on success.
* @see fl_print_format()
*/
#ifndef _di_fake_print_error_fss_message_
- extern f_status_t fake_print_error_fss_message(fl_print_t * const print, const f_string_t prefix, const f_string_t before, const f_number_unsigned_t number, const f_string_t middle, const f_string_static_t variable, const f_string_t after);
+ extern f_status_t fake_print_error_fss_message(fl_print_t * const print, const f_string_t debug, const f_string_t prefix, const f_string_t before, const f_number_unsigned_t number, const f_string_t middle, const f_string_static_t variable, const f_string_t after);
#endif // _di_fake_print_error_fss_message_
/**
* Print error message regarding the group not being found.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
- * Designates the how and where to print.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param group
* A string representing the group (either as a name or as a group ID).
*
/**
* Print error message regarding the mode being invalid.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
- * Designates the how and where to print.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param mode
* A string representing the invalid mode.
*
/**
* Print error message regarding the number being too large.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
- * Designates the how and where to print.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param number
* A string representing the number that is too large.
*
/**
* Print error messages when processing some fakefile section, for a specific line and operation, and that operation failed.
*
- * @param data
- * The program data.
* @param print
- * Designates how the section error/warning should be printed.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param buffer
* The buffer containing the fakefile data.
* @param section_name
/**
* Print error messages when a given link argument is unknown.
*
- * @param data
- * The program data.
* @param print
- * Designates how the section error/warning should be printed.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param argument
* The argument that is unknown by the link operation.
*
/**
* Print error messages when a given link point file already exists.
*
- * @param data
- * The program data.
* @param print
- * Designates how the section error/warning should be printed.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param argument
* The argument representing the point file.
*
/**
* Print error messages when a given link target file does not already exist.
*
- * @param data
- * The program data.
* @param print
- * Designates how the section error/warning should be printed.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param argument
* The argument representing the point file.
*
/**
* Print error messages when processing some fakefile section, for a specific line and operation, and that operation has a path outside of the project root.
*
- * @param data
- * The program data.
* @param print
- * Designates how the section error/warning should be printed.
- * @param function
- * The name of the function where the error happened.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param path
* The path that is outside of the project path.
*
* @see fll_error_file_print()
*/
#ifndef _di_fake_print_error_operation_path_outside_
- extern f_status_t fake_print_error_operation_path_outside(fl_print_t * const print, const f_string_t function, const f_string_static_t path);
+ extern f_status_t fake_print_error_operation_path_outside(fl_print_t * const print, const f_string_t debug, const f_string_static_t path);
#endif // _fake_print_error_operation_path_outside_
/**
* Print error messages when processing some fakefile section, for a specific line and operation.
*
- * @param data
- * The program data.
- * @param error
- * Designates how the section error/warning should be printed.
+ * @param print
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param function
- * (optional) The name of the function where the error happened.
+ * The name of the function.
*
* Set to NULL to disable.
* @param path
* @see fll_error_file_print()
*/
#ifndef _di_fake_print_error_operation_path_stack_max_
- extern f_status_t fake_print_error_operation_path_stack_max(fl_print_t * const print, const f_string_t function, const f_string_static_t path);
+ extern f_status_t fake_print_error_operation_path_stack_max(fl_print_t * const print, const f_string_t debug, const f_string_t function, const f_string_static_t path);
#endif // _di_fake_print_error_operation_path_stack_max_
/**
* Print error messages when processing some fakefile section, for a specific line and operation, and that the max stack depth is reached.
*
- * @param data
- * The program data.
* @param print
- * Designates how the section error/warning should be printed.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
+ * @param debug
+ * (optional) The debug details, such as file, line number, and function.
+ *
+ * Set to NULL to disable.
* @param buffer
* The buffer containing the fakefile data.
* @param section_name
* @see fl_print_format()
*/
#ifndef _di_fake_print_error_operation_stack_max_
- extern f_status_t fake_print_error_operation_stack_max(fl_print_t * const print, const f_string_static_t buffer, const f_range_t section_name, const f_range_t operation_name, const f_number_unsigned_t stack_max);
+ extern f_status_t fake_print_error_operation_stack_max(fl_print_t * const print, const f_string_t debug, const f_string_static_t buffer, const f_range_t section_name, const f_range_t operation_name, const f_number_unsigned_t stack_max);
#endif // _di_fake_print_error_operation_stack_max_
/**
* Print error messages when processing some fakefile section, for a specific line and operation, and that operation is invalid.
*
- * @param data
- * The program data.
* @param print
- * Designates how the section error/warning should be printed.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param buffer
* The buffer containing the fakefile data.
* @param section_name
/**
* Print error message for when the parameter value is an empty string.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
- * Designates the how and where to print.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param symbol
* The symbol of the parameter.
* @param name
/**
* Print error message for when the directory parameter value is not found.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
- * Designates the how and where to print.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param symbol
* The symbol of the parameter.
* @param name
/**
* Print error message for when the parameter value contains a non-word, non-minus, and non-plus character.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
- * Designates the how and where to print.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param symbol
* The symbol of the parameter.
* @param name
/**
* Print error message for when two designated operations cannot be used together.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
- * Designates the how and where to print.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param operation_1
* The name of the first operation that cannot be used.
* @param operation_2
/**
* Print an error message for when the parameter is specified too many times.
*
- * @param data
- * The program data.
+ * @param print
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
+ * @param symbol
+ * The symbol of the parameter.
* @param parameter
* The parameter name.
*
/**
* Print an error message for when there are more arguments are required (such as to a fakefile operation).
*
- * @param data_make
- * All make related setting data, including data from the fakefile and the build settings file.
+ * @param print
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
*
* @return
* F_okay on success.
/**
* Print an error message for when there are too many arguments passed (such as to a fakefile operation).
*
- * @param data_make
- * All make related setting data, including data from the fakefile and the build settings file.
+ * @param print
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
*
* @return
* F_okay on success.
/**
* Print error message regarding the user not being found.
*
- * @param setting
- * The main program settings.
- *
- * This does not alter setting.state.status.
* @param print
- * Designates the how and where to print.
+ * The output structure to print to.
+ *
+ * This requires print.custom to be fake_main_t.
+ *
+ * This does not alter print.custom.setting.state.status.
* @param user
* A string representing the user (either as a name or as a user ID).
*