From: Kevin Day Date: Mon, 7 Sep 2026 16:40:56 +0000 (-0500) Subject: Merge branch '0.8' into 0.8-combining X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=b6fb605eb970405751beae2b35b29be621782a73;p=fll Merge branch '0.8' into 0.8-combining --- b6fb605eb970405751beae2b35b29be621782a73 diff --cc level_0/f_fss/tests/unit/c/test-fss-skip_past_combining_joiner.h index 1d2453baf,000000000..c4f7adfab mode 100644,000000..100644 --- a/level_0/f_fss/tests/unit/c/test-fss-skip_past_combining_joiner.h +++ b/level_0/f_fss/tests/unit/c/test-fss-skip_past_combining_joiner.h @@@ -1,34 -1,0 +1,34 @@@ +/** + * FLL - Level 0 + * + * Project: FSS + * API Version: 0.8 - * Licenses: lgpl-2.1-or-later ++ * Licenses: clarified_1_0_or_later-lgpl_2_1_or_later + * + * Test skip past combining joiner in the fss project. + */ +#ifndef _TEST__F_fss__skip_past_combining_joiner +#define _TEST__F_fss__skip_past_combining_joiner + +/** + * Test that the function correctly fails on invalid parameter. + * + * @see f_fss_skip_past_combining_joiner() + */ +extern void test__f_fss_skip_past_combining_joiner__parameter_checking(void **state); + +/** + * Test that the function returns F_data_not. + * + * @see f_fss_skip_past_combining_joiner() + */ +extern void test__f_fss_skip_past_combining_joiner__returns_data_not(void **state); + +/** + * Test that the function works. + * + * @see f_fss_skip_past_combining_joiner() + */ +extern void test__f_fss_skip_past_combining_joiner__works(void **state); + +#endif // _TEST__F_fss__skip_past_combining_joiner diff --cc level_0/f_utf/c/private-utf_joiner.h index c80f10c85,000000000..f945301d4 mode 100644,000000..100644 --- a/level_0/f_utf/c/private-utf_joiner.h +++ b/level_0/f_utf/c/private-utf_joiner.h @@@ -1,56 -1,0 +1,56 @@@ +/** + * FLL - Level 0 + * + * Project: UTF + * API Version: 0.8 - * Licenses: lgpl-2.1-or-later ++ * Licenses: clarified_1_0_or_later-lgpl_2_1_or_later + * + * Provides UTF-8 capabilities. + * + * These are provided for internal reduction in redundant code. + * These should not be exposed/used outside of this project. + */ +#ifndef _PRIVATE_F_utf_joiner_h +#define _PRIVATE_F_utf_joiner_h + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Private implementation of f_utf_character_is_joiner(). + * + * Intended to be shared to each of the different implementation variations. + * + * This expects the character width to be of at least size 2. + * + * @param sequence + * The byte sequence to validate as a character. + * + * @return + * F_true if a UTF-8 joiner character. + * F_false if not a UTF-8 joiner character. + * + * F_utf_fragment (with error bit) if character is a UTF-8 fragment. + * F_utf_not (with error bit) if unicode is an invalid Unicode character. + * + * @see f_utf_character_is_alphabetic() + * @see f_utf_character_is_alphabetic_digit() + * @see f_utf_character_is_alphabetic_numeric() + * @see f_utf_character_is_combining_joiner() + * @see f_utf_character_is_joiner() + * @see f_utf_is_alphabetic() + * @see f_utf_is_alphabetic_digit() + * @see f_utf_is_alphabetic_numeric() + * @see f_utf_is_combining_joiner() + * @see f_utf_is_joiner() + */ +#if !defined(_di_f_utf_character_is_alphabetic_) || !defined(_di_f_utf_character_is_alphabetic_digit_) || !defined(_di_f_utf_character_is_alphabetic_numeric_) || !defined(_di_f_utf_character_is_combining_joiner_) || !defined(_di_f_utf_character_is_joiner_) || !defined(_di_f_utf_is_alphabetic_) || !defined(_di_f_utf_is_alphabetic_digit_) || !defined(_di_f_utf_is_alphabetic_numeric_) || !defined(_di_f_utf_is_joiner_) + extern f_status_t private_f_utf_character_is_joiner(const f_utf_char_t sequence) F_attribute_visibility_internal_d; +#endif // !defined(_di_f_utf_character_is_alphabetic_) || !defined(_di_f_utf_character_is_alphabetic_digit_) || !defined(_di_f_utf_character_is_alphabetic_numeric_) || !defined(_di_f_utf_character_is_combining_joiner_) || !defined(_di_f_utf_character_is_joiner_) || !defined(_di_f_utf_is_alphabetic_) || !defined(_di_f_utf_is_alphabetic_digit_) || !defined(_di_f_utf_is_alphabetic_numeric_) || !defined(_di_f_utf_is_joiner_) + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _PRIVATE_F_utf_joiner_h diff --cc level_0/f_utf/tests/unit/c/test-utf-character_is_combining_joiner.h index d46168dc2,000000000..e18da7134 mode 100644,000000..100644 --- a/level_0/f_utf/tests/unit/c/test-utf-character_is_combining_joiner.h +++ b/level_0/f_utf/tests/unit/c/test-utf-character_is_combining_joiner.h @@@ -1,20 -1,0 +1,20 @@@ +/** + * FLL - Level 0 + * + * Project: UTF + * API Version: 0.8 - * Licenses: lgpl-2.1-or-later ++ * Licenses: clarified_1_0_or_later-lgpl_2_1_or_later + * + * Test the function in the utf project. + */ +#ifndef _TEST__F_utf_character_is_combining_joiner_h +#define _TEST__F_utf_character_is_combining_joiner_h + +/** + * Test that the function works. + * + * @see f_utf_character_is_combining_joiner() + */ +extern void test__f_utf_character_is_combining_joiner__works(void **state); + +#endif // _TEST__F_utf_character_is_combining_joiner_h diff --cc level_0/f_utf/tests/unit/c/test-utf-character_is_joiner.h index d6741266a,000000000..88dfebb78 mode 100644,000000..100644 --- a/level_0/f_utf/tests/unit/c/test-utf-character_is_joiner.h +++ b/level_0/f_utf/tests/unit/c/test-utf-character_is_joiner.h @@@ -1,20 -1,0 +1,20 @@@ +/** + * FLL - Level 0 + * + * Project: UTF + * API Version: 0.8 - * Licenses: lgpl-2.1-or-later ++ * Licenses: clarified_1_0_or_later-lgpl_2_1_or_later + * + * Test the function in the utf project. + */ +#ifndef _TEST__F_utf_character_is_joiner_h +#define _TEST__F_utf_character_is_joiner_h + +/** + * Test that the function works. + * + * @see f_utf_character_is_joiner() + */ +extern void test__f_utf_character_is_joiner__works(void **state); + +#endif // _TEST__F_utf_character_is_joiner_h diff --cc level_0/f_utf/tests/unit/c/test-utf-is_combining_joiner.h index c507f67b4,000000000..86fa4abda mode 100644,000000..100644 --- a/level_0/f_utf/tests/unit/c/test-utf-is_combining_joiner.h +++ b/level_0/f_utf/tests/unit/c/test-utf-is_combining_joiner.h @@@ -1,20 -1,0 +1,20 @@@ +/** + * FLL - Level 0 + * + * Project: UTF + * API Version: 0.8 - * Licenses: lgpl-2.1-or-later ++ * Licenses: clarified_1_0_or_later-lgpl_2_1_or_later + * + * Test the function in the utf project. + */ +#ifndef _TEST__F_utf_is_combining_joiner_h +#define _TEST__F_utf_is_combining_joiner_h + +/** + * Test that the function works. + * + * @see f_utf_is_combining_joiner() + */ +extern void test__f_utf_is_combining_joiner__works(void **state); + +#endif // _TEST__F_utf_is_combining_joiner_h diff --cc level_0/f_utf/tests/unit/c/test-utf-is_joiner.h index 330d73fcc,000000000..08e2fdd00 mode 100644,000000..100644 --- a/level_0/f_utf/tests/unit/c/test-utf-is_joiner.h +++ b/level_0/f_utf/tests/unit/c/test-utf-is_joiner.h @@@ -1,20 -1,0 +1,20 @@@ +/** + * FLL - Level 0 + * + * Project: UTF + * API Version: 0.8 - * Licenses: lgpl-2.1-or-later ++ * Licenses: clarified_1_0_or_later-lgpl_2_1_or_later + * + * Test the function in the utf project. + */ +#ifndef _TEST__F_utf_is_joiner_h +#define _TEST__F_utf_is_joiner_h + +/** + * Test that the function works. + * + * @see f_utf_is_joiner() + */ +extern void test__f_utf_is_joiner__works(void **state); + +#endif // _TEST__F_utf_is_joiner_h diff --cc specifications/fss.txt index e633c5cfd,7c1699eff..d155d2106 --- a/specifications/fss.txt +++ b/specifications/fss.txt @@@ -1,7 -1,7 +1,7 @@@ # fss-0002 iki-0000 # - # license open-standard-license-1.1-or-later + # license open_standard_license_1_1_or_later -# version 2026/05/31 +# version 2026/07/21 # # This file (assumed to be named fss.txt) can be more easily read using the following iki_read commands: # iki_read fss.txt +Q -w -rrrrrrrr anti-KISS anti-KISS ASCII ASCII BOM BOM FSS FSS KISS KISS UTF-8 UTF-8 URL URL XML XML -WWW character "'" "'" code '"' '"' italic '"' '"'