⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 identitycodingsystem.cxx

📁 SP是一个基于GNU C++编译器
💻 CXX
字号:
// Copyright (c) 1994 James Clark// See the file COPYING for copying permission.#include "splib.h"#include "IdentityCodingSystem.h"#include <limits.h>#ifdef SP_NAMESPACEnamespace SP_NAMESPACE {#endifclass IdentityDecoder : public Decoder {public:  size_t decode(Char *to, const char *from, size_t fromLen,		const char **rest);  Boolean convertOffset(unsigned long &offset) const;};class IdentityEncoder : public RecoveringEncoder {public:  IdentityEncoder();  void output(const Char *, size_t, OutputByteStream *);};IdentityCodingSystem::IdentityCodingSystem(){}Decoder *IdentityCodingSystem::makeDecoder() const{  return new IdentityDecoder;}Encoder *IdentityCodingSystem::makeEncoder() const{  return new IdentityEncoder;}Boolean IdentityCodingSystem::isIdentity() const{  return 1;}size_t IdentityDecoder::decode(Char *to, const char *from, size_t fromLen,			       const char **rest){  if (sizeof(Char) == sizeof(char) && from == (char *)to) {    *rest = from + fromLen;    return fromLen;  }  for (size_t n = fromLen; n > 0; n--)    *to++ = (unsigned char)*from++; // zero extend  *rest = from;  return fromLen;}Boolean IdentityDecoder::convertOffset(unsigned long &) const{  return true;}IdentityEncoder::IdentityEncoder(){}void IdentityEncoder::output(const Char *s, size_t n, OutputByteStream *sb){  if (sizeof(Char) != sizeof(char)) {    for (size_t i = 0; i < n; i++) {      Char c = s[i];      if (c > UCHAR_MAX)	handleUnencodable(c, sb);      else	sb->sputc((unsigned char)c);    }  }  else    sb->sputn((const char *)s, n);}#ifdef SP_NAMESPACE}#endif

⌨️ 快捷键说明

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