]> Kevux Git Server - fll/commitdiff
Bugfix: The f_capability should accept f_string_constant_t rather than f_string_static_t.
authorKevin Day <thekevinday@gmail.com>
Tue, 5 Apr 2022 03:35:54 +0000 (22:35 -0500)
committerKevin Day <thekevinday@gmail.com>
Tue, 5 Apr 2022 03:35:54 +0000 (22:35 -0500)
The name.string is incorrect and should be name->string.
Once I fixed this, I noticed a compiler warning about losing the "const" frrom the return value of cap_mode_name().
Use f_string_constant_t rather than f_string_static_t.

level_0/f_capability/c/capability.c
level_0/f_capability/c/capability.h
level_0/f_capability/tests/unit/c/test-capability-mode_get_name.c

index 68d7565486e9946a00c2a191ddde3e435c731f2b..2f50e6b0e2e563d941ca3d4147f019f0e28a2c29 100644 (file)
@@ -210,7 +210,7 @@ extern "C" {
   #endif // _di_f_capability_mode_get_
 
   #ifndef _di_f_capability_mode_get_name_
-    f_status_t f_capability_mode_get_name(const f_capability_mode_t mode, f_string_static_t * const name) {
+    f_status_t f_capability_mode_get_name(const f_capability_mode_t mode, f_string_constant_t * const name) {
       #ifndef _di_level_0_parameter_checking_
         if (!name) return F_status_set_error(F_parameter);
       #endif // _di_level_0_parameter_checking_
@@ -800,15 +800,13 @@ extern "C" {
   #endif // _di_f_capability_mode_get_
 
   #ifndef _di_f_capability_mode_get_name_
-    f_status_t f_capability_mode_get_name(const f_capability_mode_t mode, f_string_static_t * const name) {
+    f_status_t f_capability_mode_get_name(const f_capability_mode_t mode, f_string_constant_t * const name) {
       #ifndef _di_level_0_parameter_checking_
         if (!mode) return F_status_set_error(F_parameter);
         if (!name) return F_status_set_error(F_parameter);
       #endif // _di_level_0_parameter_checking_
 
-      name.string = cap_mode_name(mode);
-      name.used = strnlen(name.string, F_string_t_size_d);
-      name.size = 0;
+      *name = cap_mode_name(mode);
 
       return F_none;
     }
index d9ce645b598cfcd5c730020b3785a04b88e147d3..d456c10e80953d7ae20abd56a18f245702485e99 100644 (file)
@@ -588,7 +588,7 @@ extern "C" {
  *   The capability mode.
  * @param name
  *   The name of the mode.
- *   This is NULL terminated after the name.used.
+ *   This is a NULL terminated string.
  *
  * @return
  *   F_none on success.
@@ -600,7 +600,7 @@ extern "C" {
  * @see cap_get_mode()
  */
 #ifndef _di_f_capability_mode_get_name_
-  extern f_status_t f_capability_mode_get_name(const f_capability_mode_t mode, f_string_static_t * const name);
+  extern f_status_t f_capability_mode_get_name(const f_capability_mode_t mode, f_string_constant_t * const name);
 #endif // _di_f_capability_mode_get_name_
 
 /**
index a9d1443abd606a85c64fbd847531ac2ceabd291d..3e6f8f656e0973cd6d2624779ded12aec41834a9 100644 (file)
@@ -21,7 +21,7 @@ extern "C" {
 void test__f_capability_mode_get_name__works(void **state) {
 
   const f_capability_mode_t mode = f_capability_mode_t_initialize;
-  f_string_static_t name = f_string_static_t_initialize;
+  f_string_constant_t name = f_string_constant_t_initialize;
 
   #if defined(_di_libcap_) || defined(_libcap_legacy_only_)
     printf("[  WARN    ] f_capability_mode_get_name() is not implemented and cannot be fully tested.\n");