[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-frameworks-devel
Subject:    Re: Review Request 121047: KCodecs: add MIME codecs, improve {encode,  decode}RFC2047String()
From:       "David Faure" <faure () kde ! org>
Date:       2014-11-16 21:05:22
Message-ID: 20141116210522.22979.41107 () probe ! kde ! org
[Download RAW message or body]

--===============0388635483767640572==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121047/#review70478
-----------------------------------------------------------



autotests/CMakeLists.txt
<https://git.reviewboard.kde.org/r/121047/#comment49287>

    The more robust (and new in Qt5) way of doing this is QFINDTESTDATA in \
the test code.



autotests/base64benchmark.cpp
<https://git.reviewboard.kde.org/r/121047/#comment49288>

    should be static, it doesn't use any members



autotests/base64benchmark.cpp
<https://git.reviewboard.kde.org/r/121047/#comment49289>

    could use reserve(size) for speed



autotests/rfc2047test.cpp
<https://git.reviewboard.kde.org/r/121047/#comment49290>

    



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49293>

    missing space after first comma.
    
    (I would remove the second comma)



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49294>

    missing space after first comma.
    
    (I would remove the second comma)



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49295>

    The Qt way to do this is to take a pointer, rather than a non-const \
ref. It makes things clearer when reading the calling code.



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49292>

    @since 5.5, in all new methods



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49296>

    The Qt way would be to use an enum rather than a bool, again to make \
the calling code more readable.



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49297>

    I doubt this whole comment will be picked up by doxygen, it doesn't \
seem to document anything in particular...  
    Also, this particular line reads very strangely...



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49298>

    Any reason to use protected instead of private here?
    
    And then, if private, the two static things  should be file-static \
instead (no need to pollute the header)



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49299>

    typo, Constructs



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49300>

    this "withCRLF" everywhere is definitely worth an enum



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49301>

    please port the documentation to the new namespace. Grep for KMime \
everywhere...



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49302>

    kFatal is deprecated



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49303>

    move to cpp



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49304>

    That is brief indeed :-)
    
    (merge with next line)



src/kcodecs.h
<https://git.reviewboard.kde.org/r/121047/#comment49305>

    move all 3 members to a d pointer, if this class should indeed be \
public.



src/kcodecs.cpp
<https://git.reviewboard.kde.org/r/121047/#comment49307>

    These qDebugs should be commented out, or converted to qCDebug with a \
default to off.  
    No point in spamming users for data conversion errors, Qt definitely \
doesn't do that.



src/kcodecs.cpp
<https://git.reviewboard.kde.org/r/121047/#comment49308>

    Always use QMutexLocker instead.



src/kcodecs.cpp
<https://git.reviewboard.kde.org/r/121047/#comment49309>

    Yes, it does. Use value() instead.



src/kcodecs.cpp
<https://git.reviewboard.kde.org/r/121047/#comment49310>

    This could be a qWarning (programmer error).



src/kcodecs.cpp
<https://git.reviewboard.kde.org/r/121047/#comment49311>

    QScopedPointer would remove the need for all the "delete dec" statement \
in all 3 return paths.



src/kcodecsbase64.h
<https://git.reviewboard.kde.org/r/121047/#comment49314>

    Does this class actually need to be exported?
    
    Isn't it enough to let apps find codecs by name, just like in Qt?
    
    This removes the need for exporting all the codec implementation \
classes.



src/kcodecsbase64.h
<https://git.reviewboard.kde.org/r/121047/#comment49313>

    What a weird codec name??


- David Faure


