From b9954c06ce5f82d7caca1df781686bc0ef5704d9 Mon Sep 17 00:00:00 2001 From: LDA Date: Sat, 21 Sep 2024 13:48:09 +0200 Subject: [PATCH] [FIX] Apparently 0b isn't valid C99 --- src/Main.c | 12 ------------ src/Unistr.c | 26 +++++++++++++------------- 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/src/Main.c b/src/Main.c index b0ed711..988894f 100644 --- a/src/Main.c +++ b/src/Main.c @@ -72,18 +72,6 @@ Main(Array *args, HashMap *env) start = UtilTsMillis(); - { - Unistr *s = UnistrCreate("Array 日本語🌋"); - size_t i; - for (i = 0; i < UnistrSize(s); i++) - { - uint32_t cp = UnistrGetch(s, i); - Log(LOG_INFO, "%X", cp); - } - - UnistrFree(s); - } - memset(&conf, 0, sizeof(conf)); Log(LOG_INFO, "%s - v%s[%s] (Cytoplasm %s)", diff --git a/src/Unistr.c b/src/Unistr.c index b9439c8..cfb100a 100644 --- a/src/Unistr.c +++ b/src/Unistr.c @@ -39,7 +39,7 @@ UTFIsN(char *off, size_t available, int n, uint8_t pc) for (i = 0; i < n - 1; i++) { - if ((offu[i+1] >> 6) != 0b10) + if ((offu[i+1] >> 6) != 0x2) { return false; } @@ -74,10 +74,10 @@ UnistrCreate(char *src) UnistrAddch(str, byte & 0x7F); continue; } - else if (UTFIsN(&src[i], available, 2, 0b110)) + else if (UTFIsN(&src[i], available, 2, 0x06)) { - char a = src[i+0] & 0b00011111; - char b = src[i+1] & 0b00111111; + char a = src[i+0] & 0x1F; + char b = src[i+1] & 0x3F; uint32_t u = (a << (6 * 1)) | b; /* Overlongs are errors. */ @@ -91,11 +91,11 @@ UnistrCreate(char *src) i += 2 - 1; continue; } - else if (UTFIsN(&src[i], available, 3, 0b1110)) + else if (UTFIsN(&src[i], available, 3, 0x0E)) { - char a = src[i+0] & 0b00001111; - char b = src[i+1] & 0b00111111; - char c = src[i+2] & 0b00111111; + char a = src[i+0] & 0x0F; + char b = src[i+1] & 0x3F; + char c = src[i+2] & 0x3F; uint32_t u = (a << (6 * 2)) | (b << (6 * 1)) | @@ -112,12 +112,12 @@ UnistrCreate(char *src) i += 3 - 1; continue; } - else if (UTFIsN(&src[i], available, 4, 0b11110)) + else if (UTFIsN(&src[i], available, 4, 0x1E)) { - char a = src[i+0] & 0b00000111; - char b = src[i+1] & 0b00111111; - char c = src[i+2] & 0b00111111; - char d = src[i+3] & 0b00111111; + char a = src[i+0] & 0x07; + char b = src[i+1] & 0x3F; + char c = src[i+2] & 0x3F; + char d = src[i+3] & 0x3F; uint32_t u = (a << (6 * 3)) | (b << (6 * 2)) |