Line editing and keyboard controls (eg ^C) ========================================== CSL can run in a whole range of modes and environments, and that fact seriously complicates life for the implementation of support for local editing and ^C processing. The modes are: (1) Via fwin in a window that I control. In this case keyboard input is received as events via the FOX toolkit, and everything is easily under my own control. (2) With fwin, and keyboard input direct from a "terminal" (and with output sililarly direct to a "terminal"). But without a window, for instance because the "-w" flag was used to avoid creating one. Furthermore this case applies if the terminal is recognized and fwin can do cursor control on it (that is always the case under windows but may not be so under Unix/Linux/MacOS, eg if the TERM variable is not properly set). In this case fwin tries to switch the keyboard to "raw" mode and do its own line editing. (^C ???) (3) Either without fwin compiled in at all (that is probably no longer a supported configuration, but could perhaps arise in an embedded use), with terminal input or output not attached to a console (eg with file re-direction set up using the shell), with the terminal indirected for other reasons (running CSL at the end of a pipe, or the windows binary under the cygwin shell), or Unix/Linux with an un-recognised terminal type. In such cases CSL uses simple "cooked" IO and both local editing and ^C handling are up to the system.