On Nov. 14, 2014, 12:41 p.m., Daniel Vrátil wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/121047/
> -----------------------------------------------------------
> 
> (Updated Nov. 14, 2014, 12:41 p.m.)
> 
> 
> Review request for KDE Frameworks, KDEPIM-Libraries and David Faure.
> 
> 
> Repository: kcodecs
> 
> 
> Description
> -------
> 
> KCodecs currently provides only decodeRFC2047String(), and even that has \
> a comment saying "more robust implementation available in KMime". This \
> patch makes KCodecs::decodeRFC2047String() use the "more robust" \
> implementation from KMime, and adds KCodecs::encodeRFC2047String() \
> counterpart - also using implementation from KMime. 
> Since KMime also provides codecs implementing various MIME encodings \
> (quoted-printable, base64, uuencode), and the KMmime implementation of \
> decodeRFC2047String() depends on them, I also brought over all the MIME \
> codecs, and make use of them in all the KCodecs static methods. I believe \
> that having a proper and more robust implementation available in a more \
> generic framework like KCodecs is better, than if it was hidden in the \
> KMime framework. As a result, we can make KMime framework to use KCodecs \
> (it already depends on it anyway) for all the encodings, and only leave \
> classes for storing and parsing the "high-level" message/rfc822 messages, \
> and headers. It also reduces code duplication, and makes all applications \
> use the same encode/decode implementations (which is cool, right? :-)) 
> The main reason for this move is that I'm trying to move over to KCodecs \
> one small class from KPimUtils framework in kdepimlibs (which is our \
> universal dumping ground in kdepimlibs that I'm trying to get rid of) for \
> generic email address validation, but it depends on proper \
> implementations of encode/decodeRFC2047String methods, so I ended up \
> moving all this stuff :-) The tiny Email class is not part of this review \
> though, I'll wait for this to get in, then post another review. I believe \
> that this is a rather useful tool that could find wide adoption outside \
> PIM, therefor I decided not to move it from KPimUtils to KMime, but \
> instead move all the interesting, and multi-purpose parts from KMime into \
> KCodecs. 
> I also moved over related KMime unit-tests (that's why the review is so \
> big). 
> 
> Diffs
> -----
> 
> autotests/data/codec_q/all-encoded-decode.q PRE-CREATION 
> autotests/data/codec_q/all-encoded-decode.q.expected PRE-CREATION 
> autotests/data/codec_q/basic-encode PRE-CREATION 
> autotests/data/codec_q/basic-encode.expected PRE-CREATION 
> autotests/data/codec_q/null-decode.q PRE-CREATION 
> autotests/data/codec_q/null-decode.q.expected PRE-CREATION 
> autotests/data/codec_q/null-encode PRE-CREATION 
> autotests/data/codec_q/null-encode.expected PRE-CREATION 
> autotests/data/codec_quoted-printable/basic-decode.quoted-printable \
> PRE-CREATION  autotests/data/codec_quoted-printable/basic-decode.quoted-printable.expected \
> PRE-CREATION  autotests/data/codec_quoted-printable/basic-encode \
> PRE-CREATION  autotests/data/codec_quoted-printable/basic-encode.expected \
> PRE-CREATION  autotests/data/codec_quoted-printable/corrupt.quoted-printable \
> PRE-CREATION  autotests/data/codec_quoted-printable/corrupt.quoted-printable.expected \
> PRE-CREATION  autotests/data/codec_quoted-printable/corrupt2.quoted-printable \
> PRE-CREATION  autotests/data/codec_quoted-printable/corrupt2.quoted-printable.expected \
> PRE-CREATION  autotests/data/codec_quoted-printable/corrupt3.quoted-printable \
> PRE-CREATION  autotests/data/codec_quoted-printable/corrupt3.quoted-printable.expected \
> PRE-CREATION  autotests/data/codec_quoted-printable/corrupt4.quoted-printable \
> PRE-CREATION  autotests/data/codec_quoted-printable/corrupt4.quoted-printable.expected \
> PRE-CREATION  autotests/data/codec_quoted-printable/wrap-encode \
> PRE-CREATION  autotests/data/codec_quoted-printable/wrap-encode.expected \
> PRE-CREATION  autotests/data/codec_x-kmime-rfc2231/all-encoded.x-kmime-rfc2231-decode \
> PRE-CREATION  autotests/data/codec_x-kmime-rfc2231/all-encoded.x-kmime-rfc2231-decode.expected \
> PRE-CREATION  autotests/data/codec_x-kmime-rfc2231/basic-encode \
> PRE-CREATION  autotests/data/codec_x-kmime-rfc2231/basic-encode.expected \
> PRE-CREATION  autotests/data/codec_x-kmime-rfc2231/null-decode.x-kmime-rfc2231 \
> PRE-CREATION  autotests/CMakeLists.txt 4c41ba2 
> autotests/base64benchmark.cpp PRE-CREATION 
> autotests/codectest.h PRE-CREATION 
> autotests/codectest.cpp PRE-CREATION 
> autotests/data/codec_b/basic-decode.b PRE-CREATION 
> autotests/data/codec_b/basic-decode.b.expected PRE-CREATION 
> autotests/data/codec_b/basic-encode PRE-CREATION 
> autotests/data/codec_b/basic-encode.expected PRE-CREATION 
> autotests/data/codec_b/null-decode.b PRE-CREATION 
> autotests/data/codec_b/null-decode.b.expected PRE-CREATION 
> autotests/data/codec_b/null-encode PRE-CREATION 
> autotests/data/codec_b/null-encode.expected PRE-CREATION 
> autotests/data/codec_b/padding0-encode PRE-CREATION 
> autotests/data/codec_b/padding0-encode.expected PRE-CREATION 
> autotests/data/codec_b/padding1-encode PRE-CREATION 
> autotests/data/codec_b/padding1-encode.expected PRE-CREATION 
> autotests/data/codec_b/padding2-encode PRE-CREATION 
> autotests/data/codec_b/padding2-encode.expected PRE-CREATION 
> autotests/data/codec_base64/basic-decode.base64 PRE-CREATION 
> autotests/data/codec_base64/basic-decode.base64.expected PRE-CREATION 
> autotests/data/codec_base64/basic-encode PRE-CREATION 
> autotests/data/codec_base64/basic-encode.expected PRE-CREATION 
> autotests/data/codec_base64/corrupt.base64 PRE-CREATION 
> autotests/data/codec_base64/corrupt.base64.expected PRE-CREATION 
> autotests/data/codec_base64/very_small-encode PRE-CREATION 
> autotests/data/codec_base64/very_small-encode.expected PRE-CREATION 
> autotests/data/codec_x-kmime-rfc2231/null-decode.x-kmime-rfc2231.expected \
> PRE-CREATION  autotests/data/codec_x-kmime-rfc2231/null-encode \
> PRE-CREATION  autotests/data/codec_x-kmime-rfc2231/null-encode.expected \
> PRE-CREATION  autotests/data/codec_x-uuencode/basic-decode.x-uuencode \
> PRE-CREATION  autotests/data/codec_x-uuencode/basic-decode.x-uuencode.expected \
> PRE-CREATION  autotests/kcodecstest.h PRE-CREATION 
> autotests/kcodecstest.cpp PRE-CREATION 
> autotests/rfc2047test.h PRE-CREATION 
> autotests/rfc2047test.cpp PRE-CREATION 
> src/CMakeLists.txt adc0f2a 
> src/kcodecs.h 48effbb 
> src/kcodecs.cpp 4fd660d 
> src/kcodecsbase64.h PRE-CREATION 
> src/kcodecsbase64.cpp PRE-CREATION 
> src/kcodecsidentity.h PRE-CREATION 
> src/kcodecsidentity.cpp PRE-CREATION 
> src/kcodecsqp.h PRE-CREATION 
> src/kcodecsqp.cpp PRE-CREATION 
> src/kcodecsuuencode.h PRE-CREATION 
> src/kcodecsuuencode.cpp PRE-CREATION 
> 
> Diff: https://git.reviewboard.kde.org/r/121047/diff/
> 
> 
> Testing
> -------
> 
> Builds, all unit-tests pass.
> 
> 
> Thanks,
> 
> Daniel Vrátil
> 
> 


--===============0388635483767640572==
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 8bit




<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: \
1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; \
-webkit-border-radius: 6px;">  <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/121047/">https://git.reviewboard.kde.org/r/121047/</a>
  </td>
    </tr>
   </table>
   <br />











<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327021#file327021line24" \
style="color: black; font-weight: bold; text-decoration: \
underline;">autotests/CMakeLists.txt</a>  <span style="font-weight: \
normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">24</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="nb">set_target_properties</span><span class="p">(</span><span \
class="s">codecstest</span> <span class="s">PROPERTIES</span> <span \
class="s">COMPILE_FLAGS</span> <span class="s">-DTEST_DATA_DIR=</span><span \
class="s2">&quot;\\&quot;</span><span class="o">${</span><span \
class="nv">CMAKE_CURRENT_SOURCE_DIR</span><span class="o">}</span><span \
class="s">/data\\</span><span class="s2">&quot;&quot;</span><span \
class="p">)</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">The more robust (and new in \
Qt5) way of doing this is QFINDTESTDATA in the test code.</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327022#file327022line32" \
style="color: black; font-weight: bold; text-decoration: \
underline;">autotests/base64benchmark.cpp</a>  <span style="font-weight: \
normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">32</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">QByteArray</span> <span class="n">fillByteArray</span><span \
class="p">(</span><span class="kt">int</span> <span \
class="n">size</span><span class="p">)</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">should be static, it doesn't \
use any members</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327022#file327022line35" \
style="color: black; font-weight: bold; text-decoration: \
underline;">autotests/base64benchmark.cpp</a>  <span style="font-weight: \
normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">35</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="n">QByteArray</span> <span class="n">result</span><span \
class="p">;</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">could use reserve(size) for \
speed</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327082#file327082line6" \
style="color: black; font-weight: bold; text-decoration: \
underline;">autotests/rfc2047test.cpp</a>  <span style="font-weight: \
normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">6</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm">    \
License version 2 as published by the Free Software \
Foundation.</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line272" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">270</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm"> * \
Decodes string @p src according to RFC2047,i.e., the \
construct</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">missing space after first \
comma.</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">(I would remove the second \
comma)</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line272" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">270</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm"> * \
Decodes string @p src according to RFC2047,i.e., the \
construct</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">missing space after first \
comma.</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">(I would remove the second \
comma)</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line276" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">274</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm"> * \
@param usedCS    the detected charset is returned here</span></pre></td>  \
</tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">The Qt way to do this is to \
take a pointer, rather than a non-const ref. It makes things clearer when \
reading the calling code.</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line282" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">280</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm"> \
*/</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">@since 5.5, in all new \
methods</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line285" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">283</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                     \
<span class="kt">bool</span> <span class="n">forceCS</span> <span \
class="o">=</span> <span class="nb">false</span><span \
class="p">);</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">The Qt way would be to use an \
enum rather than a bool, again to make the calling code more \
readable.</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line305" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">303</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm">  \
Defines the classes Codec class.</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">I doubt this whole comment \
will be picked up by doxygen, it doesn't seem to document anything in \
particular...</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Also, this particular line \
reads very strangely...</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line350" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">348</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="nl">protected:</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Any reason to use protected \
instead of private here?</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">And then, if \
private, the two static things  should be file-static instead (no need to \
pollute the header)</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line356" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">354</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm">    \
Contructs the codec.</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">typo, Constructs</p></pre>  \
</div> </div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line402" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">400</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">virtual</span> <span class="n">Encoder</span> <span \
class="o">*</span><span class="n">makeEncoder</span><span \
class="p">(</span><span class="kt">bool</span> <span \
class="n">withCRLF</span> <span class="o">=</span> <span \
class="nb">false</span><span class="p">)</span> <span \
class="k">const</span> <span class="o">=</span> <span \
class="mi">0</span><span class="p">;</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">this "withCRLF" everywhere is \
definitely worth an enum</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line426" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">424</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm">    \
KMime::Codec *codec = KMime::Codec::codecForName( &quot;base64&quot; \
);</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">please port the documentation \
to the new namespace. Grep for KMime everywhere...</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line427" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">425</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm">    \
kFatal( !codec ) &lt;&lt; &quot;no base64 codec \
found!?&quot;;</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">kFatal is \
deprecated</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line527" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">525</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="k">static</span> <span class="kt">void</span> <span \
class="n">fillDictionary</span><span class="p">();</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">move to cpp</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line654" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">652</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm">  \
@brief</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">That is brief indeed :-)</p> \
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">(merge with next line)</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327084#file327084line751" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: \
center;">  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: \
0; ">KCODECS_EXPORT QByteArray base64Decode(const QByteArray \
&amp;in);</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">749</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="kt">char</span> <span class="n">mOutputBuffer</span><span \
class="p">[</span> <span class="n">maxBufferedChars</span> <span \
class="p">];</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">move all 3 members to a d \
pointer, if this class should indeed be public.</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327085#file327085line440" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.cpp</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">262</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                \
<span class="n">qDebug</span><span class="p">()</span> <span \
class="o">&lt;&lt;</span> <span class="s">&quot;Premature end of encoded \
word&quot;</span><span class="p">;</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">These qDebugs should be \
commented out, or converted to qCDebug with a default to off.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">No point in spamming users for data \
conversion errors, Qt definitely doesn't do that.</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327085#file327085line846" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.cpp</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">565</font></th>  <td bgcolor="#fdfebc" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    \
<span class="n">QByteArray</span> <span class="n">out</span><span \
class="p">;</span></pre></td>  <th bgcolor="#e9eaa8" style="border-left: \
1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">557</font></th>  <td bgcolor="#fdfebc" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">dictLock</span><span class="o">-&gt;</span><span \
class="n">lock</span><span class="p">();</span> <span class="c1">// protect \
&quot;all&quot;</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Always use QMutexLocker \
instead.</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327085#file327085line853" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.cpp</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">564</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">Codec</span> <span class="o">*</span><span class="n">codec</span> \
<span class="o">=</span> <span class="p">(</span><span \
class="o">*</span><span class="n">all</span><span class="p">)[</span> <span \
class="n">lowerName</span> <span class="p">];</span>   <span class="c1">// \
FIXME: operator[] adds an entry into the hash</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Yes, it does. Use value() \
instead.</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327085#file327085line857" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.cpp</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">568</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="n">qDebug</span><span class="p">()</span> <span \
class="o">&lt;&lt;</span> <span class="s">&quot;Unknown codec </span><span \
class="se">\&quot;</span><span class="s">&quot;</span> <span \
class="o">&lt;&lt;</span> <span class="n">name</span> <span \
class="o">&lt;&lt;</span> <span class="s">&quot;</span><span \
class="se">\&quot;</span><span class="s"> requested!&quot;</span><span \
class="p">;</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">This could be a qWarning \
(programmer error).</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327085#file327085line993" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecs.cpp</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">662</font></th>  <td bgcolor="#fdfebc" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    \
<span class="n">QChar</span> <span class="n">encoding</span><span \
class="p">;</span></pre></td>  <th bgcolor="#e9eaa8" style="border-left: \
1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">654</font></th>  <td bgcolor="#fdfebc" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">Decoder</span> <span class="o">*</span><span class="n">dec</span> \
<span class="o">=</span> <span class="n">makeDecoder</span><span \
class="p">(</span><span class="n">withCRLF</span><span \
class="p">);</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">QScopedPointer would remove \
the need for all the "delete dec" statement in all 3 return \
paths.</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327086#file327086line140" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecsbase64.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">140</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="n">class</span> <span class="n">KCODECS_EXPORT</span> <span \
class="n">Rfc2047BEncodingCodec</span> <span class="o">:</span> <span \
class="n">public</span> <span class="n">Base64Codec</span></pre></td>  \
</tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Does this class actually need \
to be exported?</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Isn't it enough to let apps \
find codecs by name, just like in Qt?</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">This removes the need for exporting all the codec implementation \
classes.</p></pre>  </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid \
#C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid \
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/121047/diff/1/?file=327086#file327086line161" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/kcodecsbase64.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
"></pre></td>  <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; \
border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">161</font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="k">return</span> <span class="s">&quot;b&quot;</span><span \
class="p">;</span></pre></td>  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">What a weird codec \
name??</p></pre>  </div>
</div>
<br />



