]> Kevux Git Server - fll/commitdiff
Bugfix: Incorrect macro definition structure resulting in invalid inverse (!) checks.
authorKevin Day <thekevinday@gmail.com>
Mon, 3 May 2021 02:35:11 +0000 (21:35 -0500)
committerKevin Day <thekevinday@gmail.com>
Mon, 3 May 2021 02:35:11 +0000 (21:35 -0500)
I seem to have forgotten to wrap these macro checks in parenthesis.

As a result something like "!macro_f_file_type_is_block()" would expand to "!macro_f_file_type_get(mode) == f_file_type_block".
What it should expand to should be logically equivalent to "macro_f_file_type_get(mode) != f_file_type_block".
The expansion with the parenthesis would be: "!(macro_f_file_type_get(mode) == f_file_type_block)" and that is indeed logically equivalent.

level_0/f_file/c/file-common.h

index 22f8e31ed5f3e0f6eb1003302c2f5a68bbe63cb5..f79dd7051c91b0d2ea85d1d0f1a9be70093f7746 100644 (file)
@@ -77,13 +77,13 @@ extern "C" {
 
   #define macro_f_file_type_get(mode) (f_file_type_mask & mode)
 
-  #define macro_f_file_type_is_block(mode)     macro_f_file_type_get(mode) == f_file_type_block
-  #define macro_f_file_type_is_character(mode) macro_f_file_type_get(mode) == f_file_type_character
-  #define macro_f_file_type_is_directory(mode) macro_f_file_type_get(mode) == f_file_type_directory
-  #define macro_f_file_type_is_fifo(mode)      macro_f_file_type_get(mode) == f_file_type_fifo
-  #define macro_f_file_type_is_link(mode)      macro_f_file_type_get(mode) == f_file_type_link
-  #define macro_f_file_type_is_regular(mode)   macro_f_file_type_get(mode) == f_file_type_regular
-  #define macro_f_file_type_is_socket(mode)    macro_f_file_type_get(mode) == f_file_type_socket
+  #define macro_f_file_type_is_block(mode)     (macro_f_file_type_get(mode) == f_file_type_block)
+  #define macro_f_file_type_is_character(mode) (macro_f_file_type_get(mode) == f_file_type_character)
+  #define macro_f_file_type_is_directory(mode) (macro_f_file_type_get(mode) == f_file_type_directory)
+  #define macro_f_file_type_is_fifo(mode)      (macro_f_file_type_get(mode) == f_file_type_fifo)
+  #define macro_f_file_type_is_link(mode)      (macro_f_file_type_get(mode) == f_file_type_link)
+  #define macro_f_file_type_is_regular(mode)   (macro_f_file_type_get(mode) == f_file_type_regular)
+  #define macro_f_file_type_is_socket(mode)    (macro_f_file_type_get(mode) == f_file_type_socket)
 
   #define macro_f_file_open_mode_append        "a"
   #define macro_f_file_open_mode_read          "r"