# New Features in tcl3270 3.3

tcl3270 3.3 is the current development line for tcl3270. It is functionally equivalent to tcl3270 3.2.20, with the addition of SSL (Secure Sockets Layer) support and DBCS (Double Byte Character Set) support for East Asian languages -- Chinese, Japanese and Korean.

The DBCS work required a significant change in the internal workings of tcl3270. For those familiar with the source code, the change was to store EBCDIC codes internally, and to dispense with the confusing CG-code representation of the 3270 display. This required changing all of the logic that manipulates field attributes, as well as the logic that translates the host output and macro input.

## Changes in tcl3270 3.3.4, 10. April 2005

- Bug Fixes:
  - The code once again builds on Cygwin and other systems not supporting IPv6.
  - Removed unintended blank-line suppression from the output of PrintText html string.
  - Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
  - Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
  - Removed spurious 'Wait timed out' errors in the Wait action.
- New Features:
  - Added a newer, more flexible version of Don Russell's RPQNAMES support.
  - Added support for IPv6.

## Changes in tcl3270 3.3.3, 31. December 2004

- Bug Fixes:
  - Fixed the Transfer() action, which didn't work at all.
  - Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
  - Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
  - Fixed make depend.
  - Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
  - Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
  - Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
  - Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
  - Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
  - Corrected a DBCS conversion problem with ICU 3.0.
  - Added variable buffer-size support to DFT file transfers.
  - Fixed a buffer overflow problem in the ReadBuffer action.
  - Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
  - Allow 0 timeouts in Wait actions.

- New Features:
  - Added Don Russell's RPQNAMES support.
  - Removed Minolta-copyrighted code, because of licensing problems.
  - Added an aidWait toggle to allow AID actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
  - Turned off the old scripting hack the delayed actually unlocking the keyboard for 50ms after the host says we can unlock it. Added a unlockDelay resource, which can be set to true to turn it back on.
  - Added a dftBufferSize resource to set the default DFT buffer size.
  - Added a Save Screen Text menu option to save the screen image in a file, optionally in HTML.
  - Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

## Changes in tcl3270 3.3.2, 1. December 2003

- Bug Fixes:
- New Features:
  - Error messages are now written to the trace file.
  - The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

## Changes in tcl3270 3.3.1alpha10, 7. September 2003

- Bug Fixes:
  - Made nondisplay fields invisible to the Ascii() action.
  - Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
  - Corrected a tight loop in the macro error cancellation logic.
  - Fixed idle commands. They were pretty much hopeless in 3.2.20.
  - Fixed a Unicode conversion crash.
  - Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
  - Builds cleanly on Linux with `-Wall -ansi -pedantic`.
  - Builds without OpenSSL libraries being present.
  - Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
  - Auto-Skip fields work properly.
  - "Dead" positions in DBCS fields are handled correctly.
  - Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
  - The Erase action now works properly with DBCS characters.
- New Features:
  - Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
  - Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
  - The TELNET START-TLS option is now supported.
  - Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.
  - DBCS support for Simplfied Chinese and Japanese, including integration with XIM.
  - Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'L:' prefix on the hostname.