]> Kevux Git Server - fll/commitdiff
Bugfix: f_utf_unicode_string_from() is not functioning correctly.
authorKevin Day <thekevinday@gmail.com>
Fri, 3 Dec 2021 23:58:53 +0000 (17:58 -0600)
committerKevin Day <thekevinday@gmail.com>
Fri, 3 Dec 2021 23:58:53 +0000 (17:58 -0600)
The code in this function is incomplete and incorrect.
I have a feeling I got distracted and came back later to work on it, forgetting what I was doing.

Use while loops rather than for loops for cases where the for loop would essentially have empty content.

It is clear that I intended to test for both upper case and lower case U but I didn't actually test against lower case.

The code is not incrementing after confirming there is a 'u' or 'U".

level_0/f_utf/c/utf.c

index e3d315879a2e0e346a00dd52d0f2293237ff8370..d0cbef5f5ff3cbe45835954e9637df6fdd76b617 100644 (file)
@@ -1806,15 +1806,15 @@ extern "C" {
 
     f_array_length_t i = 0;
 
-    for (; i < length; ++i) {
-      if (!string[i]) continue;
-    } // for
+    while (i < length && !string[i]) {
+      ++i;
+    } // while
 
     if (i < length) {
-      if (string[i] == f_string_ascii_U_s[0] || string[i] == f_string_ascii_U_s[0]) {
-        for (; i < length; ++i) {
-          if (!string[i]) continue;
-        } // for
+      if (string[i] == f_string_ascii_u_s[0] || string[i] == f_string_ascii_U_s[0]) {
+        do {
+          ++i;
+        } while (i < length && !string[i]);
 
         if (i < length && string[i] == f_string_ascii_plus_s[0]) {
           ++i;