diff options
author | rofafor <rofafor> | 2008-11-24 10:49:29 +0000 |
---|---|---|
committer | rofafor <rofafor> | 2008-11-24 10:49:29 +0000 |
commit | ab2e9cb34a63bbe4a5db4667c8f039f4886dcdcc (patch) | |
tree | 4f9ec3faa505ccd17fa9da5d4d52b3b074ecdb79 /tools/iconv.h | |
parent | 6eab8fe15fb007fc0eb9c439293aaa9bf4a37e0f (diff) | |
download | xineliboutput-ab2e9cb34a63bbe4a5db4667c8f039f4886dcdcc.tar.gz xineliboutput-ab2e9cb34a63bbe4a5db4667c8f039f4886dcdcc.tar.bz2 |
Replaced cIConv with VDR's cCharConv.
Diffstat (limited to 'tools/iconv.h')
-rw-r--r-- | tools/iconv.h | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/tools/iconv.h b/tools/iconv.h deleted file mode 100644 index a0462f99..00000000 --- a/tools/iconv.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * iconv.h: iconv library wrapper - * - * See the main source file 'xineliboutput.c' for copyright information and - * how to reach the author. - * - * $Id: iconv.h,v 1.7 2008-11-20 11:46:31 rofafor Exp $ - * - */ - -#ifndef _XINELIBOUTPUT_ICONV_H_ -#define _XINELIBOUTPUT_ICONV_H_ - -#if defined(USE_ICONV) && USE_ICONV == 0 -# undef USE_ICONV -# warning iconv disabled -#endif - -#ifdef USE_ICONV -# include <iconv.h> -#endif - -class cIConv -{ -#ifdef USE_ICONV - private: - iconv_t m_ic; -#endif - - public: - cIConv(const char *SrcCharset = NULL, const char * DstCharset = NULL); - virtual ~cIConv(); - - cString Translate(const char *Text) const; -}; - -cIConv::cIConv(const char *SrcCharset, const char * DstCharset) -{ -#ifdef USE_ICONV - if(!SrcCharset) - SrcCharset = "UTF-8"; - if(!DstCharset) { - DstCharset = cCharSetConv::SystemCharacterTable(); - } - m_ic = (iconv_t)-1; - - if(DstCharset) { - m_ic = iconv_open(DstCharset, SrcCharset); - - if(m_ic == (iconv_t)-1) - LOGERR("cIConv: iconv_open(\"%s\",\"%s\") failed", - SrcCharset, DstCharset); - } -#endif -} - -cIConv::~cIConv() -{ -#ifdef USE_ICONV - if(m_ic != (iconv_t)-1) - iconv_close(m_ic); -#endif -} - -cString cIConv::Translate(const char *Text) const -{ -#ifdef USE_ICONV - if(m_ic == (iconv_t)-1) - return cString(Text); - - size_t inc = strlen(Text); - size_t outc = inc<2048 ? 2048 : inc+1; - char *in = (char*)Text; - char *buf = (char*)malloc(outc+1); - char *out = buf; - - size_t n = iconv(m_ic, &in, &inc, &out, &outc); - - if(n != (size_t)-1) { - *out = 0; - return cString(buf, true); - } - - LOGERR("cIConv: iconv(%s) failed at %d", Text, (int)(in - Text)); - free(buf); -#endif - - return cString(Text); -} - - -#endif // _XINELIBOUTPUT_ICONV_H_ |