FBB::mlm(3) Manipulator modifying left margins of OFoldStream

SYNOPSIS

#include <bobcat/ofoldstream> or
#include <bobcat/ofoldstreambuf>
Linking option: -lbobcat

DESCRIPTION

The mlm class implements a manipulator that can be inserted into OFoldStream objects to modify the stream's left margin by a requested amount. The request cannot result in a negative left margin value. If a negative left margin would be the arithmetic result of the request then left margin 0 will silently be used.

Depending on the tab-setting of the OFoldStream the inserted value represents the number of blank space characters or the number of tab-characters that will be added to the left margin.

The request will be processed at the next newline character or std::flush or std::endl manipulator that is inserted into the stream. If a line is still empty once an mlm object and a flush manipulator are inserted into the stream then the new left margin will be effective at the next word inserted into that line (cf., the example section below)

A bad_cast exception is thrown when the manipulator is inserted into an ostream that is not using a OFoldStreambuf buffer.

NAMESPACE

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

INHERITS FROM

-

CONSTRUCTOR

  • mlm(int addValue):
    The standard copy constructor is available.

MEMBER FUNCTIONS

There are no public or protected member functions in this class.

EXAMPLE

    #include <iostream>
    #include <bobcat/ofoldstream>
    using namespace std;
    using namespace FBB;
    int main()
    {
        OFoldStream out(cout, 0, 80);
        out << "hello world (left margin is 0)" << mlm(4) << "\n"
               "this uses a 4 character wide left margin\n" << 
                mlm(-10) << flush <<
                "left margin -6 changed to 0, active on this line\n";
        return 0;
    }
        

FILES

bobcat/mlm - defines the class interface

BUGS

None Reported.

DISTRIBUTION FILES

  • bobcat_4.02.00-x.dsc: detached signature;
  • bobcat_4.02.00-x.tar.gz: source archive;
  • bobcat_4.02.00-x_i386.changes: change log;
  • libbobcat1_4.02.00-x_*.deb: debian package holding the libraries;
  • libbobcat1-dev_4.02.00-x_*.deb: debian package holding the libraries, headers and manual pages;
  • 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 ([email protected]).