]> Kevux Git Server - fll/log
fll
4 months agoBugfix: Add stage setting to standards to prevent build state file conflicts.
Kevin Day [Thu, 1 Aug 2024 02:33:32 +0000 (21:33 -0500)]
Bugfix: Add stage setting to standards to prevent build state file conflicts.

The build state stage files are conflicting in some cases.
The old solution to this problem has been observed as insufficient.
The different build settings might have the same exact file name.

I have tossed around the idea of a settings Object such as "stage" in the past but I had previously opted against it.
I now believe that skipping over this was a mistake.

Add a new feature to the standards to fix this bug.
The "stage" value may now be specified.
The fakefile files accept the "stage" setting and passes the result along to any build settings.
The settings files accept the "stage" setting and uses the value by appending it to the stage files.

Only a single value is supported.
The forward and backward slashes are explicitly prohibited.
Other special characters are recommended to be avoided given the possibility of local file system problems.
Rather than erroring out, this slashes are stripped out.

The bootstrap.sh script is updated to support this.
The support for "stage" in the boostrap.sh script is very limited.

4 months agoRefactor: Change bit-wise enumerations into defines.
Kevin Day [Wed, 31 Jul 2024 02:45:20 +0000 (21:45 -0500)]
Refactor: Change bit-wise enumerations into defines.

I did some reviewing of how the enumerations used for flags are used.
These generally are not being used as a type.
An enumeration slightly increases the resulting binary size.
Enumeration values might be limited to just type of int.

This seems like an easy (small) optimization to just use defines rather than enumerations for flags and other bit-wise numbers.

4 months agoUpdate: Remove the control program.
Kevin Day [Wed, 31 Jul 2024 02:37:30 +0000 (21:37 -0500)]
Update: Remove the control program.

The control program is now in its own separate project.

4 months agoUpdate: Refresh the stand alone build files.
Kevin Day [Tue, 30 Jul 2024 04:47:18 +0000 (23:47 -0500)]
Update: Refresh the stand alone build files.

4 months agoUpdate: Add missing ifndef wrapping define for the FSS status codes.
Kevin Day [Tue, 30 Jul 2024 02:37:26 +0000 (21:37 -0500)]
Update: Add missing ifndef wrapping define for the FSS status codes.

4 months agoCleanup: Improve fakefile help using the bracketed IKI syntax.
Kevin Day [Mon, 29 Jul 2024 01:38:42 +0000 (20:38 -0500)]
Cleanup: Improve fakefile help using the bracketed IKI syntax.

4 months agoUpdate: The format sentence end strings, making their usage more clear.
Kevin Day [Sun, 28 Jul 2024 22:18:07 +0000 (17:18 -0500)]
Update: The format sentence end strings, making their usage more clear.

The sentence ends, unlike the other similar global static strings, does not have the "_single" in the name.
Add the "_single" in the name and then for consistency addthe case where there should be no "_single".

These cases are as a result now handled:
- ".%r".
- "'.%r".
- "%[.%]%r"
- "%['.%]%r"
- "%[%[.%]%]%r"
- "%[%['.%]%]%r"

4 months agoCleanup: Remove extra line.
Kevin Day [Fri, 26 Jul 2024 00:34:21 +0000 (19:34 -0500)]
Cleanup: Remove extra line.

4 months agoUpdate: Yet another file with a copyright year that needs to be updated.
Kevin Day [Thu, 25 Jul 2024 03:10:44 +0000 (22:10 -0500)]
Update: Yet another file with a copyright year that needs to be updated.

I overlooked this one it seems.

4 months agoCleanup: Fix grammar mistake in the standard.
Kevin Day [Sun, 14 Jul 2024 21:06:42 +0000 (16:06 -0500)]
Cleanup: Fix grammar mistake in the standard.

This does not alter the "content" of the standard and only alters the grammar.
The version does not, therefore, have to change.

4 months agoUpdate: Add F_lock_spin and F_lock_spin_not to status codes.
Kevin Day [Sat, 13 Jul 2024 05:13:54 +0000 (00:13 -0500)]
Update: Add F_lock_spin and F_lock_spin_not to status codes.

I overlooked spin locks when I added the mutex and the read and write lock status codes.

4 months agoUpdate: Add initialize macros for time.h structures and fix initializer for f_date_t.
Kevin Day [Sat, 13 Jul 2024 03:04:57 +0000 (22:04 -0500)]
Update: Add initialize macros for time.h structures and fix initializer for f_date_t.

4 months agoUpdate: Add additional F_enter and F_enter_not status codes to act as the opposite...
Kevin Day [Fri, 12 Jul 2024 03:23:57 +0000 (22:23 -0500)]
Update: Add additional F_enter and F_enter_not status codes to act as the opposite of F_exit ad F_exit_not.

4 months agoUpdate: Documentation and specifications and add additional status codes.
Kevin Day [Thu, 11 Jul 2024 05:23:00 +0000 (00:23 -0500)]
Update: Documentation and specifications and add additional status codes.

I discovered that some of the documentation and specification files are out of date and are now updated.

Add additional status codes regarding locks.

