[Libreoffice-commits] core.git: include/tools tools/source

Noel Grandin noel.grandin at collabora.co.uk
Mon Nov 13 06:14:34 UTC 2017


 include/tools/inetmime.hxx     |   60 -----------------------------------
 tools/source/inet/inetmime.cxx |   69 ++++++++++++++++-------------------------
 2 files changed, 27 insertions(+), 102 deletions(-)

New commits:
commit 508b60b7fd9270cdc5df8cbe5b733b4f6ea8575f
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Fri Nov 10 11:41:02 2017 +0200

    inline INetMIMEOutputSink
    
    Change-Id: Id76cf021658936301dd6b9685cafe7ece7ffa228
    Reviewed-on: https://gerrit.libreoffice.org/44589
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/tools/inetmime.hxx b/include/tools/inetmime.hxx
index 75af8b41f1d3..11208eae50ef 100644
--- a/include/tools/inetmime.hxx
+++ b/include/tools/inetmime.hxx
@@ -240,66 +240,6 @@ inline sal_uInt32 INetMIME::getUTF32Character(const sal_Unicode *& rBegin,
         return *rBegin++;
 }
 
-class INetMIMEOutputSink
-{
-private:
-    OStringBuffer m_aBuffer;
-
-    /** 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.
-     */
-    void writeSequence(const sal_Char * pBegin, const sal_Char * pEnd);
-
-    /** Write a null terminated sequence of octets (without the terminating
-        null).
-
-        @param pOctets  A null terminated sequence of octets, must not be
-        null.
-     */
-    void writeSequence(const sal_Char * pSequence);
-
-public:
-
-    /** Write a single octet.
-
-        @param nOctet  Some octet.
-
-        @return  This instance.
-     */
-    inline INetMIMEOutputSink & operator <<(sal_Char nOctet);
-
-    /** Write a null terminated sequence of octets (without the terminating
-        null).
-
-        @param pOctets  A null terminated sequence of octets, must not be
-        null.
-
-        @return  This instance.
-     */
-    inline INetMIMEOutputSink & operator <<(const sal_Char * pOctets);
-
-    OString takeBuffer()
-    {
-        return m_aBuffer.makeStringAndClear();
-    }
-};
-
-
-inline INetMIMEOutputSink & INetMIMEOutputSink::operator <<(sal_Char nOctet)
-{
-    writeSequence(&nOctet, &nOctet + 1);
-    return *this;
-}
-
-inline INetMIMEOutputSink & INetMIMEOutputSink::operator <<(const sal_Char *
-                                                                pOctets)
-{
-    writeSequence(pOctets);
-    return *this;
-}
 
 #endif
 
diff --git a/tools/source/inet/inetmime.cxx b/tools/source/inet/inetmime.cxx
index 0be1ee62d8b2..0ec6bcdbb70e 100644
--- a/tools/source/inet/inetmime.cxx
+++ b/tools/source/inet/inetmime.cxx
@@ -197,38 +197,38 @@ inline sal_Unicode * putUTF32Character(sal_Unicode * pBuffer,
     return pBuffer;
 }
 
