summaryrefslogtreecommitdiff
path: root/include/m_utils.h
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2012-06-01 21:37:18 +0000
committerGeorge Hazan <george.hazan@gmail.com>2012-06-01 21:37:18 +0000
commit57c87234383026f1f57a3044f0d934fc13ea9d0e (patch)
treea296589c5e16dff5540923582207007552476f61 /include/m_utils.h
parent5e52c4592330b5971a107da1bafd115fafb38f54 (diff)
- RecentContacts added;
- _A2T & _T2A classes moved to m_utils.h git-svn-id: http://svn.miranda-ng.org/main/trunk@255 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'include/m_utils.h')
-rw-r--r--include/m_utils.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/m_utils.h b/include/m_utils.h
index bac74a2685..7ea24f528e 100644
--- a/include/m_utils.h
+++ b/include/m_utils.h
@@ -530,4 +530,44 @@ extern struct SHA1_INTERFACE sha1i;
#define mir_u2t_cp(s,c) mir_u2a_cp(s,c)
#endif
+#if defined( __cplusplus )
+
+#ifdef _STATIC
+ void mir_free( void* );
+ WCHAR* mir_a2u_cp(const char* src, int codepage);
+ WCHAR* mir_a2u(const char* src);
+ char* mir_u2a_cp(const wchar_t* src, int codepage);
+ char* mir_u2a( const wchar_t* src);
+#endif
+
+class _A2T
+{
+ TCHAR* buf;
+
+public:
+ __forceinline _A2T( const char* s ) : buf( mir_a2t( s )) {}
+ __forceinline _A2T( const char* s, int cp ) : buf( mir_a2t_cp( s, cp )) {}
+ ~_A2T() { mir_free(buf); }
+
+ __forceinline operator TCHAR*() const
+ { return buf;
+ }
+};
+
+class _T2A
+{
+ char* buf;
+
+public:
+ __forceinline _T2A( const TCHAR* s ) : buf( mir_t2a( s )) {}
+ __forceinline _T2A( const TCHAR* s, int cp ) : buf( mir_t2a_cp( s, cp )) {}
+ __forceinline ~_T2A() { mir_free(buf); }
+
+ __forceinline operator char*() const
+ { return buf;
+ }
+};
+
+#endif
+
#endif // M_UTILS_H__