From 0e239ee8ed6a583eee9b088d44de1486241ae02e Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Mon, 11 Aug 2025 19:12:17 -0500 Subject: [PATCH] Feature: Add F_is and F_is_not status codes. --- level_0/f_status/c/status.h | 2 ++ level_0/f_status_string/c/status_string.c | 12 ++++++++++++ level_0/f_status_string/c/status_string.h | 6 ++++++ level_0/f_status_string/tests/unit/c/test-status_string-to.c | 6 +++++- level_1/fl_status_string/c/status_string.c | 12 ++++++++++++ .../fl_status_string/tests/unit/c/test-status_string-from.c | 6 +++++- 6 files changed, 42 insertions(+), 2 deletions(-) diff --git a/level_0/f_status/c/status.h b/level_0/f_status/c/status.h index c0f7471..a129d88 100644 --- a/level_0/f_status/c/status.h +++ b/level_0/f_status/c/status.h @@ -520,6 +520,8 @@ extern "C" { F_instance_too_many, F_interrupt, F_interrupt_not, + F_is, + F_is_not, F_keep, F_keep_not, F_known, diff --git a/level_0/f_status_string/c/status_string.c b/level_0/f_status_string/c/status_string.c index 416febe..c4374d2 100644 --- a/level_0/f_status_string/c/status_string.c +++ b/level_0/f_status_string/c/status_string.c @@ -389,6 +389,8 @@ extern "C" { const f_string_static_t f_status_instance_too_many_s = macro_f_string_static_t_initialize_1(F_status_instance_too_many_s, 0, F_status_instance_too_many_s_length); const f_string_static_t f_status_interrupt_s = macro_f_string_static_t_initialize_1(F_status_interrupt_s, 0, F_status_interrupt_s_length); const f_string_static_t f_status_interrupt_not_s = macro_f_string_static_t_initialize_1(F_status_interrupt_not_s, 0, F_status_interrupt_not_s_length); + const f_string_static_t f_status_is_s = macro_f_string_static_t_initialize_1(F_status_is_s, 0, F_status_is_s_length); + const f_string_static_t f_status_is_not_s = macro_f_string_static_t_initialize_1(F_status_is_not_s, 0, F_status_is_not_s_length); const f_string_static_t f_status_keep_s = macro_f_string_static_t_initialize_1(F_status_keep_s, 0, F_status_keep_s_length); const f_string_static_t f_status_keep_not_s = macro_f_string_static_t_initialize_1(F_status_keep_not_s, 0, F_status_keep_not_s_length); const f_string_static_t f_status_known_s = macro_f_string_static_t_initialize_1(F_status_known_s, 0, F_status_known_s_length); @@ -2608,6 +2610,16 @@ extern "C" { break; + case F_is: + *name = f_status_is_s; + + break; + + case F_is_not: + *name = f_status_is_not_s; + + break; + case F_keep: *name = f_status_keep_s; diff --git a/level_0/f_status_string/c/status_string.h b/level_0/f_status_string/c/status_string.h index 93c6cbb..fbe0b3c 100644 --- a/level_0/f_status_string/c/status_string.h +++ b/level_0/f_status_string/c/status_string.h @@ -548,6 +548,8 @@ extern "C" { #define F_status_instance_too_many_s "F_instance_too_many" #define F_status_interrupt_s "F_interrupt" #define F_status_interrupt_not_s "F_interrupt_not" + #define F_status_is_s "F_is" + #define F_status_is_not_s "F_is_not" #define F_status_keep_s "F_keep" #define F_status_keep_not_s "F_keep_not" #define F_status_known_s "F_known" @@ -1148,6 +1150,8 @@ extern "C" { #define F_status_instance_too_many_s_length 19 #define F_status_interrupt_s_length 11 #define F_status_interrupt_not_s_length 15 + #define F_status_is_s_length 8 + #define F_status_is_not_s_length 12 #define F_status_keep_s_length 6 #define F_status_keep_not_s_length 10 #define F_status_known_s_length 7 @@ -1750,6 +1754,8 @@ extern "C" { extern const f_string_static_t f_status_instance_too_many_s; extern const f_string_static_t f_status_interrupt_s; extern const f_string_static_t f_status_interrupt_not_s; + extern const f_string_static_t f_status_is_s; + extern const f_string_static_t f_status_is_not_s; extern const f_string_static_t f_status_keep_s; extern const f_string_static_t f_status_keep_not_s; extern const f_string_static_t f_status_known_s; diff --git a/level_0/f_status_string/tests/unit/c/test-status_string-to.c b/level_0/f_status_string/tests/unit/c/test-status_string-to.c index 4545b0e..653add9 100644 --- a/level_0/f_status_string/tests/unit/c/test-status_string-to.c +++ b/level_0/f_status_string/tests/unit/c/test-status_string-to.c @@ -414,6 +414,8 @@ void test__f_status_string_to__works(void **state) { F_instance_too_many, F_interrupt, F_interrupt_not, + F_is, + F_is_not, F_keep, F_keep_not, F_known, @@ -1083,6 +1085,8 @@ void test__f_status_string_to__works(void **state) { f_status_instance_too_many_s, f_status_interrupt_s, f_status_interrupt_not_s, + f_status_is_s, + f_status_is_not_s, f_status_keep_s, f_status_keep_not_s, f_status_known_s, @@ -1367,7 +1371,7 @@ void test__f_status_string_to__works(void **state) { f_status_status_code_last_s, }; - for (uint16_t i = 0; i < 662; ++i) { + for (uint16_t i = 0; i < 664; ++i) { f_string_static_t result = f_string_static_t_initialize; diff --git a/level_1/fl_status_string/c/status_string.c b/level_1/fl_status_string/c/status_string.c index 595da54..8cee174 100644 --- a/level_1/fl_status_string/c/status_string.c +++ b/level_1/fl_status_string/c/status_string.c @@ -2341,6 +2341,18 @@ extern "C" { return F_okay; } + if (f_compare_dynamic(name, f_status_is_s) == F_equal_to) { + *code = F_is; + + return F_okay; + } + + if (f_compare_dynamic(name, f_status_is_not_s) == F_equal_to) { + *code = F_is_not; + + return F_okay; + } + if (f_compare_dynamic(name, f_status_keep_s) == F_equal_to) { *code = F_keep; diff --git a/level_1/fl_status_string/tests/unit/c/test-status_string-from.c b/level_1/fl_status_string/tests/unit/c/test-status_string-from.c index 7d901be..13b9e5b 100644 --- a/level_1/fl_status_string/tests/unit/c/test-status_string-from.c +++ b/level_1/fl_status_string/tests/unit/c/test-status_string-from.c @@ -430,6 +430,8 @@ void test__fl_status_string_from__works(void **state) { F_instance_too_many, F_interrupt, F_interrupt_not, + F_is, + F_is_not, F_keep, F_keep_not, F_known, @@ -1099,6 +1101,8 @@ void test__fl_status_string_from__works(void **state) { f_status_instance_too_many_s, f_status_interrupt_s, f_status_interrupt_not_s, + f_status_is_s, + f_status_is_not_s, f_status_keep_s, f_status_keep_not_s, f_status_known_s, @@ -1383,7 +1387,7 @@ void test__fl_status_string_from__works(void **state) { f_status_status_code_last_s, }; - for (uint16_t i = 0; i < 662; ++i) { + for (uint16_t i = 0; i < 664; ++i) { f_status_t result = F_okay; -- 1.8.3.1