TranslateCodingSystem.cxx revision 7c478bd95313f5f23a4c958a745db2134aa03244
// Copyright (c) 1997 James Clark
// See the file COPYING for copying permission.
#pragma ident "%Z%%M% %I% %E% SMI"
#include "splib.h"
#include "TranslateCodingSystem.h"
#include "types.h"
#include "Owner.h"
#ifdef SP_NAMESPACE
namespace SP_NAMESPACE {
#endif
class TranslateDecoder : public Decoder {
public:
private:
};
{
}
{
}
{
for (size_t i = 0; i < n; i++)
return n;
}
// FIXME set unencodeable handler for underlying encoder
class TranslateEncoder : public RecoveringEncoder {
public:
void startFile(OutputByteStream *);
private:
enum { bufSize = 256 };
};
{
}
{
}
{
size_t j = 0;
for (; n > 0; s++, n--) {
if (c == illegalChar_) {
if (j > 0) {
j = 0;
}
handleUnencodable(*s, sbuf);
}
else {
if (j >= bufSize) {
j = 0;
}
buf_[j++] = c;
}
}
if (j > 0)
}
{
size_t i = 0;
for (;;) {
if (i == n) {
if (n > 0)
break;
}
if (c == illegalChar_) {
if (i > 0)
handleUnencodable(s[i], sbuf);
i++;
s += i;
n -= i;
i = 0;
}
else
s[i++] = c;
}
}
const CharsetInfo *charset,
{
}
{
if (decodeMap_.isNull()) {
if (iter) {
do {
if (n) {
}
}
}
}
}
}
{
if (encodeMap_.isNull()) {
if (iter) {
do {
if (n) {
}
}
}
}
}
}
unsigned TranslateCodingSystem::fixedBytesPerChar() const
{
return sub_->fixedBytesPerChar();
}
#ifdef SP_NAMESPACE
}
#endif