1#include "tdeunicodedata.h"
7#include "tdeunicodedata_categories.cpp"
9TDEUnicodeData *TDEUnicodeData::s_instance =
nullptr;
11TDEUnicodeData *TDEUnicodeData::instance()
14 s_instance =
new TDEUnicodeData;
18TDEUnicodeData::TDEUnicodeData()
19 : m_categories(categories),
20 m_categories_size(categories_size)
24const TDEUnicodeData::Category *TDEUnicodeData::findCategory(
char32_t codepoint)
const
26 if (m_categories_size == 0)
29 const Category *begin = std::begin(categories);
30 const Category *
end = std::end(categories);
31 const Category *it = std::lower_bound(begin, end, codepoint,
32 [](
const Category &c,
char32_t cp) {
return c.index <= cp; });
39const TDEUnicodeData::Subcategory *TDEUnicodeData::findSubcategory(
char32_t codepoint)
const
41 const Category *category = findCategory(codepoint);
42 return category ? findSubcategory(category, codepoint) : nullptr;
45const TDEUnicodeData::Subcategory *TDEUnicodeData::findSubcategory(
const Category *category,
char32_t codepoint)
const
47 if (!category || category->subcategories_size == 0)
50 const Subcategory *begin = category->subcategories;
51 const Subcategory *
end = category->subcategories + category->subcategories_size;
52 const Subcategory *it = std::lower_bound(begin, end, codepoint,
53 [](
const Subcategory &s,
char32_t cp) {
return s.index <= cp; });
const TDEShortcut & end()
Goto end of the document.