-void writeUTF8(INetMIMEOutputSink & rSink, sal_uInt32 nChar)
+void writeUTF8(OStringBuffer & rSink, sal_uInt32 nChar)
 {
     // See RFC 2279 for a discussion of UTF-8.
     DBG_ASSERT(nChar < 0x80000000, "writeUTF8(): Bad char");
 
     if (nChar < 0x80)
-        rSink << sal_Char(nChar);
+        rSink.append(sal_Char(nChar));
     else if (nChar < 0x800)
-        rSink << sal_Char(nChar >> 6 | 0xC0)
-              << sal_Char((nChar & 0x3F) | 0x80);
+        rSink.append(sal_Char(nChar >> 6 | 0xC0))
+             .append(sal_Char((nChar & 0x3F) | 0x80));
     else if (nChar < 0x10000)
-        rSink << sal_Char(nChar >> 12 | 0xE0)
-              << sal_Char((nChar >> 6 & 0x3F) | 0x80)
-              << sal_Char((nChar & 0x3F) | 0x80);
+        rSink.append(sal_Char(nChar >> 12 | 0xE0))
+             .append(sal_Char((nChar >> 6 & 0x3F) | 0x80))
+             .append(sal_Char((nChar & 0x3F) | 0x80));
     else if (nChar < 0x200000)
-        rSink << sal_Char(nChar >> 18 | 0xF0)
-              << sal_Char((nChar >> 12 & 0x3F) | 0x80)
-              << sal_Char((nChar >> 6 & 0x3F) | 0x80)
-              << sal_Char((nChar & 0x3F) | 0x80);
+        rSink.append(sal_Char(nChar >> 18 | 0xF0))
+             .append(sal_Char((nChar >> 12 & 0x3F) | 0x80))
+             .append(sal_Char((nChar >> 6 & 0x3F) | 0x80))
+             .append(sal_Char((nChar & 0x3F) | 0x80));
     else if (nChar < 0x4000000)
-        rSink << sal_Char(nChar >> 24 | 0xF8)
-              << sal_Char((nChar >> 18 & 0x3F) | 0x80)
-              << sal_Char((nChar >> 12 & 0x3F) | 0x80)
-              << sal_Char((nChar >> 6 & 0x3F) | 0x80)
-              << sal_Char((nChar & 0x3F) | 0x80);
+        rSink.append(sal_Char(nChar >> 24 | 0xF8))
+             .append(sal_Char((nChar >> 18 & 0x3F) | 0x80))
+             .append(sal_Char((nChar >> 12 & 0x3F) | 0x80))
+             .append(sal_Char((nChar >> 6 & 0x3F) | 0x80))
+             .append(sal_Char((nChar & 0x3F) | 0x80));
     else
-        rSink << sal_Char(nChar >> 30 | 0xFC)
-              << sal_Char((nChar >> 24 & 0x3F) | 0x80)
-              << sal_Char((nChar >> 18 & 0x3F) | 0x80)
-              << sal_Char((nChar >> 12 & 0x3F) | 0x80)
-              << sal_Char((nChar >> 6 & 0x3F) | 0x80)
-              << sal_Char((nChar & 0x3F) | 0x80);
+        rSink.append(sal_Char(nChar >> 30 | 0xFC))
+             .append(sal_Char((nChar >> 24 & 0x3F) | 0x80))
+             .append(sal_Char((nChar >> 18 & 0x3F) | 0x80))
+             .append(sal_Char((nChar >> 12 & 0x3F) | 0x80))
+             .append(sal_Char((nChar >> 6 & 0x3F) | 0x80))
+             .append(sal_Char((nChar & 0x3F) | 0x80));
 }
 
 bool translateUTF8Char(const sal_Char *& rBegin,
@@ -691,7 +691,7 @@ sal_Unicode const * scanParameters(sal_Unicode const * pBegin,
             }
             if (pParameters)
             {
-                INetMIMEOutputSink aSink;
+                OStringBuffer aSink;
                 while (p != pEnd)
                 {
                     auto q = p;
@@ -705,14 +705,14 @@ sal_Unicode const * scanParameters(sal_Unicode const * pBegin,
                         int nWeight2 = INetMIME::getHexWeight(p[1]);
                         if (nWeight1 >= 0 && nWeight2 >= 0)
                         {
-                            aSink << sal_Char(nWeight1 << 4 | nWeight2);
+                            aSink.append(sal_Char(nWeight1 << 4 | nWeight2));
                             p += 2;
                             continue;
                         }
                     }
                     writeUTF8(aSink, nChar);
                 }
-                aValue = aSink.takeBuffer();
+                aValue = aSink.makeStringAndClear();
             }
             else
                 while (p != pEnd && (isTokenChar(*p) || !rtl::isAscii(*p)))
@@ -721,7 +721,7 @@ sal_Unicode const * scanParameters(sal_Unicode const * pBegin,
         else if (p != pEnd && *p == '"')
             if (pParameters)
             {
-                INetMIMEOutputSink aSink;
+                OStringBuffer aSink;
                 bool bInvalid = false;
                 for (++p;;)
                 {
@@ -756,7 +756,7 @@ sal_Unicode const * scanParameters(sal_Unicode const * pBegin,
                 }
                 if (bInvalid)
                     break;
-                aValue = aSink.takeBuffer();
+                aValue = aSink.makeStringAndClear();
             }
             else
             {
@@ -1469,19 +1469,4 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody)
     return sDecoded;
 }
 
-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);
-}
-
-void INetMIMEOutputSink::writeSequence(const sal_Char * pSequence)
-{
-    sal_Size nLength = rtl_str_getLength(pSequence);
-    writeSequence(pSequence, pSequence + nLength);
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list