]> Kevux Git Server - fll/commit
Update: Featureless Make with regard to recent fl_directory_do() changes.
authorKevin Day <Kevin@kevux.org>
Sun, 27 Apr 2025 03:09:42 +0000 (22:09 -0500)
committerKevin Day <Kevin@kevux.org>
Sun, 27 Apr 2025 03:21:58 +0000 (22:21 -0500)
commit3befe37125e426d452a1b9b9a1fab97ab221c7f1
treea91e05ab6f47945b18cdf669c0a68d88b2b9e224
parenteeab96706d4dcb4701cb5ec03fc76f0617d2da82
Update: Featureless Make with regard to recent fl_directory_do() changes.

The changes to `fl_directory_do()` requires that the Featureless Make be updated.

I noticed that the `fake_build_copy()` has the `perserve_offset` parameter (also a typo in the name).
This was added in a hackish way in the past as sort of a quick and lazy solution.
Break this out into two parameters `preserve` and `offset` to allow for preserving the path with no offset at all.
I believe the current function structure is still not ideal but that is a problem for another time.

The `fake_do_copy_action()` callback for `fl_directory_do()` is now rewritten.
I distantly remember not being happy with the situation of the code and I would have needed to fix the `cache_map` to have a more logical use.
There were too many changes going on at the time and I did not want to deal with changing that as well.
Well, the problem of that approach finally caught up with me and I have fixed it now.
The `cache_map` now has the `key` as the source directory and the path as the `destination` directory.

I impulsively decided to use a `uint8_t` to designate the functions.
Then I wrapped the code in `F_status_is_error_not()` to allow for calling the error handling later on.
This has a downside of a rather ugly ternary blob.
Aside from the ternary blob, the rest of the code is rather simpler due to the avoidance of always handling the error and returning.

This is not well tested and I need to review the changes made as it should affect how the Featureless Make builds the tree structure.
The unit tests do seem to be failing to build.
I suspect there is some sort of problem in these changes that need to be further investigated.
level_3/fake/c/main/build.c
level_3/fake/c/main/build.h
level_3/fake/c/main/common/print.c
level_3/fake/c/main/common/print.h
level_3/fake/c/main/fake/do.c
level_3/fake/c/main/fake/do.h
level_3/fake/c/main/make/operate_process_type.c