4 months agoUpdate: Remove Controller program as it is now migrated into its own separate project.
Kevin Day [Tue, 9 Jul 2024 03:47:18 +0000 (22:47 -0500)]
Update: Remove Controller program as it is now migrated into its own separate project.

4 months agoCleanup: Documentation comments regarding optional parameters.
Kevin Day [Mon, 8 Jul 2024 03:05:43 +0000 (22:05 -0500)]
Cleanup: Documentation comments regarding optional parameters.

4 months agoCleanup: Minor style improvements and make pointers constant where possible.
Kevin Day [Mon, 8 Jul 2024 00:30:15 +0000 (19:30 -0500)]
Cleanup: Minor style improvements and make pointers constant where possible.

4 months agoCleanup: Use _1 and _2 consistently in fl_print_t macro functions.
Kevin Day [Mon, 8 Jul 2024 00:23:40 +0000 (19:23 -0500)]
Cleanup: Use _1 and _2 consistently in fl_print_t macro functions.

4 months agoUpdate: Use memmove() instead of memcpy() for memory append and memory append all...
Kevin Day [Sun, 7 Jul 2024 03:09:41 +0000 (22:09 -0500)]
Update: Use memmove() instead of memcpy() for memory append and memory append all functions.

These memory append functions do not state that the memory cannot overlap.
The use of memmove() is safer in that it allows for overlapping memory.

4 months agoBugfix: The f_memory array append and append all need to allow for sources to be...
Kevin Day [Sun, 7 Jul 2024 03:05:54 +0000 (22:05 -0500)]
Bugfix: The f_memory array append and append all need to allow for sources to be NULL.

A valid array that is not allocated will have a size of 0.
Passing these to the function should not result in an error.
If the size is 0, then there is nothing to copy even though array is NULL
This is all fine.

Update the documentation comments to be more explicit on NULL in the parameters.

4 months agoCleanup: Fix incorrect documentation regarding the print functions and the length...
Kevin Day [Sat, 6 Jul 2024 05:30:29 +0000 (00:30 -0500)]
Cleanup: Fix incorrect documentation regarding the print functions and the length parameters.

5 months agoCleanup: Add time based version in each of the documentation and specification files...
Kevin Day [Wed, 3 Jul 2024 04:53:19 +0000 (23:53 -0500)]
Cleanup: Add time based version in each of the documentation and specification files where it is missing.

I am just setting the current date rather than trying to figure out the date of last change.

5 months agoUpdate: Add F_file_empty_not to status codes.
Kevin Day [Mon, 17 Jun 2024 04:11:41 +0000 (23:11 -0500)]
Update: Add F_file_empty_not to status codes.

5 months agoUpdate: Change f_memory_array_increase() and f_memory_array_increase_by() design.
Kevin Day [Sat, 15 Jun 2024 03:21:54 +0000 (22:21 -0500)]
Update: Change f_memory_array_increase() and f_memory_array_increase_by() design.

Don't bother setting the *used size to F_number_t_size_unsigned_d on large size.
Instead, just return an error of F_array_too_large.

Add an unsigned overflow check such that if the increment results in an overflow, then the resulting length will be smaller than the original length.

Update the documentation comments.

5 months agoBugfix: Incorrect condition checks for wrap and replace parameters in iki_read.
Kevin Day [Fri, 14 Jun 2024 03:24:33 +0000 (22:24 -0500)]
Bugfix: Incorrect condition checks for wrap and replace parameters in iki_read.

5 months agoBugfix: Incorrect flag bits for combined flag hexidecimal digit.
Kevin Day [Fri, 14 Jun 2024 03:22:31 +0000 (22:22 -0500)]
Bugfix: Incorrect flag bits for combined flag hexidecimal digit.

5 months agoSecurity: Console parameter single short values array is too small.
Kevin Day [Fri, 14 Jun 2024 02:52:11 +0000 (21:52 -0500)]
Security: Console parameter single short values array is too small.

The short parameters "needs" variable now increases the array size before assignment.

The following command line calls are used to expose the problem and its resolution:
  # fss_basic_list_read specifications/fss.txt +Q -cn "Featureless Settings Specifications" | iki_read +Q -w -rrrrrrrr anti-KISS 'anti-<abbr title="Keep It Simple Stupid">KISS</abbr>' ASCII '<abbr title="American Standard Code for Information Interchange">ASCII</abbr>' BOM '<abbr title="Byte Order Mark">BOM</abbr>' FSS '<abbr title="Featureless Settings Specifications">FSS</abbr>' KISS '<abbr title="Keep It Simple Stupid">KISS</abbr>' UTF-8 '<abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr>' URL '<abbr title="Byte Order Mark">URL</abbr>' XML '<abbr title="Extensible Markup Language">XML</abbr>' -WWW character '<code class="code">' "</code>" code '<code class="code">' '</code>' italic '<em class="em">' '</em>'

5 months agoCleanup: Fix section name of Magic Block structure.
Kevin Day [Thu, 13 Jun 2024 01:13:44 +0000 (20:13 -0500)]
Cleanup: Fix section name of Magic Block structure.

This is not a functional change to the specification and so the version s not changed.

5 months agoUpdate: f_iki unit test to include changes from 0.6.
Kevin Day [Tue, 11 Jun 2024 23:34:02 +0000 (18:34 -0500)]
Update: f_iki unit test to include changes from 0.6.

