diff --git a/src/categories.cpp b/src/categories.cpp index 16647897..e7247c2a 100644 --- a/src/categories.cpp +++ b/src/categories.cpp @@ -2981,9 +2981,9 @@ ucd::category ucd::lookup_category(codepoint_t c) return Ii; // Invalid Unicode Codepoint } -ucd::category_group ucd::lookup_category_group(codepoint_t c) +ucd::category_group ucd::lookup_category_group(category c) { - switch (lookup_category(c)) + switch (c) { case Cc: case Cf: case Cn: case Co: case Cs: return C; @@ -3003,3 +3003,8 @@ ucd::category_group ucd::lookup_category_group(codepoint_t c) return I; } } + +ucd::category_group ucd::lookup_category_group(codepoint_t c) +{ + return lookup_category_group(lookup_category(c)); +} diff --git a/src/include/ucd/ucd.h b/src/include/ucd/ucd.h index fb043e17..d206018d 100644 --- a/src/include/ucd/ucd.h +++ b/src/include/ucd/ucd.h @@ -96,6 +96,13 @@ namespace ucd Zs, /**< @brief Space Separator */ }; + /** @brief Lookup the General Category Group for a General Category. + * + * @param c The General Category to lookup. + * @return The General Category Group of the General Category. + */ + category_group lookup_category_group(category c); + /** @brief Lookup the General Category Group for a Unicode codepoint. * * @param c The Unicode codepoint to lookup. diff --git a/tools/categories.py b/tools/categories.py index dac66853..30367f78 100755 --- a/tools/categories.py +++ b/tools/categories.py @@ -173,9 +173,9 @@ using namespace ucd; sys.stdout.write('}\n') sys.stdout.write(""" -ucd::category_group ucd::lookup_category_group(codepoint_t c) +ucd::category_group ucd::lookup_category_group(category c) { - switch (lookup_category(c)) + switch (c) { case Cc: case Cf: case Cn: case Co: case Cs: return C; @@ -195,4 +195,9 @@ ucd::category_group ucd::lookup_category_group(codepoint_t c) return I; } } + +ucd::category_group ucd::lookup_category_group(codepoint_t c) +{ + return lookup_category_group(lookup_category(c)); +} """)