]> Kevux Git Server - fll/commit
Feature: Add f_utf_is_print_not() and fix f_utf_is_zero_width(). development
authorKevin Day <Kevin@kevux.org>
Sun, 1 Nov 2026 01:26:53 +0000 (20:26 -0500)
committerKevin Day <Kevin@kevux.org>
Sun, 1 Nov 2026 01:29:19 +0000 (20:29 -0500)
commit71719fab842a21399e63b7180ec5c1f81bc677af
tree1afe20e61be78dac1a5b2ca7ce07ddb862226aa8
parent32f4b455bae17aba02e47fed875b26b1fe9a2ebc
Feature: Add f_utf_is_print_not() and fix f_utf_is_zero_width().

It turns out that I am mis-using zero-width terminology.
The existing `f_utf_is_zero_width()` actually operates as a "no print" rather than a zero-width.

Solve this by renaming the `f_utf_is_zero_width()` to `f_utf_is_print_not()`.
Then provide a proper `f_utf_is_zero_width()` that operates how zero-width is supposed to be.
This brings the code into compliance.

Add additional types of checks to properly check the leading combining/placeholder.
Once again the editors arbitrarily added spaces in from of combining and joiners despite when I want to literally add a combining and joiner without a space.
Use `sed` and `utf8` to fix the editor caused problem:

```sh
sed -i -e "s|^ ́|$(utf8 -cB U+0301)|g" objects/*-combining_read.txt strings/*-combining_read.txt
```

Update the **Byte Dump** program to use `f_utf_is_print_not()`.
99 files changed:
build/level_0/settings
build/monolithic/settings
build/stand_alone/byte_dump.config.h
build/stand_alone/byte_dump.settings
build/stand_alone/example.config.h
build/stand_alone/example.settings
build/stand_alone/fake.config.h
build/stand_alone/fake.settings
build/stand_alone/fss_identify.config.h
build/stand_alone/fss_identify.settings
build/stand_alone/fss_read.config.fss_basic.h
build/stand_alone/fss_read.config.fss_basic_list.h
build/stand_alone/fss_read.config.fss_embedded_list.h
build/stand_alone/fss_read.config.fss_extended.h
build/stand_alone/fss_read.config.fss_extended_list.h
build/stand_alone/fss_read.config.fss_payload.h
build/stand_alone/fss_read.config.h
build/stand_alone/fss_read.settings
build/stand_alone/fss_read.settings.fss_basic
build/stand_alone/fss_read.settings.fss_basic_list
build/stand_alone/fss_read.settings.fss_embedded_list
build/stand_alone/fss_read.settings.fss_extended
build/stand_alone/fss_read.settings.fss_extended_list
build/stand_alone/fss_read.settings.fss_payload
build/stand_alone/fss_write.config.fss_basic.h
build/stand_alone/fss_write.config.fss_basic_list.h
build/stand_alone/fss_write.config.fss_embedded_list.h
build/stand_alone/fss_write.config.fss_extended.h
build/stand_alone/fss_write.config.fss_extended_list.h
build/stand_alone/fss_write.config.fss_payload.h
build/stand_alone/fss_write.config.h
build/stand_alone/fss_write.settings
build/stand_alone/fss_write.settings.fss_basic
build/stand_alone/fss_write.settings.fss_basic_list
build/stand_alone/fss_write.settings.fss_embedded_list
build/stand_alone/fss_write.settings.fss_extended
build/stand_alone/fss_write.settings.fss_extended_list
build/stand_alone/fss_write.settings.fss_payload
build/stand_alone/iki_read.config.eki.h
build/stand_alone/iki_read.config.h
build/stand_alone/iki_read.settings
build/stand_alone/iki_read.settings.eki
build/stand_alone/iki_write.config.eki.h
build/stand_alone/iki_write.config.h
build/stand_alone/iki_write.settings
build/stand_alone/iki_write.settings.eki
build/stand_alone/status_code.config.fss.h
build/stand_alone/status_code.config.h
build/stand_alone/status_code.settings
build/stand_alone/status_code.settings.fss
build/stand_alone/utf8.config.h
build/stand_alone/utf8.settings
level_0/f_fss/c/fss.c
level_0/f_fss/c/fss.h
level_0/f_fss/tests/unit/c/test-fss-is_space.c
level_0/f_fss/tests/unit/c/test-fss-is_zero_width.c
level_0/f_utf/c/private-utf.c
level_0/f_utf/c/private-utf.h
level_0/f_utf/c/private-utf_combining.c
level_0/f_utf/c/private-utf_combining.h
level_0/f_utf/c/private-utf_control.c
level_0/f_utf/c/private-utf_control.h
level_0/f_utf/c/private-utf_joiner.c
level_0/f_utf/c/private-utf_joiner.h
level_0/f_utf/c/private-utf_print_not.c [new file with mode: 0644]
level_0/f_utf/c/private-utf_print_not.h [new file with mode: 0644]
level_0/f_utf/c/private-utf_zero_width.c
level_0/f_utf/c/private-utf_zero_width.h
level_0/f_utf/c/utf/is.c
level_0/f_utf/c/utf/is.h
level_0/f_utf/c/utf/is_character.c
level_0/f_utf/c/utf/is_character.h
level_0/f_utf/data/build/settings
level_0/f_utf/data/build/settings-mocks
level_0/f_utf/data/build/settings-tests
level_0/f_utf/data/tests/bytesequences/print_not-all.txt [new file with mode: 0644]
level_0/f_utf/data/tests/bytesequences/zero_width-all.txt
level_0/f_utf/data/tests/codepoints/print_not-all.txt [new file with mode: 0644]
level_0/f_utf/data/tests/codepoints/zero_width-all.txt
level_0/f_utf/tests/unit/c/data-utf.c
level_0/f_utf/tests/unit/c/data-utf.h
level_0/f_utf/tests/unit/c/test-utf-character_is_print_not.c [new file with mode: 0644]
level_0/f_utf/tests/unit/c/test-utf-character_is_print_not.h [new file with mode: 0644]
level_0/f_utf/tests/unit/c/test-utf-is_print_not.c [new file with mode: 0644]
level_0/f_utf/tests/unit/c/test-utf-is_print_not.h [new file with mode: 0644]
level_0/f_utf/tests/unit/c/test-utf.c
level_0/f_utf/tests/unit/c/test-utf.h
level_1/fl_fss/data/tests/matches/basic-combining_read.txt
level_1/fl_fss/data/tests/matches/extended-combining_read.txt
level_1/fl_fss/data/tests/objects/basic-combining_read.txt
level_1/fl_fss/data/tests/objects/extended-combining_read.txt
level_1/fl_fss/data/tests/strings/basic-combining_read.txt
level_1/fl_fss/data/tests/strings/extended-combining_read.txt
level_1/fl_fss/tests/unit/c/test-fss-basic_content_read.c
level_1/fl_fss/tests/unit/c/test-fss-basic_list_content_read.c
level_1/fl_fss/tests/unit/c/test-fss-basic_object_read.c
level_1/fl_fss/tests/unit/c/test-fss-extended_content_read.c
level_1/fl_fss/tests/unit/c/test-fss-extended_object_read.c
level_3/byte_dump/c/main/print/data.c