libscotty - a Shell Construction ToolkiT; a simple and portable console library.
This API provides you with an instant, plug-and-play solution for a console (shell) with support for features like command completion and history. It makes use of the curses library, its windows system in particular, which means that either the software using libscotty (when using static linking) or the libscotty .so/.dll file (when using dynamic linking) must be staticly linked against it.
Libscotty was separated from another project of mine, q3mass, which required a user interface capable of printing output and receiving input simultaneously. While achieving this effect under POSIX OSs is pretty easy to do, it's not that simple under e.g. win32.
The library relies on the curses library. Ncurses is a standard package for most POSIX systems, and PDCurses is available for other platforms as well (including win32) at http://pdcurses.sourceforge.net/.
Libscotty doesn't provide many customization options and advanced curses features like window borders, colours, etc. because 1) the project is still at an early development stage and 2) I went for the plug-and-playness and simplicity. However, you can always retrieve the curses window handles using the SCT_GetWindowHandle function and use the curses API to manipulate them.
Some feature highlights:
Future versions will include more features, such as output window scrolling with the PgUp/PgDown keys.
I *do believe* the library is thread-safe, but I cannot guarantee it is. That is, I did implement a mutex system, but I am not sure I placed them in the right places.
Please see the file COPYING in the source's root directory for licensing and redistribution rights.