diff options
Diffstat (limited to 'gtk')
| -rwxr-xr-x | gtk/ScintillaGTK.cxx | 18 | ||||
| -rwxr-xr-x | gtk/ScintillaGTK.h | 2 | 
2 files changed, 20 insertions, 0 deletions
| diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index 61ce04ad0..e3148e9a8 100755 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -816,6 +816,24 @@ bool ScintillaGTK::ValidCodePage(int codePage) const {  	       || codePage == 1361;  } +std::string ScintillaGTK::UTF8FromEncoded(std::string_view encoded) const { +	if (IsUnicodeMode()) { +		return std::string(encoded); +	} else { +		const char *charSetBuffer = CharacterSetID(); +		return ConvertText(encoded.data(), encoded.length(), "UTF-8", charSetBuffer, true); +	} +} + +std::string ScintillaGTK::EncodedFromUTF8(std::string_view utf8) const { +	if (IsUnicodeMode()) { +		return std::string(utf8); +	} else { +		const char *charSetBuffer = CharacterSetID(); +		return ConvertText(utf8.data(), utf8.length(), charSetBuffer, "UTF-8", true); +	} +} +  sptr_t ScintillaGTK::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {  	try {  		switch (iMessage) { diff --git a/gtk/ScintillaGTK.h b/gtk/ScintillaGTK.h index a671f5b7a..100abd56b 100755 --- a/gtk/ScintillaGTK.h +++ b/gtk/ScintillaGTK.h @@ -92,6 +92,8 @@ private:  	Sci::Position TargetAsUTF8(char *text) const;  	Sci::Position EncodedFromUTF8(const char *utf8, char *encoded) const;  	bool ValidCodePage(int codePage) const override; +	std::string UTF8FromEncoded(std::string_view encoded) const override; +	std::string EncodedFromUTF8(std::string_view utf8) const override;  public: 	// Public for scintilla_send_message  	sptr_t WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) override;  private: | 
