From 3d84943f72df5d69db5e5cff1d71887fcc23c422 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Mon, 14 Jan 2019 00:44:46 +1100 Subject: Make search not suck as badly (use algorithm derived from Jaro-Winkler similarity to match search strings, match on more useful stuff) --- src/lib/util/unicode.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/lib/util/unicode.h') diff --git a/src/lib/util/unicode.h b/src/lib/util/unicode.h index 5e30a74916e..46e1aec3496 100644 --- a/src/lib/util/unicode.h +++ b/src/lib/util/unicode.h @@ -14,14 +14,16 @@ singular 32-bit Unicode chars. ***************************************************************************/ +#ifndef MAME_LIB_UTIL_UNICODE_H +#define MAME_LIB_UTIL_UNICODE_H #pragma once -#ifndef UNICODE_H -#define UNICODE_H +#include "osdcore.h" + +#include #include -#include "osdcore.h" @@ -95,6 +97,7 @@ bool uchar_is_digit(char32_t uchar); int uchar_from_utf8(char32_t *uchar, const char *utf8char, size_t count); int uchar_from_utf16(char32_t *uchar, const char16_t *utf16char, size_t count); int uchar_from_utf16f(char32_t *uchar, const char16_t *utf16char, size_t count); +std::u32string ustr_from_utf8(const std::string &utf8str); // converting 32-bit Unicode chars to strings int utf8_from_uchar(char *utf8string, size_t count, char32_t uchar); @@ -107,9 +110,9 @@ std::wstring wstring_from_utf8(const std::string &utf8string); std::string utf8_from_wstring(const std::wstring &string); // unicode normalization -std::string normalize_unicode(const std::string &s, unicode_normalization_form normalization_form); -std::string normalize_unicode(const char *s, unicode_normalization_form normalization_form); -std::string normalize_unicode(const char *s, size_t length, unicode_normalization_form normalization_form); +std::string normalize_unicode(const std::string &s, unicode_normalization_form normalization_form, bool fold_case = false); +std::string normalize_unicode(const char *s, unicode_normalization_form normalization_form, bool fold_case = false); +std::string normalize_unicode(const char *s, size_t length, unicode_normalization_form normalization_form, bool fold_case = false); // upper and lower case char32_t uchar_toupper(char32_t ch); @@ -137,4 +140,4 @@ bool utf8_is_valid_string(const char *utf8string); #define utf16le_from_uchar utf16f_from_uchar #endif -#endif /* UNICODE_H */ +#endif // MAME_LIB_UTIL_UNICODE_H -- cgit v1.2.3-70-g09d2