# New Features in x3270 3.3

x3270 3.3 is the current development line for x3270. It is functionally equivalent to x3270 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 x3270. 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 X11 display output.

## Changes in x3270 3.3.3b2, 1. February 2005

- Bug Fixes:
  - Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
  - Got separate app-defaults files (configure --enable-app-defaults) to work again.
  - Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
  - Fixed the titles of the Copyright and Configuration pop-ups.
  - 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 x3270 3.3.3b1, 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 a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
  - 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 the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
  - Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
  - Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
  - Fixed make depend.
  - Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
  - Fixed crashes when the entire File or Options menus were suppressed.
  - 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 support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
  - Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
  - Added support for DBCS in pr3287, but only when started from an x3270 session.
  - 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 x3270 3.3.2, 1. December 2003

- Bug Fixes:
  - Corrected a screen-redraw crash when using fixedSize and xim.
  - 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.
  - Fixed a problem with DBCS input when using a single DBCS/SBCS character set.
  - Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
- New Features:
  - Added support for Cyrillic keysyms to the Default() action.
  - Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
  - 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 x3270 3.3.1alpha10, 29. August 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.
  - Corrected a crash when connecting to a host and there is no menu bar visible.
  - Corrected crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
- 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.
  - 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 x3270 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.)
  - Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
  - Added a fixedSize resource to force the x3270 to a particular size. fixedSize has the value width x height, in pixels. The 3270 display will float in the center of the window, if need be.
  - Added a new keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

## Changes in x3270 3.3.1alpha9, 24. July 2003

- Bug Fixes:
  - DBCS character set names are displayed only when DBCS support is built into x3270.
  - 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 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.
- New Features:
  - User-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
  - The TELNET START-TLS option is now supported.

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

- Bug Fixes:

- 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:

- The Erase action is now the default for the BackSpace key.
- 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 x3270 3.3.1, 14. February 2003

- Bug Fixes:
  - (Same as x3270 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.
  - A Visible Control Characters toggle replaces the 3270d Debug Font.
  - About x3270 pop-up split into three smaller pieces.