The 0.6 branch has added support for grave.
The unit tests were then updated.
This forward ports those unit test changes.

5 months agoUpdate: Specifications to use 'grave' as the common term for 'backtick'.
Kevin Day [Tue, 11 Jun 2024 23:16:26 +0000 (18:16 -0500)]
Update: Specifications to use 'grave' as the common term for 'backtick'.

5 months agoBugfix: The fl_directory_create() needs to also handle F_file_found_not.
Kevin Day [Tue, 11 Jun 2024 00:12:18 +0000 (19:12 -0500)]
Bugfix: The fl_directory_create() needs to also handle F_file_found_not.

Creating an entire directory tree is not working as expected when creating non-existent directories that are two levels or greater deep.
For example take "a/b/c", if "a" exists but neither "a/b" nor "a/b/c" then the create fails.
For example take "a/b", if "a exists but not "a/b" then the create succeeds (or appears to because I never noticed the bug before).

The ENOENT (aka: F_file_found_not) is sometimes returned rather than ENOTDIR (aka: F_false) from f_directory_exists().
Process the ENOENT F_file_found_not.

I noticed some problems in the logic of the fl_directory_create() function as well.
The memcpy() needs to start from the same offset as the source copy offset.
Otherwise, the copy is overwriting the string.
Make sure to place the NULL at the "at_path" rather at "at_path - at_tree".

The initial assignment of "tree.used" is not necessary.

5 months agoUpdate: Add all of the fl_print_format() replacement sequences as a static string.
Kevin Day [Mon, 10 Jun 2024 00:00:24 +0000 (19:00 -0500)]
Update: Add all of the fl_print_format() replacement sequences as a static string.

I probably should create a single and double context for every sequence as well.
That is rather time consuming so I will do this some time in the future.

5 months agoUpdate: The f_capability styles and use constant pointers in more places.
Kevin Day [Sat, 8 Jun 2024 04:07:15 +0000 (23:07 -0500)]
Update: The f_capability styles and use constant pointers in more places.

5 months agoFeature: Add "Magic Bit" to the FSS-000F (Simple Packet) format.
Kevin Day [Thu, 6 Jun 2024 01:11:37 +0000 (20:11 -0500)]
Feature: Add "Magic Bit" to the FSS-000F (Simple Packet) format.

Make the FSS-000F (Simple Packet) format more generalized and flexible by allowing other payload formats than only formally supporting FSS-000E (Payload).

This adds a new optional "Magic Block" that is designated via the "Magic Bit", which is the third bit from the left.

This should make it easy to store the Simple Packet as a local file.
This should make it easier for routing to optimize processing of the packet by quickly identifying the packet.

The "Control Block" and the "Size Block" have static sizes and positions, which should make it easy to identify the "Magic Block".
The third bit should be checked and then the "Magic Block" should be checked when trying to quickly identify the packet type via the "Magic Block".

6 months agoCleanup: Remove ++first and ++last parameters that was overlooked.
Kevin Day [Sun, 2 Jun 2024 20:42:47 +0000 (15:42 -0500)]
Cleanup: Remove ++first and ++last parameters that was overlooked.

The man pages are now updated to remove these.
The control program will eventually be in its own project but for now just update it.

6 months agoUpdate: Add F_instance status codes.
Kevin Day [Sun, 2 Jun 2024 17:42:06 +0000 (12:42 -0500)]
Update: Add F_instance status codes.

I am now using "instance" in parallel with "process".
Provide an "instance" codes in a similar manner.

6 months agoCleanup: Add newline before NULL comment and add dash to de-allocate.
Kevin Day [Sun, 2 Jun 2024 15:44:32 +0000 (10:44 -0500)]
Cleanup: Add newline before NULL comment and add dash to de-allocate.

The "Must not be NULL." documentation comments are not consistently structured.
I don't remember which decision I made and so now I am just forcibly setting the same structure with a new line before it.

Improve grammar by adding a dash to de-allocate.

6 months agoBugfix: f_date_simple_t_initialize is using wrong initializer.
Kevin Day [Sun, 2 Jun 2024 15:43:53 +0000 (10:43 -0500)]
Bugfix: f_date_simple_t_initialize is using wrong initializer.

6 months agoUpdate: Remove the ++first and ++last parameters and relating logic.
Kevin Day [Thu, 23 May 2024 03:23:23 +0000 (22:23 -0500)]
Update: Remove the ++first and ++last parameters and relating logic.

I have used this for a while and have decided these are not worth the effort.
The addition is very nice but the additional code and logic is just extra maintenance and complexity for very little gain.

6 months agoCleanup: Fix grammar in comment.
Kevin Day [Thu, 23 May 2024 01:36:41 +0000 (20:36 -0500)]
Cleanup: Fix grammar in comment.

6 months agoCleanup: Warning in unit f_utf tests under GCC 14 regarding type.
Kevin Day [Wed, 22 May 2024 02:38:56 +0000 (21:38 -0500)]
Cleanup: Warning in unit f_utf tests under GCC 14 regarding type.

The string comparison of an integer based value is correct.
Add an explicit cast to make this intent clear and to silence the warnings.