<p>- David Faure</p>


<br />
<p>On November 14th, 2014, 12:41 p.m. UTC, Daniel Vrátil wrote:</p>









<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" \
style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: \
6px; -webkit-border-radius: 6px;">  <tr>
  <td>

<div>Review request for KDE Frameworks, KDEPIM-Libraries and David \
Faure.</div> <div>By Daniel Vrátil.</div>


<p style="color: grey;"><i>Updated Nov. 14, 2014, 12:41 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kcodecs
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description \
</h1>  <table width="100%" bgcolor="#ffffff" cellspacing="0" \
cellpadding="10" style="border: 1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">KCodecs currently provides \
only decodeRFC2047String(), and even that has a comment saying "more robust \
implementation available in KMime". This patch makes \
KCodecs::decodeRFC2047String() use the "more robust" implementation from \
KMime, and adds KCodecs::encodeRFC2047String() counterpart - also using \
implementation from KMime.</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">Since KMime \
also provides codecs implementing various MIME encodings (quoted-printable, \
base64, uuencode), and the KMmime implementation of decodeRFC2047String() \
depends on them, I also brought over all the MIME codecs, and make use of \
them in all the KCodecs static methods. I believe that having a proper and \
more robust implementation available in a more generic framework like \
KCodecs is better, than if it was hidden in the KMime framework. As a \
result, we can make KMime framework to use KCodecs (it already depends on \
it anyway) for all the encodings, and only leave classes for storing and \
parsing the "high-level" message/rfc822 messages, and headers. It also \
reduces code duplication, and makes all applications use the same \
encode/decode implementations (which is cool, right? :-))</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">The main reason for this move is that I'm \
trying to move over to KCodecs one small class from KPimUtils framework in \
kdepimlibs (which is our universal dumping ground in kdepimlibs that I'm \
trying to get rid of) for generic email address validation, but it depends \
on proper implementations of encode/decodeRFC2047String methods, so I ended \
up moving all this stuff :-) The tiny Email class is not part of this \
review though, I'll wait for this to get in, then post another review. I \
believe that this is a rather useful tool that could find wide adoption \
outside PIM, therefor I decided not to move it from KPimUtils to KMime, but \
instead move all the interesting, and multi-purpose parts from KMime into \
KCodecs.</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">I also moved over related \
KMime unit-tests (that's why the review is so big).</p></pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing \
</h1> <table width="100%" bgcolor="#ffffff" cellspacing="0" \
cellpadding="10" style="border: 1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Builds, all unit-tests \
pass.</p></pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> \
</h1> <ul style="margin-left: 3em; padding-left: 0;">

 <li>autotests/data/codec_q/all-encoded-decode.q <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_q/all-encoded-decode.q.expected <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_q/basic-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_q/basic-encode.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_q/null-decode.q <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_q/null-decode.q.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_q/null-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_q/null-encode.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/basic-decode.quoted-printable \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/basic-decode.quoted-printable.expected \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/basic-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/basic-encode.expected <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/corrupt.quoted-printable <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/corrupt.quoted-printable.expected \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/corrupt2.quoted-printable <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/corrupt2.quoted-printable.expected \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/corrupt3.quoted-printable <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/corrupt3.quoted-printable.expected \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/corrupt4.quoted-printable <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/corrupt4.quoted-printable.expected \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/wrap-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_quoted-printable/wrap-encode.expected <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-kmime-rfc2231/all-encoded.x-kmime-rfc2231-decode \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-kmime-rfc2231/all-encoded.x-kmime-rfc2231-decode.expected \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-kmime-rfc2231/basic-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-kmime-rfc2231/basic-encode.expected <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-kmime-rfc2231/null-decode.x-kmime-rfc2231 <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/CMakeLists.txt <span style="color: \
grey">(4c41ba2)</span></li>

 <li>autotests/base64benchmark.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/codectest.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/codectest.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/basic-decode.b <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/basic-decode.b.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/basic-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/basic-encode.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/null-decode.b <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/null-decode.b.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/null-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/null-encode.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/padding0-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/padding0-encode.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/padding1-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/padding1-encode.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/padding2-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_b/padding2-encode.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_base64/basic-decode.base64 <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_base64/basic-decode.base64.expected <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_base64/basic-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_base64/basic-encode.expected <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_base64/corrupt.base64 <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_base64/corrupt.base64.expected <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_base64/very_small-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_base64/very_small-encode.expected <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-kmime-rfc2231/null-decode.x-kmime-rfc2231.expected \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-kmime-rfc2231/null-encode <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-kmime-rfc2231/null-encode.expected <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-uuencode/basic-decode.x-uuencode <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/data/codec_x-uuencode/basic-decode.x-uuencode.expected <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>autotests/kcodecstest.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/kcodecstest.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/rfc2047test.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>autotests/rfc2047test.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>src/CMakeLists.txt <span style="color: grey">(adc0f2a)</span></li>

 <li>src/kcodecs.h <span style="color: grey">(48effbb)</span></li>

 <li>src/kcodecs.cpp <span style="color: grey">(4fd660d)</span></li>

 <li>src/kcodecsbase64.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>src/kcodecsbase64.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>src/kcodecsidentity.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>src/kcodecsidentity.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>src/kcodecsqp.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/kcodecsqp.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/kcodecsuuencode.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>src/kcodecsuuencode.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/121047/diff/" \
style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>








  </div>
 </body>
</html>


--===============0388635483767640572==--



_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic