1 // Scintilla source code edit control
3 ** Classes for case folding.
5 // Copyright 1998-2013 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
11 namespace Scintilla::Internal
{
15 CaseFolder() = default;
16 // Deleted so CaseFolder objects can not be copied.
17 CaseFolder(const CaseFolder
&source
) = delete;
18 CaseFolder(CaseFolder
&&) = delete;
19 CaseFolder
&operator=(const CaseFolder
&) = delete;
20 CaseFolder
&operator=(CaseFolder
&&) = delete;
21 virtual ~CaseFolder() = default;
22 virtual size_t Fold(char *folded
, size_t sizeFolded
, const char *mixed
, size_t lenMixed
) = 0;
25 class CaseFolderTable
: public CaseFolder
{
29 CaseFolderTable() noexcept
;
30 size_t Fold(char *folded
, size_t sizeFolded
, const char *mixed
, size_t lenMixed
) override
;
31 void SetTranslation(char ch
, char chTranslation
) noexcept
;
32 void StandardASCII() noexcept
;
37 class CaseFolderUnicode
: public CaseFolderTable
{
38 ICaseConverter
*converter
;
41 size_t Fold(char *folded
, size_t sizeFolded
, const char *mixed
, size_t lenMixed
) override
;