]> Kevux Git Server - fll/commit
Bugfix: Fixes for f_file exposed by unit tests.
authorKevin Day <thekevinday@gmail.com>
Thu, 21 Apr 2022 03:54:39 +0000 (22:54 -0500)
committerKevin Day <thekevinday@gmail.com>
Thu, 21 Apr 2022 03:54:56 +0000 (22:54 -0500)
commitbe99a3873f3b70d323013c5437a52ed09be5f76f
tree4b454be929ae9b4b134624d95851ec1408aa5bf9
parentef9b42806ab8b4ad996a1c4a54675e7a6207c681
Bugfix: Fixes for f_file exposed by unit tests.

Fix case where private_f_file_stat_at() is being passed F_true rather than the flag.

Add missing path.used checks.

When total is 0 in f_file_stream_read_until(), then immediately return as F_none_stop.

Handle case where freopen() actually allows for the path to be NULL in which case the mode string is applied.
In this case, return F_data_not only if both path and mode are not used.
Always re-assign the file stream after calling freopen().

The return status' from private_f_file_stream_write_until() calls are not being processed.
The code is checking the values but the value is never assigned.
Add the missing return value assignment.

Move file stream locking into private_f_file_stream_write_until() and make sure only unlocked functions are used.

The f_file_type() and f_file_type_at() functions need to accept a dereference boolean for consistency with the rest of the project.
Have these two functions call private_f_file_stat() and private_f_file_stat_at() respectively.

When fwrite_unlocked() is called, be sure to set check if ferror_unlocked() returns an error rather than checking size_write.
The previous behavior is incorrect because it is checking if size is less than 0 and the man pages claim that fwrite()/fwrite_unlocked() returns nothing smaller than 0 on failure.

Have the fwrite_unlocked() unknown errnor codes return F_file_write rather than F_failure.

Clean up function ordering.
level_0/f_file/c/file.c
level_0/f_file/c/file.h
level_0/f_file/c/private-file.c