spent.cxx
来自「SP是一个基于GNU C++编译器」· CXX 代码 · 共 73 行
CXX
73 行
// Copyright (c) 1995 James Clark// See the file COPYING for copying permission.#include "config.h"#include "EntityApp.h"#include "InputSource.h"#include "OutputCharStream.h"#ifdef SP_NAMESPACEusing namespace SP_NAMESPACE;#endifclass SpentApp : public EntityApp {public: SpentApp(); void processOption(AppChar opt, const AppChar *arg); int processSysid(const StringC &);private: Boolean isNdata_; Boolean rawOutput_;};SP_DEFINE_APP(SpentApp)SpentApp::SpentApp(): rawOutput_(0), isNdata_(0){ registerOption('n'); registerOption('r');}void SpentApp::processOption(AppChar opt, const AppChar *arg){ switch (opt) { case 'n': isNdata_ = 1; if (!outputCodingSystem_) outputCodingSystem_ = codingSystemKit_->identityCodingSystem(); rawOutput_ = 1; break; case 'r': rawOutput_ = 1; break; default: EntityApp::processOption(opt, arg); break; }}int SpentApp::processSysid(const StringC &sysid){ InputSource *in = entityManager()->open(sysid, systemCharset(), InputSourceOrigin::make(), isNdata_ ? ExtendEntityManager::isNdata : 0, *this); if (!in) return 1; OutputCharStream *os = makeStdOut(); if (!rawOutput_) os = new RecordOutputCharStream(os); for (;;) { Xchar c = in->get(*this); if (c == InputSource::eE) break; in->extendToBufferEnd(); os->write(in->currentTokenStart(), in->currentTokenLength()); } delete os; return in->accessError();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?