mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-01-31 18:07:14 +01:00
4a6bfc086c
Switched to POCO library for unified platform/library interface. Deprecated the external module API. It was creating more problems than solving. Removed most built-in libraries in favor of system libraries for easier maintenance. Cleaned and secured code with help from static analyzers.
93 lines
1.2 KiB
C++
93 lines
1.2 KiB
C++
//
|
|
// EscapeHTMLStream.cpp
|
|
//
|
|
// Library: Net
|
|
// Package: Mail
|
|
// Module: EscapeHTMLStream
|
|
//
|
|
// Copyright (c) 2019, Applied Informatics Software Engineering GmbH.
|
|
// and Contributors.
|
|
//
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
//
|
|
|
|
|
|
#include "Poco/Net/EscapeHTMLStream.h"
|
|
|
|
|
|
namespace Poco {
|
|
namespace Net {
|
|
|
|
|
|
EscapeHTMLStreamBuf::EscapeHTMLStreamBuf(std::ostream& ostr):
|
|
_pOstr(&ostr)
|
|
{
|
|
}
|
|
|
|
|
|
EscapeHTMLStreamBuf::~EscapeHTMLStreamBuf()
|
|
{
|
|
}
|
|
|
|
|
|
int EscapeHTMLStreamBuf::readFromDevice()
|
|
{
|
|
return std::char_traits<char>::eof();
|
|
}
|
|
|
|
|
|
int EscapeHTMLStreamBuf::writeToDevice(char c)
|
|
{
|
|
switch (c)
|
|
{
|
|
case '<':
|
|
*_pOstr << "<";
|
|
break;
|
|
case '>':
|
|
*_pOstr << ">";
|
|
break;
|
|
case '"':
|
|
*_pOstr << """;
|
|
break;
|
|
case '&':
|
|
*_pOstr << "&";
|
|
break;
|
|
default:
|
|
_pOstr->put(c);
|
|
break;
|
|
}
|
|
return charToInt(c);
|
|
}
|
|
|
|
|
|
EscapeHTMLIOS::EscapeHTMLIOS(std::ostream& ostr): _buf(ostr)
|
|
{
|
|
poco_ios_init(&_buf);
|
|
}
|
|
|
|
|
|
EscapeHTMLIOS::~EscapeHTMLIOS()
|
|
{
|
|
}
|
|
|
|
|
|
EscapeHTMLStreamBuf* EscapeHTMLIOS::rdbuf()
|
|
{
|
|
return &_buf;
|
|
}
|
|
|
|
|
|
EscapeHTMLOutputStream::EscapeHTMLOutputStream(std::ostream& ostr):
|
|
EscapeHTMLIOS(ostr),
|
|
std::ostream(&_buf)
|
|
{
|
|
}
|
|
|
|
|
|
EscapeHTMLOutputStream::~EscapeHTMLOutputStream()
|
|
{
|
|
}
|
|
|
|
|
|
} } // namespace Poco::Net
|