To have a basic understanding on how the program works, read the comments in 
main.cc.

The basics of display the terminal information on the screen is:

           Input -> PTY -> Terminal -> Framebuffer -> Screen
                    ^ |
                    | '-> |OS Virtual
                    '---- |terminal

The keys pressed by the user on `Input` are sent to the `PTY`, that is 
connected to a virtual terminal. The information sent by the virtual terminal
is received by the `PTY` and sent to the `Terminal`, that'll process the
escape codes and send them to the `Framebuffer`, where the text is formatted
screenwise. `Screen` reads the data from the `Framebuffer` and display them
to the user using the old-style fonts.

The keys pressed by the user are sent from the OS to the terminal through a
key queue (Keyqueue).

Vintage Terminal has the following classes:

Main.............. Initialize everything (not a class)
Options........... Setup the options, read the arguments and the config file

Graphic/
  Chars........... Setup the characters with attributes, and apply the filters
  Font............ Load font, resizing it
  Input........... Read user input
  Screen.......... Display everything to the user

Terminal/
  Backtrack....... Controls the rolling back of screens
  Blink........... Controls the blinking of the cursor
  Clipboard....... Cut to/pastes from the OS clipboard
  CharAttr........ A pair of a character and its attribute
  Framebuffer..... Format the characters on the terminal
  Keyqueue........ Queue of characters sent from the user to the terminal
  Mouse........... Sends the mouse special chars to the terminal
  PTY............. Connect to the PTY (virtual terminal on the OS)
  Terminal........ Translate the escape sequences and special chars
    Vinterm....... Use custom escape codes

Filters/
  Filter.......... Each one of the filters that'll be applied to the image
    FilterBright
    FilterInexact
    FilterScanline

The following files are also distributed in the data/ dir:

mda9.bmp.......... A image containing the MDA (IBM) font
icon_16.bmp....... Application icon
vinterm.info...... Terminfo file containing the custom escape codes
vinterm_profile... A bash file to be read on the initialization of vinterm.
vinterm.desktop... Creates a link to the application in the WM

Directory icon/ contains the application icon in various sizes.

When checking for memory leaks, use valgrind with the suppresions file 
vinterm.supp. That'll hide X11, SDL and forkpty memory leaks.
