//********************************************************************************
//* AnsiCmd link library and EarthPoints test application: Version History       *
//*                                                                              *
//* Author     : Mahlon R. Smith                                                 *
//*              Copyright (c) 2020-2023 Mahlon R. Smith, The Software Samurai   *
//*              On the web :            http://www.SoftwareSam.us/              *
//*                                                                              *
//*              Source code, binary, and CSS style definitions released under   *
//*                 GNU GPL version 3.                                           *
//*              Documentation released under:                                   *
//*                 GNU FDL version 1.3                                          *
//*                                                                              *
//* Date       : 21-Aug-2023                                                     *
//*                                                                              *
//* -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - *
//* Copyright Notice:                                                            *
//* This program is free software: you can redistribute it and/or modify it      *
//* under the terms of the GNU General Public License as published by the Free   *
//* Software Foundation, either version 3 of the License, or (at your option)    *
//* any later version.                                                           *
//*                                                                              *
//* This program is distributed in the hope that it will be useful, but          *
//* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY   *
//* or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License     *
//* for more details.                                                            *
//*                                                                              *
//* You should have received a copy of the GNU General Public License along      *
//* with this program.  If not, see <http://www.gnu.org/licenses/>.              *
//*                                                                              *
//* -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -    *
//* The full copyright notice for the package is located in 'ansicmd.info' and   *
//* 'ansicmd.html'.                                                              *
//*    Texinfo-format docs: info -f ansicmd.info -n 'Copyright Notice'           *
//*    HTML-format docs   : open 'ansicmd.html' in your favorite browser         *
//*                                                                              *
//* -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - *
//* Description:                                                                 *
//* Please see the description of package components in the 'README' file        *
//*                                                                              *
//********************************************************************************

Version History (most recent first):
- - - - - - - - - - - - - - - - - -
v: 0.00.04 21-Jul-2023
   -- Completed testing of conversion between setting attributes using ANSI 
      escape sequences and using bit-mapped settings.
   -- Completed implementation of RGB foreground/background attributes.
   -- Remove the 'normText' flag from the acaExpand class. It was unused.
   -- Implemented mix-and-match foreground/background color attributes.
      Previously, if foreground was indexed, the background also had to be 
      indexed. If foreground was RGB, then background also had to be RGB.
      Foreground and background settings are now independent.
   -- Implement ACWin method DrawLine(). This was formerly a stub.
   -- Add a "soft return" key to the group of special keys.
      Alt+Enter is recognized within multi-row fields of an skForm object, 
      and inserts a newline into the text. Note that under Wayland, currently
      Alt+Enter, Alt+Shift+Enter, Alt+Ctrl+Enter and Alt+Ctrl+Shift+Enter 
      all return the same hex sequence (1B 0A).
   -- Bug Fix: Corrected off-by-one error in acDrawLine().
   -- Bug Fix: Corrected error when drawing invisible window border.
   -- Cleaned up and/or removed some temporary debugging code.
   -- Major sections of the documentation are now complete, but are subject 
      to change as the project moves forward.
   -- Posted to website: 21-Aug-2023

v: 0.00.03 28-Mar-2023
   -- Implement the first effort at the ACWin class which defines a simple 
      "window" or dialog. This is not intended as a full-featured dialog 
      as implemented in the author's NcDialog API which is based on the 
      ncurses library. Instead, it is a lean, no-nonsense window for 
      display of information and basic interaction with the user.
   -- Clean up and formalize definitions for command-line arguments used 
      to configure the terminal. This includes a stand-alone function, 
      "ansicmdSetup()" which converts the command-line text to 
      configuration parameters in a TermConfig structure which is then 
      used to configure the terminal environment for the application.
   -- Greatly expand the test code to cover all aspects of the AnsiCmd 
      and ACWin functionality.
   -- Implement a non-blocking read in order to perform look-ahead into 
      the input stream. Useful for capture of ANSI escape sequences.
   -- Speed enhancement for acWrite() group.
   -- Implement the AC_Box class. Previously it was just a stub.
      This is a greatly-simplified version of the ACWin class which 
      provides the LOOK of a window, but with only a very basic 
      functionality. See the Test_Box() method for details.
   -- ACWin class is now stable enough to integrate it as an output option 
      for the EarthPoint test app.

v: 0.00.02 25-Nov-2022
   -- Expand terminal setup options (TermConfig class).
   -- Add support for setting foreground/background by specifying the 
      RGB component colors.
   -- Outline some higher-level methods for simplified access from the 
      application. (not fully implemented)
   -- Support capture of break key, Ctrl+C.
   -- Support setting cursor style.
   -- Implement a local sleep (pause) method using nanosleep().
      See the nsleep() method for details.
   -- Remove some experimental code.
   -- Isolate help text for command-line options: '--term' and '--ansi'.
   -- Squash bugs, (how did they get into the code? My code!?! 这不可能！).
   -- Clean up comments.
   -- General layout of formal documentation.
   -- Limited distribution.

v: 0.00.01 12-Oct-2022
   -- First Effort.
      - Define the basic class functionality for implementation of the 
        ANSI commands, most of which are defined as "escape sequences".
   -- Limited distribution.



