]> Kevux Git Server - fll/commit
Progress: Major UTF-8 changes and optimization, begin updating byte_dump and utf8...
authorKevin Day <thekevinday@gmail.com>
Sat, 20 Nov 2021 03:26:18 +0000 (21:26 -0600)
committerKevin Day <thekevinday@gmail.com>
Sat, 20 Nov 2021 03:42:38 +0000 (21:42 -0600)
commit240aceb2d24db1d4a59b73a74107bd94deae2124
tree564bf787e9db7de898186e61c2e9c68df450be82
parent1f6b67f33d47dd0416564fdad5cffb912f1b8799
Progress: Major UTF-8 changes and optimization, begin updating byte_dump and utf8, and miscellaneous changes.

A previous commit accidentally include the utf8 level 3 program while it was being heavily developed.
As it is already committed, commit the latest changes.
The utf8 program is still not done.

While working on the utf program, I noticed that there are some things in the UTF-8 code that is not yet done or correct and is needed.
I also noticed that the byte_dump program needs to handle the narrow and wide widths to assure consistent column line ups.
Such a change requires new functionality in the UTF-8 code for processing the widths.

These two significant needs resulted in me finally getting around to some of the UTF-8 cleanup that I have been needing to do.
- Get rid of the width parameter, and calculate the width as needed (bitwise is chip and allocated a variable and then passing it along parameters is not as cheap).
- Swap some of the conditions to avoid using "!", saving a single operation though structural changes.
- Break out the utf string functions into its own utf_string.c, utf_string.h, private-utf_string.c, and private-utf_string.h.
- Numerous documentation comment cleanups and update (I think there is still more to do).
- Provide F_utf_fragment and F_utf_fragment_not for improved communication of UTF-8 fragments in error responses (rather than re-using F_utf).
- Provide f_utf_unicode_string_from() (I have not yet written a f_utf_unicode_string_to() but I plan to).
- Update endianess detection to use macros (I am include <endian.h>, but I may also provide custom macros to disable and explicitly designate endianess).

The UTF-8 is wide functions are drafted out, but there are a lot of wide character codes that I need to add.
This will be grunt work that will take a notable amount of time.
For now, just add a comment and I will get back to this.

The byte_dump program is depending on the is wide functions and so currently incompletely implements the narrow and wide support.

Try to use present tense in error message.
There are likely many more places, but this is a start.

Add F_first, F_first_not, F_last, F_last_not, F_next, F_next_not, F_previous, and F_previous_not for providing position return codes.

Fix a bug where width is being define by a uint8_t but the calculates are f_array_length_t.
How did this ever work before, by accident?
72 files changed:
build/level_0/settings
build/monolithic/settings
level_0/f_file/c/file.h
level_0/f_status/c/status.h
level_0/f_utf/c/private-utf.c
level_0/f_utf/c/private-utf.h
level_0/f_utf/c/private-utf_string.c [new file with mode: 0644]
level_0/f_utf/c/private-utf_string.h [new file with mode: 0644]
level_0/f_utf/c/utf-common.c
level_0/f_utf/c/utf-common.h
level_0/f_utf/c/utf.c
level_0/f_utf/c/utf.h
level_0/f_utf/c/utf_dynamic.c
level_0/f_utf/c/utf_dynamic.h
level_0/f_utf/c/utf_map.c
level_0/f_utf/c/utf_map.h
level_0/f_utf/c/utf_string.c [new file with mode: 0644]
level_0/f_utf/c/utf_string.h [new file with mode: 0644]
level_0/f_utf/c/utf_triple.c
level_0/f_utf/c/utf_triple.h
level_0/f_utf/data/build/settings
level_1/fl_conversion/c/conversion.c
level_1/fl_status/c/status.c
level_1/fl_status/c/status.h
level_1/fl_string/c/private-string.c
level_2/fll_status/c/status.c
level_3/byte_dump/c/byte_dump.c
level_3/byte_dump/c/byte_dump.h
level_3/byte_dump/data/build/settings
level_3/control/data/build/settings
level_3/controller/c/controller.c
level_3/controller/c/private-rule.c
level_3/fake/c/private-build.c
level_3/fake/c/private-print.c
level_3/fss_basic_list_read/data/build/settings
level_3/fss_basic_list_write/c/fss_basic_list_write.c
level_3/fss_basic_list_write/c/private-fss_basic_list_write.c
level_3/fss_basic_list_write/data/build/settings
level_3/fss_basic_read/data/build/settings
level_3/fss_basic_write/c/fss_basic_write.c
level_3/fss_basic_write/c/private-fss_basic_write.c
level_3/fss_basic_write/data/build/settings
level_3/fss_embedded_list_read/data/build/settings
level_3/fss_embedded_list_write/c/fss_embedded_list_write.c
level_3/fss_embedded_list_write/c/private-fss_embedded_list_write.c
level_3/fss_embedded_list_write/data/build/settings
level_3/fss_extended_list_read/data/build/settings
level_3/fss_extended_list_write/c/fss_extended_list_write.c
level_3/fss_extended_list_write/c/private-fss_extended_list_write.c
level_3/fss_extended_list_write/data/build/settings
level_3/fss_extended_read/data/build/settings
level_3/fss_extended_write/c/fss_extended_write.c
level_3/fss_extended_write/c/private-fss_extended_write.c
level_3/fss_extended_write/data/build/settings
level_3/fss_identify/data/build/settings
level_3/fss_status_code/data/build/settings
level_3/iki_write/c/iki_write.c
level_3/iki_write/data/build/settings
level_3/status_code/data/build/settings
level_3/utf8/c/private-common.c
level_3/utf8/c/private-common.h
level_3/utf8/c/private-print.c [new file with mode: 0644]
level_3/utf8/c/private-print.h [new file with mode: 0644]
level_3/utf8/c/private-utf8.c
level_3/utf8/c/private-utf8.h
level_3/utf8/c/private-utf8_binary.c [new file with mode: 0644]
level_3/utf8/c/private-utf8_binary.h [new file with mode: 0644]
level_3/utf8/c/private-utf8_codepoint.c [new file with mode: 0644]
level_3/utf8/c/private-utf8_codepoint.h [new file with mode: 0644]
level_3/utf8/c/utf8.c
level_3/utf8/c/utf8.h
level_3/utf8/data/build/settings