codingsystem.cxx

来自「SP是一个基于GNU C++编译器」· CXX 代码 · 共 115 行

CXX
115
字号
// Copyright (c) 1994 James Clark// See the file COPYING for copying permission.#ifdef __GNUG__#pragma implementation#endif#include "splib.h"#include "CodingSystem.h"#include <string.h>#ifdef SP_NAMESPACEnamespace SP_NAMESPACE {#endifInputCodingSystem::~InputCodingSystem(){}StringC InputCodingSystem::convertIn(const char *s) const{  Decoder *decoder = makeDecoder();  StringC str;  str.resize(strlen(s));  str.resize(decoder->decode(&str[0], s, strlen(s), &s));  delete decoder;  return str;}Boolean InputCodingSystem::isIdentity() const{  return 0;}OutputCodingSystem::~OutputCodingSystem(){}unsigned OutputCodingSystem::fixedBytesPerChar() const{  return 0;}String<char> OutputCodingSystem::convertOut(const StringC &str) const{  Encoder *encoder = makeEncoder();  StrOutputByteStream stream;  encoder->output(str.data(), str.size(), &stream);  delete encoder;  String<char> result;  stream.extractString(result);  result += '\0';  return result;}Decoder::Decoder(unsigned minBytesPerChar): minBytesPerChar_(minBytesPerChar){}Decoder::~Decoder(){}Boolean Decoder::convertOffset(unsigned long &) const{  return false;}Encoder::Encoder(){}Encoder::~Encoder(){}void Encoder::output(Char *s, size_t n, OutputByteStream *sp){  output((const Char *)s, n, sp);}void Encoder::startFile(OutputByteStream *){}void Encoder::handleUnencodable(Char, OutputByteStream *){}void Encoder::setUnencodableHandler(Handler *){}RecoveringEncoder::RecoveringEncoder(): unencodableHandler_(0){}void RecoveringEncoder::handleUnencodable(Char c, OutputByteStream *sbufp){  if (unencodableHandler_)    unencodableHandler_->handleUnencodable(c, sbufp);}void RecoveringEncoder::setUnencodableHandler(Handler *handler){  unencodableHandler_ = handler;}#ifdef SP_NAMESPACE}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?