using lic non-interactively hoses terminal mode
For instance, running
$ lic 3 4 +
in the shell hoses the terminal mode. With Linux, after running this, the following settings are different from before:
-icrnl -ixon -icanon -iexten -echo
Expected behaviour: does not hose terminal mode.
Assumed reason: the application puts lingo/liner in raw mode, which is unnecessary with a non-interactive call of lingo. That it doesn't restore the previous terminal mode is more or less expected.
What is bad about this: The (assumed) bug in the application
lic isn't even the bad thing. Lingo itself should not make this possible.
Proposed solution: Put changing the terminal mode forth and back (i.e. the related liner calls) as close around the actual line reading as possible. This should eliminate most of the application's responsibility already; furthermore, lingo could work actively in restoring the terminal settings actively to the previous state when exiting. Does mean you couldn't use a lingo program to change your terminal settings, but WTH.