]> Kevux Git Server - fll/commit
Bugfix: Problems in f_file regarding file mode exposed by unit tests.
authorKevin Day <thekevinday@gmail.com>
Sun, 17 Apr 2022 00:26:18 +0000 (19:26 -0500)
committerKevin Day <thekevinday@gmail.com>
Sun, 17 Apr 2022 01:24:18 +0000 (20:24 -0500)
commitf450016534870cfbfd8bbf31035bbf45b444ec2a
tree5ee1c44b030bad0b0ed075cd76510fcd0543b7df
parent018294112409b22aba909071e0acb9a2fbc2f6c6
Bugfix: Problems in f_file regarding file mode exposed by unit tests.

The f_file_mode_from_string() function clearly didn't survive multiple refactors.
There are problems clearly the result from mass-refactoring.

Now that the parameter is f_string_static_t rather than an f_string_t, use the ".used" rather than NULL checks to determine end of string.
Failure to do this could result in unexpected behavior.

There are also bugs and mistakes that I do not know how they even got past me.
The comparison checks are missing from some checks!
Add missing '==' comparisons.

Exit as soon as possible when code.used is smaller than it is allowed to be.
Mode strings that start with '+', '-', or '=' of length 1 cannot be valid.
Mode strings that start with '=' should replace across all blocks.

Better detect when the code is incomplete and return an error.

Add missing detection for when mode string is too large for number-based modes.

As per chmod command, replacement digits (not having '+' or '-') result in replacing special bits as well.

Update the documentation to better describe how f_file_mode_t works.
level_0/f_file/c/file.c
level_0/f_file/c/file.h
level_0/f_file/c/file/common.h