mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-23 20:14:05 +00:00
clean: remove unused code of iconv.cc and minor update code style
This commit is contained in:
parent
ac43018f68
commit
9a2c96ca56
|
@ -186,7 +186,6 @@ endif ()
|
|||
|
||||
target_compile_definitions(${GOLDENDICT} PUBLIC
|
||||
CMAKE_USED_HACK # temporal hack to avoid breaking qmake build
|
||||
USE_ICONV
|
||||
MAKE_QTMULTIMEDIA_PLAYER
|
||||
MAKE_CHINESE_CONVERSION_SUPPORT
|
||||
)
|
||||
|
|
|
@ -11,33 +11,20 @@ char const * const Iconv::GdWchar = "UTF-32LE";
|
|||
char const * const Iconv::Utf16Le = "UTF-16LE";
|
||||
char const * const Iconv::Utf8 = "UTF-8";
|
||||
|
||||
using gd::wchar;
|
||||
|
||||
Iconv::Iconv( char const * from )
|
||||
#ifdef USE_ICONV
|
||||
// the to encoding must be UTF8
|
||||
:
|
||||
Iconv::Iconv( char const * from ):
|
||||
state( iconv_open( Utf8, from ) )
|
||||
#endif
|
||||
{
|
||||
#ifdef USE_ICONV
|
||||
if ( state == (iconv_t)-1 )
|
||||
throw exCantInit( strerror( errno ) );
|
||||
#else
|
||||
codec = QTextCodec::codecForName( from );
|
||||
#endif
|
||||
}
|
||||
|
||||
Iconv::~Iconv()
|
||||
{
|
||||
#ifdef USE_ICONV
|
||||
iconv_close( state );
|
||||
#endif
|
||||
}
|
||||
|
||||
QString Iconv::convert( void const *& inBuf, size_t & inBytesLeft )
|
||||
{
|
||||
#ifdef USE_ICONV
|
||||
size_t dsz = inBytesLeft;
|
||||
//avoid most realloc
|
||||
std::vector< char > outBuf( dsz + 32 );
|
||||
|
@ -90,12 +77,6 @@ QString Iconv::convert( void const *& inBuf, size_t & inBytesLeft )
|
|||
size_t datasize = outBuf.size() - outBufLeft;
|
||||
// QByteArray ba( &outBuf.front(), datasize );
|
||||
return QString::fromUtf8( &outBuf.front(), datasize );
|
||||
#else
|
||||
if ( codec )
|
||||
return codec->toUnicode( static_cast< const char * >( inBuf ), inBytesLeft );
|
||||
QByteArray ba( static_cast< const char * >( inBuf ), inBytesLeft );
|
||||
return QString( ba );
|
||||
#endif
|
||||
}
|
||||
|
||||
gd::wstring Iconv::toWstring( char const * fromEncoding, void const * fromData, size_t dataSize )
|
||||
|
@ -104,8 +85,9 @@ gd::wstring Iconv::toWstring( char const * fromEncoding, void const * fromData,
|
|||
/// Special-case the dataSize == 0 to avoid any kind of iconv-specific
|
||||
/// behaviour in that regard.
|
||||
|
||||
if ( !dataSize )
|
||||
if ( dataSize == 0 ) {
|
||||
return {};
|
||||
}
|
||||
|
||||
Iconv ic( fromEncoding );
|
||||
|
||||
|
@ -118,8 +100,9 @@ std::string Iconv::toUtf8( char const * fromEncoding, void const * fromData, siz
|
|||
{
|
||||
// Similar to toWstring
|
||||
|
||||
if ( !dataSize )
|
||||
if ( dataSize == 0 ) {
|
||||
return {};
|
||||
}
|
||||
|
||||
Iconv ic( fromEncoding );
|
||||
|
||||
|
|
|
@ -4,24 +4,19 @@
|
|||
#ifndef __ICONV_HH_INCLUDED__
|
||||
#define __ICONV_HH_INCLUDED__
|
||||
|
||||
#include <QTextCodec>
|
||||
#include <QString>
|
||||
|
||||
#include "wstring.hh"
|
||||
#include "ex.hh"
|
||||
|
||||
#ifdef USE_ICONV
|
||||
#include <iconv.h>
|
||||
#endif
|
||||
#include <iconv.h>
|
||||
|
||||
/// A wrapper for the iconv() character set conversion functions
|
||||
|
||||
/// "Internationalization conversion" for char encoding conversion, currently implemented with iconv()
|
||||
/// Only supports converting from a known "from" to UTF8
|
||||
class Iconv
|
||||
{
|
||||
#ifdef USE_ICONV
|
||||
iconv_t state;
|
||||
#else
|
||||
QTextCodec * codec;
|
||||
|
||||
#endif
|
||||
|
||||
public:
|
||||
|
||||
|
@ -34,7 +29,7 @@ public:
|
|||
static char const * const Utf16Le;
|
||||
static char const * const Utf8;
|
||||
|
||||
Iconv( char const * from );
|
||||
explicit Iconv( char const * from );
|
||||
|
||||
~Iconv();
|
||||
|
||||
|
@ -49,11 +44,8 @@ public:
|
|||
|
||||
static QString toQString( char const * fromEncoding, void const * fromData, size_t dataSize );
|
||||
|
||||
private:
|
||||
|
||||
// Copying/assigning not supported
|
||||
Iconv( Iconv const & );
|
||||
Iconv & operator=( Iconv const & );
|
||||
// Copying/assigning isn't supported
|
||||
Q_DISABLE_COPY_MOVE( Iconv );
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue