FBB::Tty(3) Controls echoing of characters entered at the terminal

SYNOPSIS

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

DESCRIPTION

Tty(3bobcat) objects can be used to control the echoing of characters entered at the terminal (usually at /dev/tty). Directly reading from /dev/tty allows programs to read information (e.g., passwords or pass phrases) even if the standard input stream is redirected to a file. Unless redirected, std::cin is connected to /dev/tty.

Tty(3bobcat) objects may be used as stand-alone objects or (usually anonymous) Tty(3bobcat) objects may be inserted into or extracted from streams. When inserting or extracting objects the involved streams are not affected; only the echoing of characters entered at /dev/tty is manipulated.

Tty(3bobcat)'s destructor does not reset the echo-state of /dev/tty to its original value. If that is required a Tty(3bobcat) object must be created first, calling its echo(Tty::RESET) member at the appropriate time.

NAMESPACE

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

INHERITS FROM

-

ENUM

The enum EchoType requests the type of echo-handling:

  • RESET is used to reset /dev/tty's state to the actual state when a Tty(3bobcat) object was constructed
  • ON is used to activate echoing of characters entered at /dev/tty.
  • OFF is used to suppress echoing of characters entered at /dev/tty.

CONSTRUCTORS

  • Tty():
    The current state of /dev/tty is saved.
  • Tty(EchoType type):
    The current state of /dev/tty is saved, and the object's member echo(type) is called. Default copy and move constructors are available.

OVERLOADED OPERATORS

  • std::istream &operator>>(std::istream &in, Tty const &tty):
    The extraction operator does not affect in, but /dev/tty's state is set according to the way the tty object was constructed.
  • std::ostream &operator<<(std::ostream &out, Tty const &tty):
    The insertion operator does not affect out, but /dev/tty's state is set according to the way the tty object was constructed. Default copy and move assignment operators are available.

MEMBER FUNCTION

  • echo(EchoType type):
    /Dev/tty's state is set according to the EchoType value that is passed to this member.

EXAMPLE

#include <iostream>
#include <string>
#include <bobcat/tty>
using namespace std;
using namespace FBB;
int main()
{
    cout << "Enter some text (not echoed): " << Tty(Tty::OFF);
    string line;
    getline(cin, line);
    cout << "\n"
            "You entered: `" << line << "'\n";
    
    cout << "Enter some text (echoed): ";
    getline(cin >> Tty(Tty::ON), line);
    cout << "You entered: `" << line << "'\n";
}

FILES

bobcat/tty - 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]).