From e2c2a1f5a84c6c9b705dc85c6a2dd1f97edd57e4 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 22 May 2015 16:04:17 +0000 Subject: T2Utf - handy replacement for ptrA git-svn-id: http://svn.miranda-ng.org/main/trunk@13758 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- include/m_core.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'include') diff --git a/include/m_core.h b/include/m_core.h index 4b8eb0a824..e29dc0f100 100644 --- a/include/m_core.h +++ b/include/m_core.h @@ -670,6 +670,33 @@ __forceinline char* mir_utf8decodeA(const char* src) #define mir_utf8encodeT mir_utf8encode #endif +class T2Utf +{ + char* m_str; + +public: + __forceinline T2Utf(const TCHAR *str) : + m_str(mir_utf8encodeT(str)) + {} + + __forceinline ~T2Utf() + { mir_free(m_str); + } + + __forceinline char* detach() + { char *res = m_str; m_str = NULL; + return res; + } + + __forceinline char& operator[](int idx) const { return m_str[idx]; } + __forceinline operator char*() const { return m_str; } + __forceinline operator unsigned char*() const { return (unsigned char*)m_str; } + __forceinline operator LPARAM() const { return (LPARAM)m_str; } + #ifdef _XSTRING_ + std::string str() const { return std::string(m_str); } + #endif +}; + /////////////////////////////////////////////////////////////////////////////// // Window subclassing -- cgit v1.2.3