Provided by: libbobcat-dev_4.08.02-2build1_amd64 bug

NAME

       FBB::IQuotedPrintableStreambuf  -  Input  Filtering  stream  buffer doing quoted printable
       conversions

SYNOPSIS

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

DESCRIPTION

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

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

       Quoted-printable  encoding  is  sometimes   used   in   e-mail   attachments   (See   also
       https://en.wikipedia.org/wiki/Quoted-printable   and  https://www.ietf.org/rfc/rfc2045.txt
       (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.

NAMESPACE

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

INHERITS FROM

       FBB::IFilterStreambuf

MEMBER FUNCTIONS

       All members of FBB::IFilterStreambuf are available, as IQuotedPrintableStreambuf  inherits
       from this class.

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

ENUMERATION

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

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

CONSTRUCTOR

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

              - IQuotedPrintableStreambuf<ENCODE> objects perform quoted-printable encoding;
              - IQuotedPrintableStreambuf<DECODE> objects perform quoted-printable decoding;
              - IQuotedPrintableStreambuf<CryptType> objects obtain the bytes to encode or decode
              from std::istream &in;
              - The IFilterStreambuf 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 are not available.

EXAMPLE

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

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

       The std::istream din object  is  initialized  with  the  IQuotedPrintableStreambuf<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/iquotedprintablestreambuf>

       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’:
               {
                   IQuotedPrintableStreambuf<ENCODE> encode(cin);
                   istream ein(&encode);
                   cout << ein.rdbuf();
               }
               break;

               case ’d’:
               {
                   IQuotedPrintableStreambuf<DECODE> decode(cin);
                   istream din(&decode);
                   cout << din.rdbuf();
               }
               break;

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

                   IQuotedPrintableStreambuf<DECODE> decode(ein);
                   istream din(&decode);
                   cout << din.rdbuf();
               }
               break;
           }
       }

FILES

       bobcat/iquotedprintablestreambuf - defines the class interface

SEE ALSO

       bobcat(7),          isymcryptstreambuf(3bobcat),          iquotedprintablestream(3bobcat),
       ifilterstreambuf(3bobcat), ofilterstreambuf(3bobcat), std::streambuf.

BUGS

       None reported.

DISTRIBUTION FILES

       o      bobcat_4.08.02-x.dsc: detached signature;

       o      bobcat_4.08.02-x.tar.gz: source archive;

       o      bobcat_4.08.02-x_i386.changes: change log;

       o      libbobcat1_4.08.02-x_*.deb: debian package holding the libraries;

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

       o      http://sourceforge.net/projects/bobcat: public archive location;

BOBCAT

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

COPYRIGHT

       This is free software, distributed under the terms  of  the  GNU  General  Public  License
       (GPL).

AUTHOR

       Frank B. Brokken (f.b.brokken@rug.nl).