6 months agoUpdate: Build files to have the correct build modes.
Kevin Day [Thu, 9 May 2024 01:06:49 +0000 (20:06 -0500)]
Update: Build files to have the correct build modes.

This adds missing build modes and makes sure the correct build modes for special builds (like the level builds) is correct.

7 months agoUpdate: Add "const" to the pointer in some signal functions.
Kevin Day [Sat, 27 Apr 2024 04:20:31 +0000 (23:20 -0500)]
Update: Add "const" to the pointer in some signal functions.

These are passed directly to the signal functions that do not have "const" qualifier.
This needs extensive testing.

7 months agoFeature: Add f_time_sleep_spec() for providing nanosleep().
Kevin Day [Fri, 26 Apr 2024 03:44:51 +0000 (22:44 -0500)]
Feature: Add f_time_sleep_spec() for providing nanosleep().

7 months agoCleanup: Add missing new line.
Kevin Day [Fri, 26 Apr 2024 02:59:07 +0000 (21:59 -0500)]
Cleanup: Add missing new line.

7 months agoUpdate: Add "const" to the pointer in numerous thread functions.
Kevin Day [Fri, 26 Apr 2024 02:57:36 +0000 (21:57 -0500)]
Update: Add "const" to the pointer in numerous thread functions.

These are past directly to the thread functions that do not have "const" qualifier.
This needs extensive testing.

Clean up related function comments.

7 months agoFeature: Add pid_t array types, adding appropriate unit tests.
Kevin Day [Sun, 21 Apr 2024 03:58:03 +0000 (22:58 -0500)]
Feature: Add pid_t array types, adding appropriate unit tests.

7 months agoUpdate: Add additional time types, refactor f_time_spec and similar, and rebuild...
Kevin Day [Sat, 20 Apr 2024 04:29:22 +0000 (23:29 -0500)]
Update: Add additional time types, refactor f_time_spec and similar, and rebuild stand alone build configs.

The f_time_spec_t is not the same as "struct timespec".
Avoid confusion by renaming it to f_time_simple_t.
rename f_date_spec_t to f_date_simple_t for the same reason.

Add additional types and now that f_time_spec_t is available, create f_time_spec_t as a typedef of "struct timespec".

Update the stand alone build scripts with all of these changes and some changes from previous commits.

7 months agoCleanup: Build settings files, use alphabetic ordering in more places.
Kevin Day [Fri, 19 Apr 2024 04:08:43 +0000 (23:08 -0500)]
Cleanup: Build settings files, use alphabetic ordering in more places.

7 months agoFeature: Add additional f_time functions and types that wrap C time functions.
Kevin Day [Fri, 19 Apr 2024 03:39:18 +0000 (22:39 -0500)]
Feature: Add additional f_time functions and types that wrap C time functions.

This also adds the appropriate basic unit tests.

7 months agoCleanup: Fix documentation comments wording in symbol parameter.
Kevin Day [Fri, 19 Apr 2024 03:37:08 +0000 (22:37 -0500)]
Cleanup: Fix documentation comments wording in symbol parameter.

7 months agoCleanup: Remove stale files not used anymore.
Kevin Day [Tue, 16 Apr 2024 02:04:11 +0000 (21:04 -0500)]
Cleanup: Remove stale files not used anymore.

7 months agoUpdate: Add experimental ctags generation and ctags file.
Kevin Day [Mon, 15 Apr 2024 04:02:08 +0000 (23:02 -0500)]
Update: Add experimental ctags generation and ctags file.

This is used by projects like geany.
Unfortunately, the code is terrible and the documentation is like rotten eggs.
They seem to somehow put hard-coded paths in the ctag files which makes absolute no sense.
Then, the geany project provides completely different ctag files that do not have this path nonsense.
The geany documentation does not relate to their actual ctag files and the ones provided by their example.
The Universal-ctags documentation, while having a lot of words, is misleading, awkward, and doesn't even describe how to get rid of these paths nor how to omit the paths.
Following the parts that does seem to read as if it means removing the path does absolutely not this.
The geany does not even import this file properly, despite the command coming directly from geany's documentation.

Using geany to generate this produces better results but also includes a lot of other junk that is unwanted.
It also includes the file paths.

Having the file paths makes these generated ctag files completely useless as it requires some other person to have the exact same absolute file path structure.
For now, attempt to strip out the absolute path using a sed command.

7 months agoUpdate: The build scripts copyright to 2024.
Kevin Day [Mon, 15 Apr 2024 01:45:07 +0000 (20:45 -0500)]
Update: The build scripts copyright to 2024.

I overlooked these files when I updated the copyright year to 2024.

7 months agoUpdate: Follow up changes for adding sockaddr_storage use in the socket type.
Kevin Day [Sun, 14 Apr 2024 13:57:28 +0000 (08:57 -0500)]
Update: Follow up changes for adding sockaddr_storage use in the socket type.

The commit 6fa1ec1f961ba4bf134d6db4e6ee70f56756c5ab left out a few files.
I also forgot to add the "_e" so that I have "f_socket_address_form_storage_e".

Add use of this in the unit test.
Remove seemingly duplicate unit tests.
Maybe I was trying to do a case of "bind()" returning "false", but the code does not do that in the duplicate unit tests.
Remove the duplicate unit tests as I can always add the "false" case in the future if I so choose to.

