# New Features in c3270 3.3

c3270 3.3 is the current development line for c3270. It is functionally equivalent to c3270 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 c3270. 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, keyboard input, and display output.

## Changes in c3270 3.3.4, 10. April 2005

- Bug Fixes:
  - The code once again builds on Cygwin and other systems not supporting IPv6.
  - Removed spurious 'no child' error messages from pr3287 on some systems.
  - 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 c3270 3.3.3b2, 1. February 2005

- Bug Fixes:
  - Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
  - Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
- New Features:

## Changes in c3270 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 c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
  - 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.
  - Corrected a line-drawing character bug in c3270.
  - 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 options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

## Changes in c3270 3.3.2, 1. December 2003

- Bug Fixes:
  - Made configure more robust when it can't find one or the other of libncurses or ncurses.h.
  - Got automatic pr3287 start-up (-printlu) working again.
  - Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
- 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 c3270 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.
- New Features:
  - Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
  - Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the c3270 command line, but can edit keymap definitions.
  - Added a Setverbose function to `x3270_glue.expect` to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)

## Changes in c3270 3.3.1alpha9, 25. July 2003

- Bug Fixes:
  - Removed the concept of 'per-host' resources. Use profiles for this.
  - Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
  - 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.
- New Features:
  - The TELNET START-TLS option is now supported.

## Changes in c3270 3.3.1alpha8, 15. April 2003

- Bug Fixes:

- The EBCDIC notsign '¬' can now be entered with `Ctrl-A, ^` (it formerly caused an error message).
- 3270-specific and NVT-mode-specific keymaps (e.g., keymap.base.3270) are no longer ignored.
- When there is an ambiguous multi-character match in a keymap, the correct matching keymap entry is now displayed in the keyboard event trace file.
- 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.
- The Visible Control Characters toggle now works properly.

- New Features:

- `Ctrl-A, a` is now mapped onto the Attn action in the default 3270 keymap.
- Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

## Changes in c3270 3.3.1, 14. February 2003

- Bug Fixes:
  - (Same as c3270 3.2.20)
- New Features:
  - 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:' (ell) prefix on the hostname.