]> Kevux Git Server - fll/commitdiff
Bugfix: A typo resulting in treating < 0xc3 as invalid UTF-8 when it is instead ...
authorKevin Day <thekevinday@gmail.com>
Wed, 22 Jun 2022 05:20:54 +0000 (00:20 -0500)
committerKevin Day <thekevinday@gmail.com>
Wed, 22 Jun 2022 05:23:38 +0000 (00:23 -0500)
This is for 2-width characters, such as: '²' (U+00B2) and '½' (U+00BD).
These character should not be treated as invalid.

I have not yet investigated to see if I need to make other corrections.
This is just an obvious mistake that I found and immediately fixed.

level_0/f_utf/c/private-utf_valid.c
level_0/f_utf/tests/unit/c/test-utf-character_is_valid.c
level_0/f_utf/tests/unit/c/test-utf-is_valid.c

index 8e5b7860e4d73f884b32a4322112f11a4fd07677..de38afaf2bb0f076f68ce2b716ababfed0832fe8 100644 (file)
@@ -76,8 +76,8 @@ extern "C" {
     // Valid: 110xxxxx 10xxxxxx ???????? ????????.
     if ((macro_f_utf_char_t_to_char_1(sequence) & 0b11100000) == 0b11000000) {
 
-      // Only first byte ranges 0xc3 or greater are valid.
-      if (macro_f_utf_char_t_to_char_2(sequence) < 0xc3) {
+      // Only first byte ranges 0xc2 or greater are valid.
+      if (macro_f_utf_char_t_to_char_2(sequence) < 0xc2) {
         return F_false;
       }
 
index 3b448d3f0eb0eaae8e6df87ba7a061a1452ac093..207c890b903d6001557899c8f82c91036e029c3e 100644 (file)
@@ -123,8 +123,8 @@ void test__f_utf_character_is_valid__works(void **state) {
     // Valid: 110xxxxx 10xxxxxx ???????? ????????.
     if ((first & 0b11100000) == 0b11000000) {
 
-      // Only first byte ranges 0xc3 or greater are valid.
-      if (second < 0xc3) {
+      // Only first byte ranges 0xc2 or greater are valid.
+      if (second < 0xc2) {
         assert_int_equal(status, F_false);
 
         continue;
index 584c4711264373e0d1a95e993dba38ba0c1ea7e3..ec3a572809693534b7401db3ea5fd17fe9818bbd 100644 (file)
@@ -100,8 +100,8 @@ void test__f_utf_is_valid__works(void **state) {
     // Valid: 110xxxxx 10xxxxxx ???????? ????????.
     if ((first & 0b11100000) == 0b11000000) {
 
-      // Only first byte ranges 0xc3 or greater are valid.
-      if (second < 0xc3) {
+      // Only first byte ranges 0xc2 or greater are valid.
+      if (second < 0xc2) {
         assert_int_equal(status, F_false);
 
         continue;