7 months agoUpdate: Add sockaddr_storage use in the socket type.
Kevin Day [Sat, 13 Apr 2024 21:28:58 +0000 (16:28 -0500)]
Update: Add sockaddr_storage use in the socket type.

Also fix the alphabetic order of "generic" in the documentation comments.

7 months agoUpdate: Have fll_program_print_copyright() use year and author as a parameter.
Kevin Day [Wed, 10 Apr 2024 02:48:15 +0000 (21:48 -0500)]
Update: Have fll_program_print_copyright() use year and author as a parameter.

The year and author may be more subject to change.
Relocate this into a global static string and provide this is a parameter to fll_program_print_copyright().
The fll_program_print_copyright() is only intended for FLL projects.

Additional programs that I write, like controller, may also depend on this.
These may be operated on at a different time and thus may require the year or author to be updated.

Any more changes than this and it is probably a better idea to just implement ones own copyright print function.

7 months agoCleanup: The OSLv1 license usage, fixing license reference.
Kevin Day [Wed, 10 Apr 2024 02:29:03 +0000 (21:29 -0500)]
Cleanup: The OSLv1 license usage, fixing license reference.

The license should read "open-standard-license-1.0-or-later" rather than "open-standard-license-1.0".
The license file itself is already labelled this.
These files simply were not correctly updated.

7 months agoUpdate: Add support for disable pthread mutex attr prioceiling for systems that do...
Kevin Day [Mon, 8 Apr 2024 02:35:52 +0000 (21:35 -0500)]
Update: Add support for disable pthread mutex attr prioceiling for systems that do not support it.

This is a follow up to the commit 66f43e90823f75ba7261de2abaf0e809b47a2c65.

7 months agoUpdate: Add support for disable pthread mutex prioceiling for systems that do not...
Kevin Day [Mon, 8 Apr 2024 01:53:03 +0000 (20:53 -0500)]
Update: Add support for disable pthread mutex prioceiling for systems that do not support it.

The pthread mutex prioceiling functions are not supported on PostmarketOS for Pinephone.
The PostmarketOS for Pinephone is an A64 Arm system based on the Alpine Linux distribution.

7 months agoUpdate: Remove -D_FORTIFY_SOURCE because several systems automatically add this and...
Kevin Day [Sun, 7 Apr 2024 15:43:11 +0000 (10:43 -0500)]
Update: Remove -D_FORTIFY_SOURCE because several systems automatically add this and the screen is spammed with warnings.

8 months agoUpdate: Use bitwise operation check in f_thread_cancel_state_set().
Kevin Day [Thu, 4 Apr 2024 02:38:32 +0000 (21:38 -0500)]
Update: Use bitwise operation check in f_thread_cancel_state_set().

Also update the comment to make the context of "this" to be more clear.

8 months agoCleanup: Incorrect example in IKI specification.
Kevin Day [Fri, 29 Mar 2024 21:44:04 +0000 (16:44 -0500)]
Cleanup: Incorrect example in IKI specification.

The example in the iki.txt specification has several errors.
Of particular note is the first code is incorrectly escaped and the terminating single quote discludes the example block.
The Objects and Contents example results is entirely incorrect.

There is no change to the specification rules itself and I do not technically need to change the version.
However, given how long it has been incorrect I have decided to up the version date to make the correct file easier to identify.

8 months agoUpdate: The version date in the documents documentation for Featureless Make.
Kevin Day [Fri, 29 Mar 2024 04:19:47 +0000 (23:19 -0500)]
Update: The version date in the documents documentation for Featureless Make.

8 months agoBugfix: Problematic handling of object files.
Kevin Day [Fri, 29 Mar 2024 03:50:21 +0000 (22:50 -0500)]
Bugfix: Problematic handling of object files.

The object files are not being compiled correctly when performing a static build.
There may now be multiple object sources files which are now built individually.

The build object sources must be built without source code files.
The logic is relocated into a fake_build_library_static_object() function to build the object files.
These files are then included when static linking.
A new build stage is also added to accommodate this.

Building the objects should not include libraries linked.
Remove the logic that auto-adds the library linkage when building objects.

Break out the "path_sources" Object into multiple sub-parts:
  - "path_sources_headers".
  - "path_sources_library".
  - "path_sources_object".
  - "path_sources_program".
  - "path_sources_script".

Update the documentation and specification files accordingly.

Add missing version dates to the specifications.

Update the bootstrap.sh script with these changes.
Fix incidental problems discovered in the bootstrap.sh script:
  - Remove already compiled warning as it is not needed and is not exhaustive.
  - Improve handling of directory detection and simplify the relating code.
  - The built setting files are now being properly checked (a regression caused them to not be properly checked).

8 months agoUpdate: Copyright year in man pages ad files.
Kevin Day [Fri, 29 Mar 2024 03:49:35 +0000 (22:49 -0500)]
Update: Copyright year in man pages ad files.

These were overlooked and have now been corrected.

8 months agoBugfix: Fake build settings specification inconsistently defines path_sources_object...
Kevin Day [Sat, 23 Mar 2024 03:53:36 +0000 (22:53 -0500)]
Bugfix: Fake build settings specification inconsistently defines path_sources_object and fix consistency problem.

