diff options
-rw-r--r-- | include/tools/inetmime.hxx | 37 | ||||
-rw-r--r-- | tools/source/inet/inetmime.cxx | 27 | ||||
-rw-r--r-- | tools/source/inet/inetmsg.cxx | 2 |
3 files changed, 21 insertions, 45 deletions
diff --git a/include/tools/inetmime.hxx b/include/tools/inetmime.hxx index 8d4b01a22a90..657fc490dcf7 100644 --- a/include/tools/inetmime.hxx +++ b/include/tools/inetmime.hxx @@ -632,16 +632,15 @@ public: private: sal_uInt32 m_nColumn; sal_uInt32 m_nLineLengthLimit; + OStringBuffer m_aBuffer; -protected: /** Write a sequence of octets. @param pBegin Points to the start of the sequence, must not be null. @param pEnd Points past the end of the sequence, must be >= pBegin. */ - virtual void writeSequence(const sal_Char * pBegin, - const sal_Char * pEnd) = 0; + void writeSequence(const sal_Char * pBegin, const sal_Char * pEnd); /** Write a null terminated sequence of octets (without the terminating null). @@ -667,11 +666,11 @@ protected: const sal_Unicode * pEnd); public: - INetMIMEOutputSink(sal_uInt32 nTheColumn, sal_uInt32 nTheLineLengthLimit): + INetMIMEOutputSink( + sal_uInt32 nTheColumn = 0, + sal_uInt32 nTheLineLengthLimit= INetMIME::SOFT_LINE_LENGTH_LIMIT): m_nColumn(nTheColumn), m_nLineLengthLimit(nTheLineLengthLimit) {} - virtual ~INetMIMEOutputSink() {} - /** Get the current column. @return The current column (starting from zero). @@ -737,6 +736,11 @@ public: */ void writeLineEnd(); + OString takeBuffer() + { + return m_aBuffer.makeStringAndClear(); + } + /** A manipulator function that writes a line end (CR LF). @param rSink Some sink. @@ -785,27 +789,6 @@ inline void INetMIME::writeEscapeSequence(INetMIMEOutputSink & rSink, << sal_uInt8(getHexDigit(nChar & 15)); } -class INetMIMEStringOutputSink: public INetMIMEOutputSink -{ - OStringBuffer m_aBuffer; - - using INetMIMEOutputSink::writeSequence; - - virtual void writeSequence(const sal_Char * pBegin, - const sal_Char * pEnd) SAL_OVERRIDE; - -public: - inline INetMIMEStringOutputSink(sal_uInt32 nColumn = 0, - sal_uInt32 nLineLengthLimit - = INetMIME::SOFT_LINE_LENGTH_LIMIT): - INetMIMEOutputSink(nColumn, nLineLengthLimit) {} - - OString takeBuffer() - { - return m_aBuffer.makeStringAndClear(); - } -}; - class INetMIMEEncodedWordOutputSink { public: diff --git a/tools/source/inet/inetmime.cxx b/tools/source/inet/inetmime.cxx index faf350297025..bf22a5297aff 100644 --- a/tools/source/inet/inetmime.cxx +++ b/tools/source/inet/inetmime.cxx @@ -861,7 +861,7 @@ sal_Unicode const * INetMIME::scanParameters(sal_Unicode const * pBegin, } if (pParameters) { - INetMIMEStringOutputSink + INetMIMEOutputSink aSink(0, INetMIMEOutputSink::NO_LINE_LENGTH_LIMIT); while (p != pEnd) { @@ -890,7 +890,7 @@ sal_Unicode const * INetMIME::scanParameters(sal_Unicode const * pBegin, else if (p != pEnd && *p == '"') if (pParameters) { - INetMIMEStringOutputSink + INetMIMEOutputSink aSink(0, INetMIMEOutputSink::NO_LINE_LENGTH_LIMIT); bool bInvalid = false; for (++p;;) @@ -2838,9 +2838,15 @@ OUString INetMIME::decodeHeaderFieldBody(HeaderFieldType eType, return sDecoded; } -// INetMIMEOutputSink +void INetMIMEOutputSink::writeSequence(const sal_Char * pBegin, + const sal_Char * pEnd) +{ + OSL_ENSURE(pBegin && pBegin <= pEnd, + "INetMIMEOutputSink::writeSequence(): Bad sequence"); + + m_aBuffer.append(pBegin, pEnd - pBegin); +} -// virtual sal_Size INetMIMEOutputSink::writeSequence(const sal_Char * pSequence) { sal_Size nLength = rtl_str_getLength(pSequence); @@ -2848,7 +2854,6 @@ sal_Size INetMIMEOutputSink::writeSequence(const sal_Char * pSequence) return nLength; } -// virtual void INetMIMEOutputSink::writeSequence(const sal_Unicode * pBegin, const sal_Unicode * pEnd) { @@ -2874,18 +2879,6 @@ void INetMIMEOutputSink::writeLineEnd() m_nColumn = 0; } -// INetMIMEStringOutputSink - -// virtual -void INetMIMEStringOutputSink::writeSequence(const sal_Char * pBegin, - const sal_Char * pEnd) -{ - OSL_ENSURE(pBegin && pBegin <= pEnd, - "INetMIMEStringOutputSink::writeSequence(): Bad sequence"); - - m_aBuffer.append(pBegin, pEnd - pBegin); -} - // INetMIMEEncodedWordOutputSink static const sal_Char aEscape[128] diff --git a/tools/source/inet/inetmsg.cxx b/tools/source/inet/inetmsg.cxx index 099e6bf4915f..5debdf934c2f 100644 --- a/tools/source/inet/inetmsg.cxx +++ b/tools/source/inet/inetmsg.cxx @@ -46,7 +46,7 @@ void INetMIMEMessage::SetHeaderField_Impl ( const OUString &rValue, sal_uIntPtr &rnIndex) { - INetMIMEStringOutputSink aSink (0, 32767); /* weird the mime standard says that aline MUST not be longeur that 998 */ + INetMIMEOutputSink aSink (0, 32767); /* weird the mime standard says that aline MUST not be longeur that 998 */ INetMIME::writeHeaderFieldBody ( aSink, eType, rValue, osl_getThreadTextEncoding(), false); SetHeaderField_Impl ( |