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.