The "path_sources_object" setting designates that this can handle multiple files but the implementation fails to handle this.
Rewrite the implementation to handle multiple object files by creating each object file separately.

The specification also designates that the "build_name" is used, which makes no sense for multiple object files.
Remove this such that the object files are created based on the original source file name (without the extension).

Clarify the documentation, updating the specification.

Break out the individual settings that are related that should be updated for consistency.
These are path_sources_headers, path_sources_library, path_sources_program, and path_sources_script.

8 months agoCleanup: Simple mistakes in the Example program sources.
Kevin Day [Thu, 21 Mar 2024 04:33:27 +0000 (23:33 -0500)]
Cleanup: Simple mistakes in the Example program sources.

Fix the use of "Firewall" which should instead be "Example".
Remove extra space.

8 months agoProgress: Controller program migration from 0.6 to 0.7.
Kevin Day [Sat, 16 Mar 2024 04:10:49 +0000 (23:10 -0500)]
Progress: Controller program migration from 0.6 to 0.7.

This gets most things compiling.
This should not work.
The changes made are just to reduce the compilation errors and to get the code into a near good enough state to start really migrating.

I am going to rewrite this side-by-side to this code now that I have seen what I need to do.
I may likely use this as a starting point for porting this over into its own separate project.
That project has already been created but is pretty much empty.
This will be long and rather painful migration process but it will be worth it.

8 months agoProgress: Controller program migration from 0.6 to 0.7.
Kevin Day [Fri, 15 Mar 2024 02:55:48 +0000 (21:55 -0500)]
Progress: Controller program migration from 0.6 to 0.7.

8 months agoRefactor: The map "name" into "key" for the f_utf project.
Kevin Day [Fri, 15 Mar 2024 02:40:45 +0000 (21:40 -0500)]
Refactor: The map "name" into "key" for the f_utf project.

The commit 3fbd696f05704214ad4b6d508ae201f10c4adc5d failed to include the f_utf project.

8 months agoProgress: Controller program migration from 0.6 to 0.7.
Kevin Day [Thu, 14 Mar 2024 03:26:28 +0000 (22:26 -0500)]
Progress: Controller program migration from 0.6 to 0.7.

There are way too many changes needed.
Start doing some initial structure updates and directly relating code.
Move a lot of the structures to common.h, temporarily.
This will eventually be moved out.

8 months agoUpdate: FSS-000E specification, adding "salt" and "time" as suggested headers.
Kevin Day [Wed, 13 Mar 2024 02:09:36 +0000 (21:09 -0500)]
Update: FSS-000E specification, adding "salt" and "time" as suggested headers.

I intend to keep the recommended and now suggested headers to a bare minimum.
I have decided that "salt" and "time" should be common enough and important enough to add to this small list.

8 months agoFeature: add f_random_array_shuffle() function to f_random().
Kevin Day [Tue, 12 Mar 2024 00:20:12 +0000 (19:20 -0500)]
Feature: add f_random_array_shuffle() function to f_random().

Provide an array shuffle function using standard random function calls.

This is ideal for use in randomizing packet header order for increase network packet security.

Add appropriate unit tests.

8 months agoCleaup: Inline comment regarding cast to uint8_t in f_memory functions.
Kevin Day [Mon, 11 Mar 2024 05:12:42 +0000 (00:12 -0500)]
Cleaup: Inline comment regarding cast to uint8_t in f_memory functions.

8 months agoUpdate: Wrap up unit tests for fl_fss_payload_header_map() and fix observed problems.
Kevin Day [Mon, 11 Mar 2024 00:00:41 +0000 (19:00 -0500)]
Update: Wrap up unit tests for fl_fss_payload_header_map() and fix observed problems.

The unit tests for fl_fss_payload_header_map() are lacking significant combinations and permutations.
This, however, is being considered good enough for a first pass.
More complex and broader cases will hopefully be handled in some likely relatively distant future.

The null_quantity flag does not make any sense as the variable "total" can be 0 and that should not logically be considered NULL.
Make sure strings are NULL terminated for the cases where the code adds an extra space and then unassigned the used length of that space.
Handle cases where range.start > range.stop, aka NULL range.
Various other fixes.

8 months agoProgress: Add more unit tests for fl_fss_payload_header_map() and fix observed problems.
Kevin Day [Sat, 9 Mar 2024 06:47:12 +0000 (00:47 -0600)]
Progress: Add more unit tests for fl_fss_payload_header_map() and fix observed problems.

