summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/util/unicode.h
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2019-01-14 00:44:46 +1100
committer Vas Crabb <vas@vastheman.com>2019-01-14 00:44:46 +1100
commit3d84943f72df5d69db5e5cff1d71887fcc23c422 (patch)
tree893bbfe9575c70b5b95311642937bc92bfb633ba /src/lib/util/unicode.h
parent9d7b4d0faa64f42665b1c19b28b5eb15c0f40d29 (diff)
Make search not suck as badly (use algorithm derived from Jaro-Winkler similarity to match search strings, match on more useful stuff)
Diffstat (limited to 'src/lib/util/unicode.h')
-rw-r--r--src/lib/util/unicode.h17
1 files changed, 10 insertions, 7 deletions
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 <string>
#include <stdlib.h>
-#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