DESIGN OUTLINE for CSCI-e215 Assignment 3
Russell J Lowke

     Project: sttyl

       Usage: sttyl [-]icrnl        // map CR to NL (ala CRMOD)
                    [-]onlcr        // map NL to CR-NL (ala CRMOD)
                    [-]echo         // enable echoing
                    [-]echoe        // visually erase chars
                    [-]olcuc        // map lowercase to uppercase on output
                    [-]tabs         // expand tabs on output
                    [-]icano        // canonicalize input lines
                    [-]icanon       // canonicalize input lines
                    [-]isig         // enable signals INTR, QUIT, [D]SUSP
                    [-]hupcl        // hang up on last close
                    [-]cread        // enable receiver
                    [-]brkint       // map BREAK to SIGINTR
                    [-]inpck        // disable checking of parity errors
                    [-]iexten       // enable FLUSHO and LNEXT

                    intr  CHAR      // CHAR will send an interrupt signal
                    erase CHAR      // CHAR will erase last character typed
                    kill  CHAR      // CHAR will erase the current line
                    start CHAR      // CHAR will restart output after stopping
                    stop  CHAR      // CHAR will stop the output


 Description: Mimics the basic functionality of the Unix stty,
              Prints or changes terminal characteristics.

      Method: Reads args sent to main,
              looks for each arg in data tables for flag args and Key args
              gets information about arg from table
              set flags OFF (&= ~) or  ON (|=) depending on arg
              convert CHARs passed to ascii, reading '^' as ctrl and "^?" as del
              set key arg to CHAR when valid
              exit with "Unknown mode" for any invalid arg
              if no args sent, print values of all vars in tables 
              

       Notes: sttyl only works properly in sh
              '^' prefix means a ctrl CHAR
              CHAR for delete is passed as "^?"
              CHAR commands are best passed in quotes, ie  "^?"