There needs to be f_abstruse_t and f_abstruse_map_t delete and destroy methods.
Update the builld disable headers (which shows that I haven't updated that in a while).

The private_f_abstruses_delete_switch() is not correctly deallocating data.

The f_fss_payload_header_state_t and f_fss_payload_header_internal_t should instead be fl_fss_payload_header_state_t and fl_fss_payload_header_internal_t.

8 months agoProgress: Add dynamic, dynamics, and map unit tests for fl_fss_payload_header_map...
Kevin Day [Wed, 6 Mar 2024 03:57:35 +0000 (21:57 -0600)]
Progress: Add dynamic, dynamics, and map unit tests for fl_fss_payload_header_map() and fix several problems.

Switch character width loops with memcpy().

Add cases where trailing string should be removed.

Make sure private_fl_fss_basic_write() is only called when the cache is not empty.
Make sue the internal.range is properly set when calling private_fl_fss_basic_write().

Ensure that when any quote is used that they get quoted where appropriate.

Ensure that when key has used of 0, the start range is greater than the stop range to designate a NULL range.

Add dynamic, dynamics, and map unit tests.

Make the tests test the string first rather than the used so that when there is an error it is easier to debug.

Remove unused/stale commented out code.

Switch fss_write flag from 16-bit into 32-bit.
This is necessary because more bits than 16 are in use.

9 months agoProgress: Add strings unit tests for fl_fss_payload_header_map().
Kevin Day [Sun, 3 Mar 2024 05:48:34 +0000 (23:48 -0600)]
Progress: Add strings unit tests for fl_fss_payload_header_map().

9 months agoBugfix: Only add extended next space when there is a next number.
Kevin Day [Sun, 3 Mar 2024 05:47:30 +0000 (23:47 -0600)]
Bugfix: Only add extended next space when there is a next number.

9 months agoBugfix: FSS Extended Write is incorrectly adding a delimit slash for the first quote...
Kevin Day [Sun, 3 Mar 2024 05:13:02 +0000 (23:13 -0600)]
Bugfix: FSS Extended Write is incorrectly adding a delimit slash for the first quote character.

If the first character in the string is a quote, then a delimit slash only needs to be added when there is a space after the quote.
If there is a graph character after the quote, then the delimit slash is not needed.

9 months agoProgress: Further simplify tests, merging the number and the string helper tests.
Kevin Day [Sun, 3 Mar 2024 01:31:50 +0000 (19:31 -0600)]
Progress: Further simplify tests, merging the number and the string helper tests.

The number helper can also be used as-is for the string helper and so rename the file and functions to a "payload" helper.
I originally had "at" in the file names because I was passing an index.
That index parameter got removed but I forgot to remove the "at" from the name of the functions.
The "at" is now removed.
I began adding the strings tests but I ran out of time to do further work on them.

9 months agoProgress: Add string unit tests for fl_fss_payload_header_map(), and reduce redundanc...
Kevin Day [Sat, 2 Mar 2024 17:36:45 +0000 (11:36 -0600)]
Progress: Add string unit tests for fl_fss_payload_header_map(), and reduce redundancy in numbers.

This adds unit tests for the string abstruse type.

The numbers tests are all almost identical.
Abstract their design out into a helper function and a callback.

The string tests will likely need similar helper functions as the number tests.

9 months agoBugfix: If the first character has a width greater than one then F_utf_fragment is...
Kevin Day [Fri, 1 Mar 2024 05:01:24 +0000 (23:01 -0600)]
Bugfix: If the first character has a width greater than one then F_utf_fragment is incorrectly returned when using quotes.

A F_utf_fragment is incorrectly when writing a string that would use quotes and that first character has a width greater than one.

The code is incrementing the string by 1.
This should instead be incrementing by the character width.
The loop itself should increment by the character width as well.

This bug has been exposed by unit tests.

9 months agoProgress: Add join unit tests for fl_fss_payload_header_map(), focusing on number...
Kevin Day [Fri, 1 Mar 2024 03:45:37 +0000 (21:45 -0600)]
Progress: Add join unit tests for fl_fss_payload_header_map(), focusing on number types.

9 months agoCleanup: Rename existing fl_fss abstruse tests to use "join" and "split" rather than...
Kevin Day [Fri, 1 Mar 2024 03:00:38 +0000 (21:00 -0600)]
Cleanup: Rename existing fl_fss abstruse tests to use "join" and "split" rather than "combined".

I forgot all about the function and files ending in "combined".
I am about to start writing tests for the "join" flag and noticed this discrepancy.
Rename everything to prevent any confusion.

9 months agoProgress: Add some unit tests for fl_fss_payload_header_map(), focusing on number...
Kevin Day [Wed, 28 Feb 2024 03:46:41 +0000 (21:46 -0600)]
Progress: Add some unit tests for fl_fss_payload_header_map(), focusing on number types.

This does not add tests for the join digits flag.
Such tests will be added at a later time.

9 months agoCleanup: Fix spacing.
Kevin Day [Wed, 28 Feb 2024 03:46:23 +0000 (21:46 -0600)]
Cleanup: Fix spacing.

9 months agoCleanup: The OSLv1 license, fixing grammar and clarifying intent.
Kevin Day [Wed, 28 Feb 2024 02:25:36 +0000 (20:25 -0600)]
Cleanup: The OSLv1 license, fixing grammar and clarifying intent.

This does not change the license other than fixing grammar and making the intent more consistent and clear.

This also adds a day to the license data that represents that last time this license has been modified.
The version number is changed only when there is a functional or substantial change to the license.

I have noticed that in some places individuals decide the "includes" is a restrictive word.
It is not, especially given that it is literally an inclusive word.
This changes the wording from "includes" or "including" to something like "including but not limited to" avoid any of that non-sense.
The proper application of the English language would result in the "but not limited to" being redundant and pointless.
This specific language is added just in case somebody does not understand the English language when it comes to the word "including".

Try to be consistent and use "lawful" instead of "legal" (except in cases where both are mentioned).

Generally, referring to "lawful" here also includes "legal".
The "lawful" is chosen to represent actual law rather than the more questionable "legal"  terminology.

The wording of "access to use, implement, etc.." can be misinterpreted such that the "access to" is applied to implement (and etc..) such that it becomes "access to implement".
The actual intent and design is not simply around "access to implement".
Instead, it is around "to implement", period.
Clarify this by splitting out "access to use" into "to access", "to use", etc...

9 months agoRefactor: The map "name" into "key".
Kevin Day [Wed, 28 Feb 2024 02:11:56 +0000 (20:11 -0600)]
Refactor: The map "name" into "key".

I find myself constantly typing "key" rather than "name".
I like the idea of using "name" as it is the "name" of the "key".
However, I have decided to refactor this from "name" into "key" given my natural tendency to type "key" when thinking about a map.

9 months agoProgress: Begin next development pass on fl_fss_payload_header_map().
Kevin Day [Tue, 27 Feb 2024 04:45:17 +0000 (22:45 -0600)]
Progress: Begin next development pass on fl_fss_payload_header_map().

Preserve the error status when exiting by checking and returning at the end of the function (before setting F_okay).

Fix the logic regarding the number macros when it comes to expanding an array of numbers into multiple destinations.
The object key must be set.
The macro needs to be accepting the destinations array rather than the specific destination string.
The case where f_fss_payload_header_map_flag_join_digits_e is set is not yet tested or reviewed.

9 months agoCleanup: Minor changes to bootstrap-example.sh.
Kevin Day [Tue, 27 Feb 2024 03:24:50 +0000 (21:24 -0600)]
Cleanup: Minor changes to bootstrap-example.sh.

9 months agoUpdate: Add missing snippet from OSLv1 license.
Kevin Day [Mon, 26 Feb 2024 23:32:41 +0000 (17:32 -0600)]
Update: Add missing snippet from OSLv1 license.

This piece of the license appears to have been lost somehow and is now added back.

9 months agoBugfix: Incorrect mode when featureless make is building settings.
Kevin Day [Sun, 25 Feb 2024 17:47:36 +0000 (11:47 -0600)]
Bugfix: Incorrect mode when featureless make is building settings.

This is a forward port of commit e70ac676f1907f17bcf24e428008183b8ccb96f5 from the 0.6 branch.

In the 0.6, this problem happens only on printing.
In this branch, the 0.7 development branch, this is used in different parts of the code and may have unintended functional consequences.

Oddly, this problem is not observed for the same files that the problem can be seen when using the 0.6 branch built programs.

I have opted to fix the problem rather than to investigate further.
The logic is clearly flawed and the fix is identical from the 0.6 branch.

9 months agoUpdate: Disable -fstrict-flex-arrays=3 flag because it doesn't work on GCC 11.
Kevin Day [Sun, 25 Feb 2024 16:29:52 +0000 (10:29 -0600)]
Update: Disable -fstrict-flex-arrays=3 flag because it doesn't work on GCC 11.

I just did tests on GCC 11, which is not too old.
The -fstrict-flex-arrays flag does not work there.
For now, just disable the flag by setting it to the non-existent gcc_13 mode.
The mode can be added to the mode list and enabled if so desired.
I may make version specific modes available in the future (or not) but that will require some planning.
The fakefile should be designed to test the GCC version, but I would rather avoid such logic by design.
Let the distributor or the system administrator handle such decisions.

9 months agoUpdate: Make the Open Standard License 1.0 formal.
Kevin Day [Sat, 24 Feb 2024 23:42:26 +0000 (17:42 -0600)]
Update: Make the Open Standard License 1.0 formal.

I don't see any opportunities to get this reviewed and finalized and so I am formalizing it as-is.
I can always improve it if the opportunity arrives and increment the version number.

There are no changes to the license other than remove the "informal" and "draft" parts.

9 months agoSecurity: Conversion is not handling NULL case when base unit is an unsupported type.
Kevin Day [Sat, 24 Feb 2024 21:17:46 +0000 (15:17 -0600)]
Security: Conversion is not handling NULL case when base unit is an unsupported type.

9 months agoFeature: Add -a/--analyze to test.sh script.
Kevin Day [Sat, 24 Feb 2024 21:10:34 +0000 (15:10 -0600)]
Feature: Add -a/--analyze to test.sh script.

Adding the -a/--analyze parameter to the test.sh script should allow for easier testing with the analyze option.
The idea here is to make it easier to perform these checks and to improve the quality of the releases.

9 months agoCleanup: The fl_print_format_convert() documentation comments should have the status...
Kevin Day [Sat, 24 Feb 2024 05:36:05 +0000 (23:36 -0600)]
Cleanup: The fl_print_format_convert() documentation comments should have the status documentation under the status text.

The status documentation should not be in the "@return" section.
The documentation for the "status" parameter should be describing this (and now is).

9 months agoCleanup: Remove out of place documentation comment.
Kevin Day [Fri, 23 Feb 2024 06:04:49 +0000 (00:04 -0600)]
Cleanup: Remove out of place documentation comment.