Create a C/C++ Curses-based frontend that compiles on Linux and FreeBSD.
I will be calling this program in the format of:
frontend [options] program [program's options]
if I was using a text-based script that I needed screen control, I would use this frontend.
## Deliverables
C/C++ Curses-based Frontend
Run:
frontend [options] program [program's options]
Options:
Assuming a window with 80 columns and 24 rows:
Line 24 is the "input line". User can type into this input line and when the
user pushes enter, the line is sent to STDIN of the program that's running
behind the frontend application.
Line 22-23 are "status lines". The contents of these lines can be modified by
the program running behind the frontend application sending a message to
STDERR with the prefix '##frontend(n)## where 'n' refers to a specific status
line.
Line 1 is also a "status line", similar to lines 22-23.
Lines 2-21 are the main window, with STDOUT and STDERR from the program running behind the frontend application being displayed in this section.
User should be able to specify how many status lines to show at the top of the window and how many to show at the bottom, above the input line. The
prefix noted above for changing the contents of the status lines should adapt
to the number of status lines active, with 1 being the top most status line.
Frontend must support ANSI colors for both text displayed in the main window as well as text in the status lines.
Frontend must support the window being resized while it is running and adapt accordingly.
Frontend must support scrollback. PgUp/ESC-p to scroll up a page.
PgDn/ESC-n to scroll down a page.
Frontend must support a command history (for commands typed on the input line) accessible via up-arrow for the last line sent and down arrow for the next line sent.
This is very similar to what the Unix program irssi looks like.
## Platform
Linux and FreeBSD.