Respond to client "do" requests during the negotiation. This prevents the
negotiation from failing when connecting from the z/VM and CSI z/VSE telnet
clients.
Also don't treat unknown terminal device type as an error, just fall back on
assuming a 24x80 terminal. This shouldn't affect z/VM / z/VSE clients, which
identify correctly, but will return to the original go3270 behavior of not
caring about specific client device type.
This is a relatively big new feature, which introduces small breaking changes
to the API:
* NegotiateTelnet() now returns (DevInfo, error) instead of just error. The
function signature for the Tx type now has one additional DevInfo parameter.
* RunTransactions() requires one additional parameter, the DevInfo (which is
allowed to be nil).
Otherwise, existing behavior continues to work as-is and everything still
defaults to operating on the default 24x80 terminal size.
See example5 for a larger-terminal-aware application.
Pending some time to make sure no new bugs cropped up in this release and that
the alternate screen size support works in the wild, I anticipate this will
become the v1.0.0 release of go3270.
There was already a feature, Field.KeepSpaces, for the programmer to control
this. The new strip-only-trailing-spaces behavior was inconsistent with the
original design.
New ShowScreenOpts() function, which takes a new ScreenOpts struct, to control
various aspects of the ShowScreen behavior. This should now be used in favor of
the deprecated ShowScreen() and ShowScreenNoResponse() functions, and allows
for the additional of future options without needing to continue making new
functions or breaking the public API.