Skip to content

Commit aa3a308

Browse files
trflynn89awesomekling
authored andcommitted
LibUnicode: Replace code point bidirectional classes with ICU
1 parent e77dafc commit aa3a308

File tree

8 files changed

+102
-348
lines changed

8 files changed

+102
-348
lines changed

Meta/CMake/unicode_data.cmake

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ set(UCD_VERSION_FILE "${UCD_PATH}/version.txt")
1010
set(UCD_ZIP_URL "https://www.unicode.org/Public/${UCD_VERSION}/ucd/UCD.zip")
1111
set(UCD_ZIP_PATH "${UCD_PATH}/UCD.zip")
1212

13-
set(UNICODE_DATA_SOURCE "UnicodeData.txt")
14-
set(UNICODE_DATA_PATH "${UCD_PATH}/${UNICODE_DATA_SOURCE}")
15-
1613
string(REGEX REPLACE "([0-9]+\\.[0-9]+)\\.[0-9]+" "\\1" EMOJI_VERSION "${UCD_VERSION}")
1714
set(EMOJI_TEST_URL "https://www.unicode.org/Public/emoji/${EMOJI_VERSION}/emoji-test.txt")
1815
set(EMOJI_TEST_PATH "${UCD_PATH}/emoji-test.txt")
@@ -26,33 +23,19 @@ if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
2623

2724
if (ENABLE_NETWORK_DOWNLOADS)
2825
download_file("${UCD_ZIP_URL}" "${UCD_ZIP_PATH}" SHA256 "${UCD_SHA256}")
29-
extract_path("${UCD_PATH}" "${UCD_ZIP_PATH}" "${UNICODE_DATA_SOURCE}" "${UNICODE_DATA_PATH}")
30-
3126
download_file("${EMOJI_TEST_URL}" "${EMOJI_TEST_PATH}" SHA256 "${EMOJI_SHA256}")
3227
else()
3328
message(STATUS "Skipping download of ${UCD_ZIP_URL}, expecting the archive to have been extracted to ${UCD_ZIP_PATH}")
3429
message(STATUS "Skipping download of ${EMOJI_TEST_URL}, expecting the file to be at ${EMOJI_TEST_PATH}")
3530
endif()
3631

37-
38-
set(UNICODE_DATA_HEADER UnicodeData.h)
39-
set(UNICODE_DATA_IMPLEMENTATION UnicodeData.cpp)
40-
4132
set(EMOJI_DATA_HEADER EmojiData.h)
4233
set(EMOJI_DATA_IMPLEMENTATION EmojiData.cpp)
4334

4435
if (SERENITYOS)
4536
set(EMOJI_INSTALL_ARG -i "${EMOJI_INSTALL_PATH}")
4637
endif()
4738

48-
invoke_generator(
49-
"UnicodeData"
50-
Lagom::GenerateUnicodeData
51-
"${UCD_VERSION_FILE}"
52-
"${UNICODE_DATA_HEADER}"
53-
"${UNICODE_DATA_IMPLEMENTATION}"
54-
arguments -u "${UNICODE_DATA_PATH}"
55-
)
5639
invoke_generator(
5740
"EmojiData"
5841
Lagom::GenerateEmojiData
@@ -69,8 +52,6 @@ if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
6952
)
7053

7154
set(UNICODE_DATA_SOURCES
72-
${UNICODE_DATA_HEADER}
73-
${UNICODE_DATA_IMPLEMENTATION}
7455
${EMOJI_DATA_HEADER}
7556
${EMOJI_DATA_IMPLEMENTATION}
7657
)
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
lagom_tool(GenerateUnicodeData SOURCES GenerateUnicodeData.cpp LIBS LibMain)
21
lagom_tool(GenerateEmojiData SOURCES GenerateEmojiData.cpp LIBS LibMain)

Meta/Lagom/Tools/CodeGenerators/LibUnicode/GenerateUnicodeData.cpp

Lines changed: 0 additions & 291 deletions
This file was deleted.

Tests/LibUnicode/TestUnicodeCharacterTypes.cpp

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2021, Tim Flynn <trflynn89@serenityos.org>
2+
* Copyright (c) 2021-2024, Tim Flynn <trflynn89@serenityos.org>
33
*
44
* SPDX-License-Identifier: BSD-2-Clause
55
*/
@@ -307,25 +307,13 @@ TEST_CASE(script_extension)
307307

308308
TEST_CASE(code_point_bidirectional_character_type)
309309
{
310-
auto code_point_bidi_class = [](u32 code_point) {
311-
auto bidi_class = Unicode::bidirectional_class(code_point);
312-
VERIFY(bidi_class.has_value());
313-
return bidi_class.release_value();
314-
};
315-
316-
auto bidi_class_from_string = [](StringView name) {
317-
auto result = Unicode::bidirectional_class_from_string(name);
318-
VERIFY(result.has_value());
319-
return result.release_value();
320-
};
321-
322310
// Left-to-right
323-
EXPECT_EQ(code_point_bidi_class('A'), bidi_class_from_string("L"sv));
324-
EXPECT_EQ(code_point_bidi_class('z'), bidi_class_from_string("L"sv));
311+
EXPECT_EQ(Unicode::bidirectional_class('A'), Unicode::BidiClass::LeftToRight);
312+
EXPECT_EQ(Unicode::bidirectional_class('z'), Unicode::BidiClass::LeftToRight);
325313
// European number
326-
EXPECT_EQ(code_point_bidi_class('7'), bidi_class_from_string("EN"sv));
314+
EXPECT_EQ(Unicode::bidirectional_class('7'), Unicode::BidiClass::EuropeanNumber);
327315
// Whitespace
328-
EXPECT_EQ(code_point_bidi_class(' '), bidi_class_from_string("WS"sv));
316+
EXPECT_EQ(Unicode::bidirectional_class(' '), Unicode::BidiClass::WhiteSpaceNeutral);
329317
// Arabic right-to-left (U+FEB4 ARABIC LETTER SEEN MEDIAL FORM)
330-
EXPECT_EQ(code_point_bidi_class(0xFEB4), bidi_class_from_string("AL"sv));
318+
EXPECT_EQ(Unicode::bidirectional_class(0xFEB4), Unicode::BidiClass::RightToLeftArabic);
331319
}

0 commit comments

Comments
 (0)