diff --git a/src/iconvtc.c b/src/iconvtc.c deleted file mode 100644 index 262a4b6..0000000 --- a/src/iconvtc.c +++ /dev/null @@ -1,104 +0,0 @@ -/* iconvtc.c -- Interface to iconv transcoding routines - - (c) 1998-2008 (W3C) MIT, ERCIM, Keio University - See tidy.h for the copyright notice. - -*/ - -#include "tidy.h" -#include "forward.h" -#include "streamio.h" - -#ifdef TIDY_ICONV_SUPPORT - -#include - -/* maximum number of bytes for a single character */ -#define TC_INBUFSIZE 16 - -/* maximum number of characters per byte sequence */ -#define TC_OUTBUFSIZE 16 - -Bool IconvInitInputTranscoder(void) -{ - return no; -} - -void IconvUninitInputTranscoder(void) -{ - return; -} - -int IconvGetChar(byte firstByte, StreamIn * in, uint * bytesRead) -{ - iconv_t cd; - TidyInputSource * source; - char inbuf[TC_INBUFSIZE] = { 0 }; - char outbuf[TC_OUTBUFSIZE] = { 0 }; - size_t inbufsize = 0; - - assert( in != NULL ); - assert( &in->source != NULL ); - assert( bytesRead != NULL ); - assert( in->iconvptr != 0 ); - - cd = (iconv_t)in->iconvptr; - source = &in->source; - - inbuf[inbufsize++] = (char)firstByte; - - while(inbufsize < TC_INBUFSIZE) - { - char * outbufptr = (char*)outbuf; - char * inbufptr = (char*)inbuf; - size_t readNow = inbufsize; - size_t writeNow = TC_OUTBUFSIZE; - size_t result = 0; - int iconv_errno = 0; - int nextByte = EndOfStream; - - result = iconv(cd, (const char**)&inbufptr, &readNow, (char**)&outbufptr, &writeNow); - iconv_errno = errno; - - if (result != (size_t)(-1)) - { - int c; - - /* create codepoint from UTF-32LE octets */ - c = (unsigned char)outbuf[0]; - c += (unsigned char)outbuf[1] << 8; - c += (unsigned char)outbuf[2] << 16; - c += (unsigned char)outbuf[3] << 32; - - /* set number of read bytes */ - *bytesRead = inbufsize; - - return c; - } - - assert( iconv_errno != EILSEQ ); /* broken multibyte sequence */ - assert( iconv_errno != E2BIG ); /* not enough memory */ - assert( iconv_errno == EINVAL ); /* incomplete sequence */ - - /* we need more bytes */ - nextByte = source->getByte(source->sourceData); - - if (nextByte == EndOfStream) - { - /* todo: error message for broken stream? */ - - *bytesRead = inbufsize; - return EndOfStream; - } - - inbuf[inbufsize++] = (char)nextByte; - } - - /* No full character found after reading TC_INBUFSIZE bytes, */ - /* give up to read this stream, it's obviously unreadable. */ - - /* todo: error message for broken stream? */ - return EndOfStream; -} - -#endif /* TIDY_ICONV_SUPPORT */ diff --git a/src/iconvtc.h b/src/iconvtc.h deleted file mode 100644 index 1965ca0..0000000 --- a/src/iconvtc.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __ICONVTC_H__ -#define __ICONVTC_H__ -#ifdef TIDY_ICONV_SUPPORT - -/* iconvtc.h -- Interface to iconv transcoding routines - - (c) 1998-2003 (W3C) MIT, ERCIM, Keio University - See tidy.h for the copyright notice. - -*/ - - -#endif /* TIDY_ICONV_SUPPORT */ -#endif /* __ICONVTC_H__ */