Progress: Working on program related changes and fix version number.
Continuing work in regards to making program related changes.
I managed to miss another set of files that have version numbers.
I should probably write a script to consistently handle this in the future to avoid these kinds of simple mistakes.
Change the behavior of the color loaded to allow for more flexibility.
The previous design was a quickly put togethor hardcoded approach.
I want to get away from such practices.
Add missing dependency in f_color.
I am at a cross roads of flexibility and maintainability (as well as size).
The practice of always having and using a typedef allows for great flexibility (allows for easy hacking/modifications).
As per my practice, I should have explicit functions for allocating, deallocating, and similar functions.
These waste space, consume time writing, and consume maintainance related time.
I want to increase the maintainability of the project given that my current goals are far reaching.
This means that I should switch to existing typedefs for any simple data type (except for special cases like strings and f_string_t).
I am starting this conversion with f_color, using the uintX_t types rathe than custom types like f_color_mode_t.
Start using enumerations over define macros.
Make the console parameter processing functions more flexible by returning the decision at the index rather than the converted decision value.
This allows for the caller to know which index is used.
The caller can do more work based on this without having to do more looping.
Add line_first_no and line_last_no standard parameters.
These add more flexibility for special case scripting.
Many core printing functions now do not print the leading new line.
All programs must be updated accordingly.
Add and document new console parameter initialization macros.
Start a new style practice with the console arguments, based around these new macros.
The f_file_stream_flush() should not need f_file_t parameter to be a pointer.
The memory functions now return F_data_not in more situations that make sense.
When size is 0 for allocation functions, this should be a paameter error when doing parameter checking.
The pointer should be allowed to be NULL when allocating.
Some fll_program functions are supposed to be using private functions due to internal usage.
The standard help options now have a standard printing function.
The fll_program_parameter_process() is removed.
Instead, call f_console_parameter_process directly.
The color context handling is moved from the now deleted fll_program_parameter_process() into fll_program_parameter_process_context().
The fll_program_data_t now accepts a pointer to the environment variable array for representing the environment variables are start.
The fll_program_data_t now uses flags rather than a boolean to represent program pipe (allowing for more than just input pipe, in theory).
Add new status codes:
- F_help
- F_help_not
Major work is completed into making the utf8 program more flexible.
- Moved all parameter processing into utf8_setting_load() and provide utf8_setting_t.
- This allows for callers to manually configure the settings without performing parameter processing if so desired.
- Re-design printing logic to handle the line_first_no and line_last_no parameters.
- The status used by the utf8_main() is now in utf8_setting_t.
Related changes have been lazily applied to all other programs.
Once I am finished with utf8 (which I might already be), then I will beging moving to each next program.