Provided by: libbobcat-dev_5.00.02-2_amd64 bug


       FBB::IQuotedPrintableBuf   -   Input   Filtering  stream  buffer  doing  quoted  printable


       #include <bobcat/iquotedprintablebuf>
       Linking option: -lbobcat


       The information made available by IQuotedPrintableBuf objects is  either  quoted-printable
       encoded  or decoded. The information to convert is read by IQuotedPrintableBuf objects via
       std::istream objects.

       The class IQuotedPrintableBuf  is  a  class  template,  using  a  FBB::CryptType  template
       non-type  parameter. Objects of the class FBB::IQuotedPrintableBuf<FBB::ENCODE> encode the
       information they  receive,  objects  of  the  class  FBB::IQuotedPrintableBuf<FBB::DECODE>
       decode the information they receive. See also section ENUMERATION below.

       Quoted-printable   encoding   is   sometimes   used   in   e-mail  attachments  (See  also  and
       (section 6.7)). Its main characteristics are:

       o      Lines are at most 76 characters long;

       o      Lines longer than 76 characters are split into sub-lines, using =\n combinations to
              indicate `soft line breaks’. Lines not ending in soft line breaks indicate true end
              of lines.

       o      All  printable  characters, except for the = character and (final) blank characters
              just before the end of lines, are copied as-is, all other characters are escaped by
              writing  =XX  sequences,  with  XX  being the ascii-character representation of the
              hexadecimal value of the escaped character (e.g., the =  character  is  encoded  as
              =3D,  a final space before end-of-line is encoded as =20, a final tab as =09). Only
              capital letters are used when escaping characters.


       All constructors, members, operators and manipulators, mentioned  in  this  man-page,  are
       defined in the namespace FBB.




       All  members  of  FBB::IFilterBuf are available, as IQuotedPrintableBuf inherits from this

       Overloaded move and/or copy assignment operators are not available.


       IQuotedPrintableBuf  objects  either  encode  or  decode   quoted-printable   information.
       IQuotedPrintableBuf  objects of the class FBB::IQuotedPrintableBuf<FBB::ENCODE> encode the
       data     they     receive,     IQuotedPrintableBuf     objects      of      the      class
       FBB::IQuotedPrintableBuf<FBB::DECODE> decode the data they receive.

       The  values  ENCODE  and  DECODE  are  defined  in  the enum CryptType, defined in the FBB


       o      IQuotedPrintableBuf<CryptType>(std::istream &in, size_t bufSize = 1000):
              This constructor initializes the streambuf.

              - IQuotedPrintableBuf<ENCODE> objects perform quoted-printable encoding;
              - IQuotedPrintableBuf<DECODE> objects perform quoted-printable decoding;
              - IQuotedPrintableBuf<CryptType> objects obtain the bytes to encode or decode  from
              std::istream &in;
              -  The  IFilterBuf base class is initialized with a buffer of size bufSize, using a
              lower bound of 100 characters.

              The constructor uses a configurable buffer size for reading. Characters  read  into
              the  buffer  which  are  not  part  of the actual quoted-printable encoded data are
              unavailable after completing the quoted-printable decoding. If  information  beyond
              the  quoted-printable  input block should remain available, then a buffer size of 1
              should be specified.

       Copy and move constructors (and assignment operators) are not available.


       The example shows the construction of IQuotedPrintableBuf<ENCODE> objects encode which are
       used  to  initialize  a  std::istream  object.  The  information read from this istream is
       quoted-printable encoded.

       IQuotedPrintableBuf<DECODE>  objects  read  quoted-printable  encoded   information   from
       std::istream objects, decoding the information.

       The  std::istream  din  object is initialized with the IQuotedPrintableBuf<DECODE> object,
       and its contents is sent to std::cout. The information that is presented at  std::cin  and
       that appears at std::cout should be identical.

       #include <iostream>
       #include <istream>

       #include <bobcat/iquotedprintablebuf>

       using namespace std;
       using namespace FBB;

       int main(int argc, char **argv)
           if (argc == 1)
               cout << "Usage: " << argv[0] << " [edb] < infile > outfile\n"
                           "to quoted printable -e-ncode, -d-ecode or -b-oth\n";
               return 0;

           switch (argv[1][0])
               case ’e’:
                   IQuotedPrintableBuf<ENCODE> encode(cin);
                   istream ein(&encode);
                   cout << ein.rdbuf();

               case ’d’:
                   IQuotedPrintableBuf<DECODE> decode(cin);
                   istream din(&decode);
                   cout << din.rdbuf();

               case ’b’:
                   IQuotedPrintableBuf<ENCODE> encode(cin);
                   istream ein(&encode);

                   IQuotedPrintableBuf<DECODE> decode(ein);
                   istream din(&decode);
                   cout << din.rdbuf();


       bobcat/iquotedprintablebuf - defines the class interface


       bobcat(7),          isymcryptstreambuf(3bobcat),          iquotedprintablestream(3bobcat),
       ifilterbuf(3bobcat), ofilterbuf(3bobcat), std::streambuf.


       None reported.


       o      bobcat_5.00.02-x.dsc: detached signature;

       o      bobcat_5.00.02-x.tar.gz: source archive;

       o      bobcat_5.00.02-x_i386.changes: change log;

       o      libbobcat1_5.00.02-x_*.deb: debian package holding the libraries;

       o      libbobcat1-dev_5.00.02-x_*.deb: debian package holding the libraries,  headers  and
              manual pages;

       o public archive location;


       Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.


       This  is  free  software,  distributed  under  the terms of the GNU General Public License


       Frank B. Brokken (