From 6ce383a9dfba5c49a48676c3a651804fde3dfe34 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 24 Oct 2021 22:16:51 +1100 Subject: Cleanup: cross-reference right pointing arrow literal This value is defined in the UI module, but happens to be used in string_search.cc too. Note that these references need to be kept in sync. Use escaped utf-8 sequence since the literal can be avoided. Also replace BLI_str_utf8_as_unicode calls with constant assignments as these values are known there is no need to decode a utf-8 sequence. --- source/blender/blenlib/intern/string_search.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'source/blender/blenlib/intern') diff --git a/source/blender/blenlib/intern/string_search.cc b/source/blender/blenlib/intern/string_search.cc index a466c124073..08ba473f96b 100644 --- a/source/blender/blenlib/intern/string_search.cc +++ b/source/blender/blenlib/intern/string_search.cc @@ -24,6 +24,10 @@ #include "BLI_string_utf8.h" #include "BLI_timeit.hh" +/* Right arrow, keep in sync with #UI_MENU_ARROW_SEP in `UI_interface.h`. */ +#define UI_MENU_ARROW_SEP "\xe2\x96\xb6" +#define UI_MENU_ARROW_SEP_UNICODE 0x25b6 + namespace blender::string_search { static int64_t count_utf8_code_points(StringRef str) @@ -350,8 +354,11 @@ void extract_normalized_words(StringRef str, LinearAllocator<> &allocator, Vector &r_words) { - const uint32_t unicode_space = BLI_str_utf8_as_unicode(" "); - const uint32_t unicode_right_triangle = BLI_str_utf8_as_unicode("▶"); + const uint32_t unicode_space = (uint32_t)' '; + const uint32_t unicode_right_triangle = UI_MENU_ARROW_SEP_UNICODE; + + BLI_assert(unicode_space == BLI_str_utf8_as_unicode(" ")); + BLI_assert(unicode_right_triangle == BLI_str_utf8_as_unicode(UI_MENU_ARROW_SEP)); auto is_separator = [&](uint32_t unicode) { return ELEM(unicode, unicode_space, unicode_right_triangle); -- cgit v1.2.3